2014-02-05 40 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()命令查詢]
相關問題