2014-02-05 36 views
0

我已经在phpMyAdmin中检查过这个查询,但是在php脚本中这是行不通的。我已经尝试了6个多小时,但我不明白错误是什么。我在PDO语句中的$db->query($query)中收到此错误。为什么多个更新语句不起作用

SQLSTATE [42000]:语法错误或访问冲突:1064您的SQL语法错误; 'UPDATE sefx_article_paras SET srl ='1'检查对应于您的MySQL服务器版本的手册,以便在正确的语法附近使用'id ='24'; UPDATE'在第4行'sefx'在

但是,当我尝试使用PDO exec没有错误,但UPDATE查询未执行。

这里是由PHP生成的SQL:

UPDATE`海基会

x_article_paras` 
SET `srl` = '1' WHERE `id` = '23'; 

UPDATE `sefx_article_paras` 
SET `srl` = '1' WHERE `id` = '24'; 

UPDATE `sefx_article_paras` 
SET `srl` = '1' WHERE `id` = '26'; 

UPDATE `sefx_article_paras` 
SET `srl` = '1' WHERE `id` = '27'; 

UPDATE `sefx_article_paras` 
SET `srl` = '1' WHERE `id` = '31'; 

.................... 


UPDATE `sefx_article_paras` 
SET `srl` = '8' WHERE `id` = '196'; 

UPDATE `sefx_article_paras` 
SET `srl` = '8' WHERE `id` = '211'; 

UPDATE `sefx_article_paras` 
SET `srl` = '8' WHERE `id` = '229'; 
+0

可能重复(http://stackoverflow.com/questions/11106719/php-multiple-mysql-commands-in-one-mysql-查询 - 查询) – user4035

+1

http://www.php.net/manual/en/mysqli.multi-query.php – user4035

+0

在PDO中不可能? –

回答

-1

PDO不允许多个查询在一份准备好的声明。将它们拆分成多个查询或使用代码将其拆分;

<?php 
    // $sql is your SQL 
    $sqls = explode(';', $sql); 
    $db->query('BEGIN'); 
    foreach($sqls as $sql) { 
    if (trim($sql)) { 
     $db->query($sql); 
    } 
    } 
    $db->query($sql); 
?> 
的[PHP多个MySQL在一个MySQL的\ _query()命令查询]
相关问题