我有一個表格和用戶(在字符串的結尾註單引號)mysql_real_escape_string奇怪的撇號行爲?
My Bday'
進入如現在,我想要去除撇號,就這麼簡單......無法逃避他們,而不是添加斜線剛剛擺脫他們的
首先,我有以下幾點:
$event_title = mysql_real_escape_string($_POST['event_title']);
echo "<br /><br /><br />event title is $event_title";
這會導致返回以下:
event title is My Bday\\\'
爲什麼3斜槓?
所以,後來我繼續前進,處理這種通過以下:
$event_title = str_replace("'", "", $event_title);
$event_title = stripslashes($event_title);
然後我再回到它來檢查結果
echo "<br /><br /><br />event title is $event_title";
我得到如下:
event title is My Bday\
任何想法發生了什麼?我只是想要去除apostophes和斜槓,但不知何故,沒有發生
magic_quotes_gpc被關閉的方式
如果我沒有用stripslashes因此讓他們在爲MySQL對付我得到以下錯誤:
You have an error in your SQL syntax; check the manual that corresponds to your
MySQL server version for the right syntax to use near 'Private',
event_notes = '' where user_event_id = '35'' at line 3
update user_events set event_date = '2012-11-17', event_title = 'My Bday\\\',
event_vis = 'Private', event_notes = '' where user_event_id = '35'
OK,再編輯:
我嘗試這樣做:
$event_title = $_POST['event_title'];
$event_title = str_replace("'", "", $event_title);
$event_title = trim($event_title);
$event_title = mysql_real_escape_string($event_title);
echo "<br /><br /><br />event title is $event_title";
,我得到這個:
event title is My Bday\\
我只是想擺脫單引號的,明確別的東西是怎麼回事,但它讓我!
雖然不是一個答案:你應該真的閱讀[this](http://chat.stackoverflow.com/transcript/message/3656047#3656047) 。 – PeeHaa
你給了用戶輸入的內容,但是在它被轉義之前,它恰好等於'$ _POST ['event_title']'? – Jon
mysql_real_escape_string用於data-> sanitize-> storage而不是data-> sanitize-> output,如果遵循此模式,數據將正確顯示。 data-> sanitize-> storage-> output –