所以我看過HERE,但它似乎有點令人費解,因爲我正在做的簡單。最多我會處理一百個項目來更新(和大部分時間它的將是更喜歡40)使用PHP在一個SQL查詢中執行多個UPDATE
目前,我有這樣的事情
$sql_update = '';
for($x = 0; $x < count($nodes); $x++){
if($nodes[$x]['loaded'] == 'true'){
if($nodes[$x]['changed'] == 'true'){
$sql_update .= 'UPDATE `genetic_decomp`.`tbl_node2view` SET `x` = "'.$nodes[$x]['location']['x'].'", `y` = "'.$nodes[$x]['location']['y'].'" WHERE `tbl_node2view`.`id` = "'.$nodes[$x]['id'].'";';
$sql_update .= 'UPDATE `genetic_decomp`.`tbl_nodes` SET `name` = "'.$nodes[$x]['name'].'", `type` = "'.$nodes[$x]['type'].'" WHERE `tbl_nodes`.`node_id` = "'.$nodes[$x]['id'].'";';
}
}
}
if($sql_update != ''){
$sql_result=mysql_query($sql_update,$connection) or exit("Sql Error".mysql_error());
}
現在,當我把它打印出來的輸出,在短短的echo $sql_update
然後將輸出粘貼到在MAMP中的SQL框它工作正常..通過並更新兩個表中的行我想要
然而,當我運行上面的代碼它吐出回:
Sql Error
You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE `genetic_decomp`.`tbl_nodes` SET `name` = "lala", `type` = "p" WHERE `tbl' at line 1
我到底做錯了什麼? 有沒有更好的方法來做到這一點?
感謝,我說好的意識到有從mysql_方法的轉移,mysqli_確實看起來好多了,我可以做到這一點 – haxxxton
非常感謝!我使用'mysqli_multi_query'爲我完成工作! –