【发布时间】:2014-03-15 07:00:33
【问题描述】:
我正在 PHP 中运行一个脚本,该脚本使用循环为 MySQL 创建一个字符串查询。
执行脚本后出现以下错误:
“您的 SQL 语法有错误;请查看手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 'UPDATE BANNERS SET pos=1 WHERE BID=5; 附近更新横幅集 pos=2 WHERE BID=1' 在第 2 行"
在错误之后我回显查询,它看起来像这样:
UPDATE BANNERS SET pos=0 WHERE BID=6;
UPDATE BANNERS SET pos=1 WHERE BID=5;
UPDATE BANNERS SET pos=2 WHERE BID=1;
当我将它复制并粘贴到 phpmyadmin 中时,它显然可以毫无问题地执行。
有什么想法吗?
这是 PHP 代码:
有一个数组看起来像这样:
$order[0] = 'tr_6';
$order[1] = 'tr_5';
$order[2] = 'tr_1';
$query = "";
foreach($order as $pos => $value){
$idvalue = str_replace('tr_','',$value);
$query .= "UPDATE BANNERS SET pos=$pos WHERE BID=$idvalue;\n";
}
mysqli_query($connection,$query) or die(mysqli_error($connection)."<br/>$query");
谢谢!
【问题讨论】:
-
你不能那样做。您必须在 foreach 循环中查询并在查询中删除
;\n -
\n 我现在刚刚添加它以创建一个不错的输出并读取查询,但即使没有它它也会给我错误,你是说我不能一次执行多个查询吗?如果我将整个内容复制到 phpmyadmin 并执行查询,它就可以正常工作
-
也许您可以尝试一次执行多个查询,但您必须删除
\n。不知道mysqli_query是否允许,试试就知道了 -
一开始就是这样,没有\n,所以这就是问题所在? mysqli不允许多查询?
-
看来是这样的,是的