php - 遍历记录,更新一条记录,然后退出

标签 php mysql

我想从我的表中选择所有记录并循环遍历所有这些记录,直到找到 numtimespaid 列等于 0 的记录。找到该列后,我想将该记录更新为 2,然后退出。这是我无法正常工作的东西:

$query1 = "SELECT * FROM ".$line." ORDER BY datestamp, timestamp";
$result1 = mysql_query($query1) or die(mysql_error());
while($row = mysql_fetch_array($result1)){
    if ($row[numtimespaid] == 0) {
        $queryupdate="UPDATE ".$line." SET numtimespaid=1";
        $resultu=mysql_query($queryupdate);
        break;
        }
    }

关于我做错了什么和/或这样做的正确方法有什么想法吗?

最佳答案

没有必要从 SELECT 语句中遍历行集。您可以简单地用该值更新第一行。此查询将更新恰好匹配 numtimespaid = 0 的一条记录。如果您想更新符合该条件的所有行,只需删除 LIMIT 1

$result = mysql_query("UPDATE $line SET numtimespaid=1 WHERE numtimespaid = 0 ORDER BY datestamp, timestamp LIMIT 1");

顺便说一句,我们不知道 $line 的内容是什么,但希望您已经正确过滤了来自用户输入的值。如果它确实来自用户输入,建议根据可能的表名白名单检查它的值:

// $line can be one of table1,table2,table3
if (!in_array($line, array('table1','table2','table3')) {
  // FAIL, don't execute the query
}

关于php - 遍历记录,更新一条记录,然后退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10050729/

相关文章:

php - mysql 查询优化

mysql - 如果 mysql 中不存在则添加列

html - 如何使用 LAMP 堆栈存储和访问博客内的图像?

php - "Unable to open primary script:/usr/share/webapps/roundcubemail/webmail/index.php (No such file or directory)"

php - PHP 中静态函数和类外函数有什么区别?

javascript - Node.js 和 MySQL 函数使用

mysql - 将本地数据库转换为云托管的mysql数据库

php - 将数据从关系数据库反规范化到非关系数据库的最佳实践

php - 遍历日期并获取两个日期之间的最小日差

php - 使用 $_GET