将JS数组传递给PHP,然后更新MySQL

时间:2013-07-17 14:08:05

标签: php javascript jquery mysql json

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

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上找到的一整套其他解决方案,但它们都没有工作(或者我当然没有正确应用它们)现在我发现了我自己死了......

我希望你的才能能让我比我自己更有能力!

1 个答案:

答案 0 :(得分:3)

我假设db_column包含一个字符串值,因此你可能只需要在SQL字符串中$ arrayZ周围引用。

mysql_query("UPDATE userbase SET db_column = '$arrayZ' WHERE id=0", $con);

但正如Fake51指出的那样,您的数据库架构存在缺陷。

此外,您很容易受到SQL注入攻击。