gpt4 book ai didi

php - 无法从 php 将 ids 添加到 mysql 中的字段

转载 作者:行者123 更新时间:2023-11-29 08:13:48 25 4
gpt4 key购买 nike

我正在尝试将像数组这样的id添加到名为all_ids的字段中的mysql中,该字段具有与用户关联的所有id。并且当添加新id时,它应该更新mysql字段中的数组如果id已经存在,它不应该做任何事情并回显“找到匹配”。我正在使用php GET从android提供arraylist的值,它被解码为json。但是我无法将数组中的所有用户添加到mysql。

我真的很感谢任何帮助。
提前致谢。

获取代码:

www.example.com\example?$id=[123,234,567,8910,11324,1]&sno=12 

PHP 代码:

<?php


$sno=$_GET['sno'];

$id=$_GET['id'];


if (isset($id))
{

$query=mysql_query("SELECT all_ids FROM `user` where sno='$sno';");

$gamerow = mysql_fetch_array($query);

$playerlist = explode(",", $gamerow['all_ids']);

if( empty( $playerlist ) )
{
//empty array
}else{
$obj = json_decode($id);

foreach ($obj as $value) {

if (in_array($value, $playerlist))
{
echo "Match found";
mysql_query("UPDATE user SET all_ids=CONCAT_WS(',',all_ids, '$value') WHERE sno='$sno';");

}
else
{
mysql_query("INSERT INTO user( sno, all_ids ) VALUES ( $sno, $value);");

echo "Match not found";

}
}
}

}

?>

最佳答案

您的设计不正确。您应该有一个单独的表来保存用户的 ID。该表应有两列,一列用于 ID,一列用于用户。然后,您可以在另一个表中插入或删除,以处理用户的 ID。

并且不要使用 mysql 扩展!使用 mysqli 或 PDO。 Mysql 扩展已经被弃用很长时间了,并且由于多种原因已经被建议至少三年不要使用。我给你举了 mysqli 的例子。请记住研究如何使用 mysqli 而不是 mysql 连接到数据库。 (实际上并没有太大不同。)

获取用户的 id(假设 $sno 和 $id 是整数):

$stmt = mysqli_prepare("SELECT id FROM `ids_table` where sno = ?");
mysqli_stmt_bind_param($stmt, "i", $sno);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $id);

$playerlist = array();
while (mysqli_stmt_fetch($stmt)) {
$playerlist[] = $id;
}

给用户添加id:

$stmt = mysqli_prepare("INSERT INTO ids_table (id, sno) VALUES (?, ?)");
mysqli_stmt_bind_param($stmt, "ii", $id, $sno);
mysqli_stmt_execute($stmt);

删除用户的 ID:

$stmt = mysqli_prepare("DELETE FROM ids_table WHERE id = ? AND sno = ?");
mysqli_stmt_bind_param($stmt, "ii", $id, $sno);
mysqli_stmt_execute($stmt);

关于php - 无法从 php 将 ids 添加到 mysql 中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21028811/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com