【发布时间】:2011-02-08 11:15:31
【问题描述】:
我一直在尝试使用 mysqli_multi_query 一次更新多个表行。我发现这个函数总是导致除 1 行之外的所有行的更新。例如,如果我指定要更新 5 行数据,那么实际上只有 4 行被更新。即使我将行数增加到 6 或 7 等,也只有“n-1”行实际更新(“n”是我指定要更新的数字)。
部分代码如下:
<?php $jag = mysqli_connect($host, $user, $pass, $db); // connects to the database
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query2 .= "UPDATE inst_prod_stor SET age_type = '2' WHERE payer_mail = '$pmail' AND file_name = '$fname';";
print_r($query2);
// execute the 'update' multi query
$result2 = mysqli_multi_query($jag, $query2) or die(mysqli_error($jag));
mysqli_close($jag); ?>
在执行包含此代码的 php 文件后,我还检查了网页上的源代码,这很好。我没有收到任何错误。我实际上使用了“print_r”函数来检查在“mysqli_multi_query”函数执行之前没有遗漏任何数据。事实上,没有遗漏任何数据。每次我执行代码时,函数的结果几乎都是完美的。唯一的缺陷是表中的一行永远不会更新。而且每次都是不同的行。
我真的需要这方面的帮助,在我完成我目前正在从事的项目之前,这几乎是 2 或 3 周编码之旅的最后一站。谢谢!
【问题讨论】: