Search code examples
phpmysqlmysql-real-escape-string

Using mysql_real_escape_string in IN clause


mysql_real_escape_string adds slashes to the values in IN clause and hence no values are returned. How can I send array values that are escaped using mysql_real_escape_string() in IN clause?

Here is my code:

$names_array = array('dave','smith');
$names = mysql_real_escape_string("'". implode("', '", $names_array) ."'");
$sql = "SELECT * FROM user WHERE user_name IN ($names)";
$results = mysql_query($sql);

Query after mysql_real_escape_string changes like this:

SELECT * FROM user WHERE user_name IN (\'dave\', \'smith\')

I don't want these slashes here in IN clause. Also I don't want the values directly substituted in IN clause. Thanks in Advance.


Solution

  • This might do it.

    $names = "'". implode("', '", array_map('mysql_real_escape_string', $names_array)). "'";