mysql - 将信息数组插入 MySQL 数据库时出现问题

标签 mysql database arrays insert

我在将信息数组插入 mysql 数据库时遇到问题。基本上,我构建了一个类似于 Facebook 相册的可排序图库,可以通过使用 jquery 的可排序功能将 div 移动到新位置来进行排列。

我正在使用 Ajax 调用一个 php 文件,该文件会将 div 的新顺序插入到数据库中。信息正在正确传递,只是未正确插入。

我收到的错误是:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“Array”附近使用的正确语法

Php 代码是:

foreach ($_GET['listItem'] as $position => $item) {
    if ($item >= 1) {
        $sql[] = "UPDATE table SET order = '{$position}' WHERE id = '{$item}'";
        mysql_query($sql) or die(mysql_error());
    }
}

如果我删除 mysql_query 函数并只执行 print_r,我会得到:

Array
(
    [0] => UPDATE table SET order = '0' WHERE id = '2'
    [1] => UPDATE table SET order = '1' WHERE id = '4'
    [2] => UPDATE table SET order = '2' WHERE id = '3'
    [3] => UPDATE table SET order = '3' WHERE id = '1'
    [4] => UPDATE table SET order = '4' WHERE id = '5'
    [5] => UPDATE table SET order = '5' WHERE id = '6'
)

这是我第一次尝试做这样的事情。任何帮助都会很棒。

提前感谢您的帮助!

最佳答案

mysql_query($sql)中,$sql是一个数组,因此它的值只是Array。当您分配 $sql[] = "UPDATE table SET order = '{$position}' WHERE id = '{$item}'"; 时,只需将此行 $sql = "UPDATE表 SET order = '{$position}' WHERE id = '{$item}'";。这应该可以解决你的问题。

编辑:

您可以保留[],只需从其所在位置删除mysql_query即可。在 foreach 列表项之后,添加以下内容:

foreach($sql as $query) {
    mysql_query($query);
}

关于mysql - 将信息数组插入 MySQL 数据库时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658018/

相关文章:

javascript - 在 JavaScript 数组中显示对象

php - CakePHP 从类所属的表中获取数据

database - 如何将 Scylla DB 中的计数器列重置为零?

尝试预填充 ROOM 数据库时出现 java.lang.RuntimeException : Unable to copy database file.

database - 现场冲突的django related_name

java - 为什么我得到的是数组的地址而不是值(二维数组)

javascript - Node js 异步和等待的嵌套循环

php - mysql LOAD DATA INFILE 失败,欧元符号为 '€'

php - 多次获取自动增量

mysql - 使用 mysql 按三个条件排序