我有我通過以下幾種運行後變量:PHP mysqli_real_escape_string問題
$input_name = mysqli_real_escape_string($dbc, trim($_POST['input_name']));
我已經運行幾個測試,我回聲$ input_name和其他類似變量插入查詢執行之前。回聲表明他們確實正在逃脫,因爲他們應該。
但是,當我登錄到phpmyadmin查看我在DB中的條目時,發現應該轉義的字符不是。我在這裏遇到問題嗎?在我的變量聲明和我不知道的查詢之間發生了什麼?
是否有PHP或服務器設置可能會影響到這?
注意:我知道PDO是要走的路,我只是不在這個特定時刻。
該函數會將諸如「hel'lo」之類的內容更改爲「hel \ lo」,使其可以安全地插入到數據庫中,一旦它進入數據庫,它將再次看起來像「hel'lo」,但會有已插入並且不會導致SQL錯誤。 – Dale
你逃脫了一些東西,並將它連接到你的'INSERT'查詢字符串,插入的東西將*看起來不像轉義。想想'insert into blah(field)VALUES(「This is \」stupid \「」)',它會插入'This is「stupid」'but * not *'這是\「stupid \」'。 –
我建議如果你正在與mysqli讓你跳過的箍環戰鬥,並且它非常糟糕,你必須發佈到SO來解決它,這是開始查看PDO的一個理想時間。 –