我使用mysql_real_escape_string php函數從表單接收轉義數據。我對收到表單數據的代碼是:在mysql中使用mysql_real_escape_string或addslashes時字符串不會轉義
$std_id = mysql_real_escape_string($_POST['std_id']);
$name = mysql_real_escape_string($_POST['name']);
$family = mysql_real_escape_string($_POST['family']);
例如,如果輸入在名稱表單字段O'reilly的字符串,這個函數做工精細,我的查詢too.but做當我去到MySQL和我的表,看到這個字符串被插入,就像O'reilly而不是O'Reilly。 我的查詢是:
$sql = "insert into student set
std_id = $std_id,
name = '$name',
family = '$family',
";
這也發生在使用和addslashes()函數。
是的,但是當我使用這個函數插入像** O'reilly **這樣的值時,它被插入像** O'reilly **並且我強制使用** stripslashes()**函數去掉\字符正確顯示在頁面上。 –
你應該*不*必須使用'stripslashes()'。如果你看到自己在輸出數據之前被迫使用它,那麼你做錯了事情(比如在數據庫中插入轉義值) – NullUserException
@Ahmad試想一下:'O \'reilly'對你來說絕對沒用。你不想顯示那個,那麼你爲什麼要這樣存儲呢? – NullUserException