有一个更好的方法
您在注释中提到您正在使用CodeIgniter。除非您使事情变得异常复杂,否则没有实际的理由应该在构建时构建自己的家庭式查询
where_in。
如果那不起作用,那么就很好
escape。
好的,所以,您大多数人都说您需要引用这些项目,并为此提供了:
function createInClause($arr){ return ''' . implode( '', '', $arr ) . ''';}但是,如果您有可能输入有问题的信息(例如,
'); DROP TABLE STUDENTS; --。),这确实是不够的。为了防止这种情况,您需要确保检查SQL注入:
function createInClause($arr){ $tmp = array(); foreach($arr as $item) { // this line makes sure you don't risk a sql injection attack // $connection is your current connection $tmp[] = mysqli_escape_string($connection, $item); } return ''' . implode( '', '', $tmp ) . ''';}


