我想更新我的数据,我用这个,但它不会更新我的数据 id
还是空的。那么,如何同时执行多个sql查询呢?
$mysqli = new mysqli("a", "a", "a", "a");
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$sql = "UPDATE laporan_gini SET id_provinsi='1' WHERE nama_item_vertical_variabel= 'INDONESIA'";
$sql = "UPDATE laporan_gini SET id_provinsi='61' WHERE nama_item_vertical_variabel= 'KALIMANTAN BARAT'";
if (!$mysqli->multi_query($sql)) {
echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
do {
if ($res = $mysqli->store_result()) {
var_dump($res->fetch_all(MYSQLI_ASSOC));
$res->free();
}
} while ($mysqli->more_results() && $mysqli->next_result());
3条答案
按热度按时间zi8p0yeb1#
你不应该使用
mysqli::multi_query()
无法执行sql,因为此函数不支持参数绑定。必须使用准备好的语句分别执行这两个查询。如果不打算将任何数据绑定到sql,那么可以将其减少一行并使用mysqli::query()
相反。如果两个查询相互依赖,则可以将它们 Package 到事务中(假设表引擎支持事务)。
lxkprmvk2#
最好的方法是使用sql触发器或存储过程:
https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html
https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-stored-procedures.html
另一方面,您可以在代码中运行它:
9o685dep3#
您可以在一个调用中发送多个sql查询,并用分号分隔