我是 Android 开发人员,使用 PHP API。我正在做一个查询,根据要求更新我的表。如果主 ID 具有序列号(如 1...2...3...4 等),则此查询工作正常。如果其中缺少任何数字(如 1...2...4 等),则此查询不起作用...其更新直到 1...2...但对于像这样丢失序列号之后的行不起作用。在这种情况下,它不适用于第 4 行。
我的查询如下
$sql = mysqli_query($mysqli, "SELECT _quid FROM tbl_quotes");
$num_rows = mysqli_num_rows($sql);
for ($x = 1; $x <= $num_rows; $x++) {
$randomnumbershare = (rand(10, 50));
$randomnumberlike = (rand(10, 50));
$qu_time = getDatetimeNow();
$results = mysqli_query($mysqli, "
UPDATE tbl_quotes SET
qu_status=1,
qu_like=$randomnumberlike,
qu_share=$randomnumbershare,
qu_favorite=0,
qu_time='$qu_time'
where _quid=$x
ORDER BY _quid ASC
");
任何人都可以建议我缺少什么以及如何修复它?
最佳答案
您应该使用 while
循环而不是 for
循环来循环遍历表的所有 id,如下所示:
$sql = mysqli_query($mysqli,"SELECT _quid FROM tbl_quotes");
while($result = mysqli_fetch_array($sql)){
$randomnumbershare = (rand(10,50));
$randomnumberlike = (rand(10,50));
$qu_time = getDatetimeNow();
$results = mysqli_query($mysqli,"UPDATE tbl_quotes SET qu_status=1, qu_like=$randomnumberlike,qu_share=$randomnumbershare,qu_favorite=0, qu_time='$qu_time' where _quid=".$result['_quid']." ORDER BY _quid ASC");
}
关于php - 如果主键缺少序列号,MySQLi 查询将不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44868635/