php - 从 php 更新多行 Mysql

标签 php mysql

这是我正在尝试做的事情:更新任意数量的行,将几个字段更改为相同的值。

$var = "1 3 5 7 9";  
$query = "UPDATE tablename SET seen_before = 1 WHERE id = SET ($var);"

我的问题是:当我查看集合时 Where 子句的确切语法是什么,以及如何通过 php 变量传递集合项。

谢谢,
迈克尔

最佳答案

$ids   = "1, 3, 5, 7, 9";  
$query = "UPDATE tablename SET seen_before = 1 WHERE id IN ($ids)";

如果您的 ID 是动态的,而且它们很可能是动态的,请使用类似这样的东西以便为 SQL 查询正确地转义它们:

// Assuming $ids it's coming from an untrusted source, like $_GET
$ids   = array(1, 3, 5, 7, 9);
$ids   = array_map('intval', $ids);
$ids   = implode(', ', $ids);

$query = "UPDATE tablename SET seen_before = 1 WHERE id IN ($ids)";

关于php - 从 php 更新多行 Mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1201303/

相关文章:

java - Android 无法连接到本地主机或计算机 IP 地址

php - 如何更改浏览器网址框中的网址?

php - 如何仅使用 mysql 查询获取特定行的位置排名?

javascript - 将 DateTime 从 PHP 返回到 JS 的良好做法

php - 使用 Ajax 和 3 个连续的可靠下拉列表

mysql - 在 $catalina_home/lib 中带有 mysql 驱动程序的 maven tomcat 插件

mysql - 按 Eloquent 最佳匹配排序

php - 如何在Zend Framework中配置和访问MySQL数据库?

mysql - 坚持 Doctrine2 时如何跳过专栏?

php - 无法使用 INSERT INTO 向 mysql 表中插入数据