使用PHP使用IN子句查询MySQL

Nyx*_*nyx 1 php mysql

我想做一个类似于以下的查询:

SELECT f_name, l_name, title from
-> employee_data where title 
-> IN ('Web Designer', 'System Administrator');
Run Code Online (Sandbox Code Playgroud)

搜索条件以数组形式接收,$data = ['Web Designer', 'System Administrator']现在我可以将该数组转换为Web Designer,System Administrator使用:

 $data = implode(',', $data)
Run Code Online (Sandbox Code Playgroud)

是否有一种很好的方法可以将该数组转换为'Web Designer', 'System Administrator'如此,我可以直接将此短语插入到MySQL查询中,如帖子开头所示?

Vyk*_*tor 5

您可能应该使用:

$data = implode( ', ', array_map( $data, array( $object, 'escape')));
$query .= 'title IN ( ' . $data . ')'; // Append to condition
Run Code Online (Sandbox Code Playgroud)

$object->escape()愿意按功能,如:

public function $escape( $string){
   return "'" . mysql_real_escape_string( $string, $this->connection) . "'";
}
Run Code Online (Sandbox Code Playgroud)

这是array_map()文档,和mysql_real_escape_string().这应该是SQL注入解决方案.