我有个问题。到目前为止的故事:
PHP1从数据库中读取一个仅包含整数的数组-它具有以下形式:
[0,70,44,...]
因为它包含的实体数量各不相同,所以我希望能够读取整个数组并将其存储到数据库的一个单元中-解决方案一定不能忽略这一点。
PHP1包含一些JS,它允许用户在网站上做某事,从而改变了数组中的一个实体,例如:
[0,75,44,...]
到目前为止,一切都很好。
现在,我希望这个新数组替换数据库中的那个数组,这是我未能实现的主要目标。
我目前正在使用的工具-无法使用:
PHP1执行一些AJAX魔术,并将此数组发送到PHP2,效果很好:
var arrayX = [0, 75, 44, ...];
var arrayY = JSON.stringify(arrayX);
$.ajax({
url: 'PHP2.php',
type: 'post',
data: {arrayY: arrayY }
});
然后,PHP2连接到数据库,并尝试通过以下方法用新数组更新该单元格,这是行不通的(!):
$arrayZ = json_decode($_POST['arrayY'], true);
mysql_query("UPDATE userbase SET db_column = $arrayZ WHERE id=0", $con);
mysql_close($con);
我已经尝试在PHP2中序列化$ arrayZ以及在Stackoverflow上找到的其他解决方案的集合,但是它们都不起作用(或者我当然没有正确应用它们),现在发现自己陷入了困境。 ..
我希望您的才华能使我超越自己的才能!
最佳答案
我假设db_column拥有一个字符串值,因此您可能只需要在SQL字符串中的$ arrayZ周围加上引号即可。
mysql_query("UPDATE userbase SET db_column = '$arrayZ' WHERE id=0", $con);
但是正如Fake51所指出的那样,您的数据库架构存在缺陷。
此外,您还容易受到SQL注入攻击。