php - 更新数据库中的多行或记录

标签 php mysql database

如果我有这样的脚本:

$sql = "SELECT * FROM table WHERE Status='0'";
$query = mysql_query($sql);

    while ($row = mysql_fetch_array($query)) 
       $id = $row['ID'];

           //.........

       if($process->send()) { //after sent
         mysql_query("UPDATE table 
                      SET Status ='1' 
                      WHERE ID = '$id'"); 
       }
    }

所以它会在处理完成时更新每一行。但是如果我有超过一万 strip 有Status='0'的记录,更新就会变慢。

那么有没有更好的方法来更新记录呢?我无法通过一个查询来更新所有内容,因为我需要知道每个过程是否已完成。

谢谢。

最佳答案

将所有成功的添加到一个数组中,然后简单地同时提交所有这些。

if ($process->send()) {
    $done[] = $id;
}

稍后:

mysql_query('UPDATE table SET Status=1 WHERE ID IN ('.implode(',', $done).')');

关于php - 更新数据库中的多行或记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8624741/

相关文章:

c++ - Mysql C++ 驱动程序-创建后获取准备好的语句查询

php - 下拉框的 WooCommerce 功能

php - 使用 AfNetworking 2 将数据发布到 PHP 时,带有 NSArray 的 NSDictionary 正在转换为元素数组

mysql - 我如何加入两个计数的总和?

mysql - 尝试连接表 mySQL 时出错

sql - 如何显式显示 count(*) 等于 0 的行

python - 在 Python 中从列表列表到文件

php - MySQL 列 PHP 中的最大值

javascript - MP3 文件无法通过内嵌播放器播放

MySQL 将列转换为行