2010-05-18 166 views
1

我正在使用PHP版本5.1.6並嘗試從我的$_GET數組中轉義查詢字符串。但是,我的腳本在轉義後返回NULLPHP mysql_real_escape_string()返回`NULL`

看來,mysql_escape_string()工作正常,但它已被棄用,所以我不想使用它。

檢查了phpinfo()後,MySQL lib從我所能看到的所有內容中都可以正常加載。有沒有人曾經經歷過這種事情?

$term = $_GET['q']; 

var_dump($term); // string(7) "richard" 
echo "<br />"; 

$sterm = mysql_real_escape_string($term, $db); 

var_dump($sterm); // NULL 

這是很奇怪的,我無法想象,爲什麼這個函數是行不通的。

回答

11

您確定您的MySQL連接正在運行嗎?這是一個requirement for mysql_real_escape_string()工作:

注意:使用mysql_real_escape_string()否則會產生E_WARNING級的錯誤之前的MySQL連接是必需的,並返回FALSE。如果未定義$link_identifier,則使用最後一個MySQL連接。

+1

這不是說'var_dump()'會返回'FALSE'而不是'NULL'嗎?我也跟着它與一個MySQL查詢,這是在同一個變量'$ db'運行好嗎 – 2010-05-18 11:12:24

+1

原來在這個項目的MySQL類有一個錯誤!它只在運行查詢時連接,所以我必須強制連接並將其傳遞給函數。 – 2010-05-18 11:19:06

+2

@DavidYell:我仍然覺得'NULL'值有點奇怪...... – 2010-05-18 11:22:54