2010-03-21 45 views
3

我收到錯誤():故障排除調用mysql_real_escape_string時「無法通過socket連接到本地MySQL服務器」

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

你可以發佈有問題的代碼嗎? – 2010-03-21 21:38:24

+0

@Tom爲什麼你在mysql_real_escape_string()之前調用stripslashes($ fname)? – Simon 2010-03-21 21:54:44

回答

9

這是因爲你從來沒有使用mysql_real_escape_string()之前調用mysql_connect()。要使用mysql_real_escape_string(),必須將PHP連接到數據庫。爲了連接到數據庫,您必須使用mysql_connect()

+0

出於好奇,爲什麼它需要調用數據庫來執行該功能? – 2010-03-21 21:42:46

+0

PHP代碼調用MySQL的庫函數來轉義字符串,因此爲了讓代碼調用庫函數,它必須先連接。 – 2010-03-21 21:45:21

+0

它調用一個MySQL庫函數來進行轉義。它不是直接在PHP中完成的。 – Sasha 2010-03-21 21:45:24

相關問題