2010-03-21 2 views
3

Я получаю сообщение об ошибке:Устранение неисправностей «не удается подключиться к локальному серверу MySQL через гнездо» при вызове mysql_real_escape_string()

Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

Почему я получаю эту ошибку? Mysql_real_escape_string() работает на всех моих страницах, кроме одного? Это связано с тем, что MySQL находится на другом сервере на сервере PHP - если да, то как мне его исправить?

$fname = $_POST['fname']; 
$fname = stripslashes($fname); 
$fname = mysql_real_escape_string($fname); 
+1

Можете ли вы опубликовать код? –

+0

@ Почему вы вызываете stripslashes ($ fname) перед mysql_real_escape_string()? – Simon

ответ

9

Это потому, что вы никогда не называйте mysql_connect() перед использованием mysql_real_escape_string().

Для использования mysql_real_escape_string() PHP должен быть подключен к базе данных. Чтобы подключиться к базе данных, вы должны использовать mysql_connect().

+0

Из любопытства, почему нужно вызвать базу данных для выполнения этой функции? –

+0

PHP-код вызывает библиотечную функцию MySQL, чтобы избежать строк, поэтому для того, чтобы код вызывал библиотечную функцию, он должен быть подключен первым. –

+0

Он вызывает библиотечную функцию MySQL для выполнения экранирования. Это не делается в PHP напрямую. – Sasha