2012-03-03 124 views
0

我進入我的表單字段這一點:O'mallymysql_real_escape_string逃逸單引號到MySQL入門

我運行文本此代碼:

foreach($_POST as $key=>$value){ 
    $form[$key] = mysql_real_escape_string($value); //Escape input. 
} 

的POST輸出:O'mally

輸出變量運行後上面列出的代碼是:O\'mally

查詢:

mysql_query("insert into tbl_test 
       (lastName) 
       values 
       ('{$form['lastName']}')") 

數據庫中獲取O\'mally插入它(我想O'mally要插入,不是逃避)。

我在這裏做錯了什麼?

我已確認魔術引號爲OFF通過phpinfo()。謝謝。

+0

你如何執行mySQL語句? – knittl 2012-03-03 13:50:52

+1

改用準備好的語句,那麼你根本就不必逃避。 – 2012-03-03 13:51:14

+0

@knittl我添加了查詢。 – Shackrock 2012-03-03 13:52:55

回答

0

當您需要從數據庫輸出O'mally到瀏覽器時,只需使用stripslashes()函數。

+0

我認爲使用mysql_real_escape_string意味着它進入數據庫沒有轉義字符,所以你不需要使用stripslashes? – Shackrock 2012-03-03 14:00:06

+0

mysql_real_escape_string直接轉義它們。 – 2012-03-03 14:09:22