我編寫了一些代碼,這些代碼構建了在頁面加載結束時執行的多個插入和更新語句的單個查詢。它曾經工作正常。我我的開發系統上寫類似的,優化的代碼(Ubuntu的14.04,PHP 5.5.3 Ubuntu的),但我不再能夠在一個PDO查詢運行多個語句:PDO - 在一個查詢中執行多次插入/更新
我做什麼
在一個頁面渲染,我建立這看起來有點SQL語句,如:
insert into <table> (col1,col2,col3) VALUES (?,?,?);
update <table> set col1 = ?, col4 = ? where id = ?;
insert into <table> (col1,col2,col3) VALUES (?,?,?);
...
當頁面已經被渲染,我敢肯定沒有問題,我執行使用的包裝查詢PDO。包裝功能的重要位
$database = new PDO("mysql:host=<host>;dbname=<dbname>", <user>, <pwd>,
array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names 'utf8'"));
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $database->prepare($sql);
$stmt->execute($params);
出於某種原因,我不再能一重擊,以執行該語句,相反,只有PDO儘管$stmt->queryString
仍持有整個查詢執行的第一個查詢。任何人都可以幫助我解決這個問題。
是什麼給? 'try {$ stmt = $ database-> prepare($ sql); $ stmt->執行($ PARAMS); } catch(PDOException $ objException){echo print_r($ objException,true);} }'另請參閱:http://stackoverflow.com/a/6461110/3000179 – 2014-10-20 14:08:45
@ʰᵈˑ不會引發異常。它只運行第一個語句,在我的例子中,它是'insert in ...' – 2014-10-20 14:11:46
*「我建立了一個看上去有點像這樣的SQL語句:」* - 爲什麼不告訴我們你實際使用的是什麼。這是猜測,充其量。 – 2014-10-20 14:12:42