hasherfrog
26-11-2007, 12:44
Здравствуйте. У меня довольно давно есть проблема с mysql_real_escape_string(), всё никак не могу решить, в чём дело. Однажды перевели форум IPB (v1.3 Final) на PHP5 / MySQL5, начались траблы. Все остальные варнинги давно уже вычистил, а тут - никак, периодически всплывает. Мешает, в логи мусор валится, устаешь :]
Итак, PHP5 / MySQL5, ошибка такая:
[error] PHP Warning: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Я уже несколько раз пытался переписать код, только хуже становилось :] Синтаксис mysql_real_escape_string (http://doc.mpv.ru/php/function.mysql-real-escape-string.html):
string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] )
Происходит это в коде вида такого:
$return['IP_ADDRESS'] = mysql_real_escape_string($return['IP_ADDRESS']);
Я пытался link_identifier как-то использовать (вытащить текущее значение db_driver->connection_id), но не получается, да и смысла нет - по логике должно использовать соединение именно последнее (как и ставится по умолчанию). Указано, что mysql_real_escape_string() работате только при установленном соединение с СУБД. Выходит, что у меня куда-то пропадает соединение при работе PHP-кода (ну, предположим, отвалился от mysql сервера, теоретически возможно).
Соединение с базой выполняется буквально перед использованием mysql_real_escape_string():
$DB->connect();
$ibforums = new info();
$ibforums->input = $std->parse_incoming(); <- там и происходит ошибка
Всё это выполняется постоянно, ибо код с головного index.php, отсбда и большое количество ошибок.
Как это починить? Есть одна мысль, в принципе, но она уж какая-то бредовая и её проверка требует времени :-/
Может, у кого-то есть уже опыт работы с этим?
Итак, PHP5 / MySQL5, ошибка такая:
[error] PHP Warning: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Я уже несколько раз пытался переписать код, только хуже становилось :] Синтаксис mysql_real_escape_string (http://doc.mpv.ru/php/function.mysql-real-escape-string.html):
string mysql_real_escape_string ( string unescaped_string [, resource link_identifier] )
Происходит это в коде вида такого:
$return['IP_ADDRESS'] = mysql_real_escape_string($return['IP_ADDRESS']);
Я пытался link_identifier как-то использовать (вытащить текущее значение db_driver->connection_id), но не получается, да и смысла нет - по логике должно использовать соединение именно последнее (как и ставится по умолчанию). Указано, что mysql_real_escape_string() работате только при установленном соединение с СУБД. Выходит, что у меня куда-то пропадает соединение при работе PHP-кода (ну, предположим, отвалился от mysql сервера, теоретически возможно).
Соединение с базой выполняется буквально перед использованием mysql_real_escape_string():
$DB->connect();
$ibforums = new info();
$ibforums->input = $std->parse_incoming(); <- там и происходит ошибка
Всё это выполняется постоянно, ибо код с головного index.php, отсбда и большое количество ошибок.
Как это починить? Есть одна мысль, в принципе, но она уж какая-то бредовая и её проверка требует времени :-/
Может, у кого-то есть уже опыт работы с этим?