2013-02-08 78 views
-4

當我瀏覽我的網站時,evrything正常工作。該網站與數據庫連接並顯示結果。但是,我得到這個錯誤,每當遇到mysql_resl_escape_string連接錯誤與mysql_real_escape_string

mysql_real_escape_string()[function.mysql實時逃逸字符串]:無法通過套接字連接到本地MySQL服務器「的/ var/lib中/ MySQL的/ mysql.sock'(2)in ......

請注意,只要我從每個頁面中刪除mysql_real_escape_string代碼,網站運行良好。但是,這是不合理的。這件事有什麼修復?

+0

你如何使用mysql_real_escape_string()? –

+0

mysql_real_escape_string()必須在mysql_connect()後面檢查這個 – 2013-02-08 09:02:46

+0

mysql_real_escape_string()需要建立到MySQL數據庫服務器的連接......您是否已經連接到這個點? –

回答

1

對於mysql_real_escape_string工作,首先必須通過mysql_connect

0

連接到MySQL的錯誤意味着默認的mysql數據庫連接不正確的php.ini內配置。

您可能會首先使用mysql_real_escape_string,而不是先連接到數據庫,PHP會嘗試使用默認配置php.ini連接到數據庫。

在您的情況下,這些默認設置無法正常工作,就這樣。

更改配置並且錯誤消失 - 或 - 提供有效的mysql數據庫連接作爲mysql_real_escape_string函數調用的參數。

附加說明:如果您正在編寫新代碼,請刪除mysql_*函數以訪問您的mysql數據庫。改爲選擇MysqliPDO

-1

您正在使用此功能錯誤的方式。
而不是處理只有字符串值在將它們放入查詢之前,您正在處理所有用戶輸入值的某處位於代碼的頂部。
它會引導你到sql注入

0

你是否傳入從mysql_connect返回的連接變量作爲第二個參數?

在附註中,您應該真的轉向使用PDO,如果您使用其準備功能,它會自動轉義字符串。