Mysql_real_escape_string()警告混乱

时间:2011-12-26 15:56:32

标签: php mysql warnings

echo mysql_real_escape_string($dbc, "string");

产生警告:

Warning: mysql_real_escape_string() expects parameter 1 to be string, object 
given in **...**

所以即使我给函数看起来很明显是字符串对象,它也不会将它们视为字符串。

这里发生了什么?

4 个答案:

答案 0 :(得分:5)

mysql_real_escape_string只需要一个字符串作为参数。就是这样。

$string = mysql_real_escape_string('string')

如果要指定链接标识符,则它是可选的第二个参数:

$string = mysql_real_escape_string('string', $dbc)

答案 1 :(得分:2)

检查docs。参数反过来(连接是可选的)。

mysql_real_escape_string('string', $conn);

答案 2 :(得分:1)

为什么要将两个参数传递给它,如下所示?

mysql_real_escape_string($dbc, "string");

试试这个,它应该有效。

echo mysql_real_escape_string($dbc);

答案 3 :(得分:0)

通常当我们使用mysql_real_escape_string时,我们处理SQL语句时,我们必须遍历每个字段,其中一些是空的,一些不是字符串。 该错误表示该函数需要一个字符串,这意味着某些字段不是字符串,以避免此警告您必须执行检查:

if (!empty($dbc) && is_string($dbc))
    echo mysql_real_escape_string($dbc, "string");