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");