我想更新一个表,其中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;
在两种情况下,我都遇到语法错误。
有帮助吗?
答案 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