更新一个表,其中id在字符串内

时间:2018-11-21 06:42:05

标签: php mysql

我想更新一个表,其中id位于逗号分隔的字符串内。

$str = "1,2,3,4,5,6,7,8,9,10,11";
$sql = "update abc set status = 'home' where id in '" . $str . "'";
$st = $db->prepare($sql);
$st->execute();

也尝试过:

$sql = "update abc set status = 'home' where id in " . $str;

在两种情况下,我都遇到语法错误。

有帮助吗?

2 个答案:

答案 0 :(得分:0)

尝试一下 $ sql =“ update abc set status ='home',其中instr($ str,id)> 0”;

答案 1 :(得分:-1)

使用IN (...)时需要括号:

$str = "1,2,3,4,5,6,7,8,9,10,11";
$sql = "update abc set status = 'home' where id in (" . $str . ")";
$st = $db->prepare($sql);
$st->execute();

此外,这也不是有效使用参数化查询的方式。您需要正确使用占位符。

$str = "1,2,3,4,5,6,7,8,9,10,11";
$placeholder_str = "?,?,?,?,?,?,?,?,?,?,?";
$sql = "update abc set status = 'home' where id in (" . $placeholder_str . ")";
$st = $db->prepare($sql);
$st->execute(explode(',', $str)); // assuming you are using PDO