<?php
$query = 'SELECT id FROM transaction_table';
$result = db_query($query);
while($row = db_fetch_array($result)) {
//do some processing
db_query('UPDATE transaction_table SET updated = "1" WHERE id = "%s"',$row['id']);
}
?>
每次运行此脚本时,它只会更新一些随机行(平均 8-25 行)。它应该更新所有行。
最佳答案
在每个循环中回显查询。我的猜测是有一些错误。使用此代码:
<?php
$query = 'SELECT id FROM transaction_table';
$result = db_query($query);
while($row = db_fetch_array($result)) {
//do some processing
echo 'UPDATE transaction_table SET updated = "1" WHERE id = "'.$row['id'].'"<br>';
db_query('UPDATE transaction_table SET updated = "1" WHERE id = "%s"',$row['id']);
}
?>
尝试直接在 MySQL 中手动运行每个查询,并验证每个查询都会运行。我在您提供给我们的代码中看不到任何会导致任何问题的内容。
关于php - 是否有任何配置或 INNODB 原则导致以下 MYSQL 更新不一定执行所有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3157974/