2009-05-01 43 views
6

我逃避,我從一個PHP的形式收到這樣的所有字符串參數:mysql_real_escape_string()完全消除串

$usr_name = mysql_real_escape_string($_REQUEST['usr_name']); 

,以避免SQL注入一些問題。但是,當我從功能中退回字符串時,我什麼都沒有結束。

而且我不斷收到在我的PHP日誌這種怪異的警告:

PHP Warning: mysql_real_escape_string() [<a href='function.mysql-real-escape-string'>function.mysql-real-escape-string</a>]: A link to the server could not be established in /hermes/bosweb/web279/b2798/ipw.bankingforms/public_html/formAckResponse_controller.php on line 39 

主機使用:PHP版本4.4.7

回答

17

PHP.net:

注:一個MySQL需要連接 使用前 mysql_real_escape_string()否則 錯誤級別E_WARNING是 生成的,並且FALSE被返回。如果沒有定義 link_identifier,則使用最後一個MySQL連接 。

換句話說,你將需要通過mysql_connect()mysql_pconnect()連接到MySQL數據庫,然後才能使用此功能。

+0

我已經知道這樣做,但從來不知道爲什麼,確切地說。函數是否在數據庫服務器端運行?或者這只是一個API限制? – ryandenki 2012-07-03 01:21:03