Mysql_real_escape_string() Warning Confusion

2019-01-29 02:04发布

echo mysql_real_escape_string($dbc, "string");

Produces the warning:

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

So even when I give the function what seem to be obviously string objects it's not seeing them as strings.

What's going on here?

4条回答
Anthone
2楼-- · 2019-01-29 02:29

Normally when we use mysql_real_escape_string is when we dealing with an SQL statement, where we have to loop through each field, some of which are empty and some are not strings. The error says the function expects a string, meaning some fields are not strings, to avoid this warning you have to perform a check:

if (!empty($dbc) && is_string($dbc))
    echo mysql_real_escape_string($dbc, "string"); 
查看更多
狗以群分
3楼-- · 2019-01-29 02:33

mysql_real_escape_string just takes a string for an argument. That's it.

$string = mysql_real_escape_string('string')

If you want to specify the link identifier, it is the optional second argument:

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

查看更多
仙女界的扛把子
4楼-- · 2019-01-29 02:36

Why are you passing two parameters to it like the following?

mysql_real_escape_string($dbc, "string");

Try this, it should work.

echo mysql_real_escape_string($dbc);
查看更多
兄弟一词,经得起流年.
5楼-- · 2019-01-29 02:47

Check the docs. The parameters go the other way around (connection is optional).

mysql_real_escape_string('string', $conn);
查看更多
登录 后发表回答