如何在sql IN运算符中使用php数组?
我有和数组两个值,我想在选择查询中将它与sql IN运算符一起使用。
这是我桌子的结构
id comp_id1 2
2 3
3 1
我$arr
有两个值的数组Array ( [0] => 1 [1] => 2 )
我想获取comp_id 1和comp_id 2的记录。因此,我编写了以下查询。
SELECT * from table Where comp_id IN ($arr)
但是它不会返回结果。
回答:
由于您拥有普通 就可以做到…
$sql = "SELECT * FROM table WHERE comp_id IN (".implode(',',$arr).")";
(由于不断出现,一些其他信息…)
如果使用 (特别是 )输入,可以做到
$sql = "SELECT * FROM table WHERE comp_id IN ('".implode("','",array_map('mysql_real_escape_string', $arr))."')";
但不能处理NULL之类的值。并会添加引号 周围的数值,这并
如使用MySQL的严格模式下工作。https://dev.mysql.com/doc/refman/8.0/zh-CN/sql-
mode.html#idm1400823779170170 …仅在真正使用字符串(如VARCHAR)而非数字列的情况下才使用。
在 调用类似的东西mysql_real_escape_string
是这样,任何引号 中字符串 被妥善处理!(以及防止SQL注入!)
…如果希望使用“ ”号码,可以使用intval
或floatval
$sql = "SELECT * FROM table WHERE comp_id IN (".implode(",",array_map('intval', $arr)).")";
清理输入。(输入中没有引号。
以上是 如何在sql IN运算符中使用php数组? 的全部内容, 来源链接: utcz.com/qa/418104.html