-2
我遇到了一个奇怪的mysqli_query行为问题。有一个foreach循环来更新表行,但最后一个循环的更新不会写入数据库(所有其他更新都会成功写入)。没有错误,mysqli_affected_rows返回1,因为它应该。代码一直持续到最后,由mysqli_query之后的echo-statement确认。mysqli_query的奇怪行为
我试图循环槽数组只有一个元素和相同的问题。
这是怎么回事?有没有人遇到同样的问题?
好的...这是代码的重要部分,整个代码是不可能的,因为最多允许有30000个字符。我也回应了sql-string,一切都很完美。但正如我所说的,最后一次循环的更新(循环最后一次执行时)并未写入MySQL-DB。
$sql_getRelations = "SELECT id_machine, device_id, serial_number, variant_id, company_id, last_file FROM view_machines "
. "WHERE company_id NOT IN ('" . implode('\',\'' , $btc_companies) . "') "
// . "AND id_machine = 158 "
. "AND device_type_id = 4 AND machine_status = 'active' "
. "ORDER BY id_machine ASC;";
$result_relations = mysqli_query($db_ed, $sql_getRelations);
$relations_arr = mysqli_fetch_all($result_relations, MYSQLI_ASSOC);
mysqli_free_result($result_relations);
foreach($relations_arr as $machine){
//...some other code here
$sql_update_device = "UPDATE device SET last_file = '" . $str_max_ts . "' WHERE id_device = " . $machine['device_id'] . ";";
$update_device = mysqli_query($db_ed, $sql_update_device);
if (!$update_device) {
error_log("\r\n" . date("Y-m-d H:i:s") . ': !!!!Updatefehler device: ' . $machine['device_id'] . ": " . mysqli_error($db_ed), 3, "C:/xampp/htdocs/cronjob/error_log.txt");
}
echo $machine['id_machine'] . ', ';
}
mysqli_close($db_ed);
创建[最小的,完整的和可验证的示例](http://stackoverflow.com/help/mcve) – RiggsFolly
ok..I'll看看我能做些什么 –
如果所有其他更新运行,那么某些内容会失败,并且某些列正在接受可能的空值/空值。由于我们没有合适的代码,因此很难说。你需要发布所有相关的代码和数据库模式。由于柱长太短,它可能会“无声”地失败。 –