echo mysql_real_escape_string($dbc, "string");
产生警告:
Warning: mysql_real_escape_string() expects parameter 1 to be string, object
given in **...**
所以即使我给函数看起来很明显是字符串对象,它也不会将它们视为字符串。
这里发生了什么?
答案 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");