我有个问题。到目前为止的故事:

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注入攻击。

09-06 19:31