Mysql_real_escape_string () Предупреждение Путаница

echo mysql_real_escape_string($dbc, "string"); 

Выдает предупреждение:

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

Поэтому, даже когда я даю функции, кажущиеся явно строковыми объектами, они не видят их как строки.

Что тут происходит?

mysql_real_escape_string просто принимает строку для аргумента. Вот и все.

$string = mysql_real_escape_string('string')

Если вы хотите указать идентификатор ссылки, это необязательный второй аргумент:

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

Проверьте документы . Параметры идут наоборот (подключение необязательно).

 mysql_real_escape_string('string', $conn); 

Почему вы передаете ему два параметра следующим образом?

 mysql_real_escape_string($dbc, "string"); 

Попробуйте это, это должно сработать.

 echo mysql_real_escape_string($dbc); 

Обычно, когда мы используем mysql_real_escape_string мы имеем дело с оператором SQL, где нам нужно mysql_real_escape_string каждое поле, некоторые из которых пустые, а некоторые не являются строками. Ошибка говорит, что функция ожидает строку , то есть некоторые поля не являются строками, чтобы избежать этого предупреждения, вы должны выполнить проверку:

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