0

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

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


我希望你的才华能让我比我自己的更进一步!

4

1 回答 1

3

我假设 db_column 包含一个字符串值,因此您可能只需要在 SQL 字符串中为 $arrayZ 加上引号。

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

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

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

于 2013-07-17T14:17:42.793 回答