這可能是常見的事情,但我有一個問題。允許撇號,同時仍然保持mysql_real_escape_string()
標記。mysql_real_escape_string(),但允許帶撇號的名字
我有這樣的:$name = stripslashes(mysql_real_escape_string($_POST['stadium_name']));
,我測試它這樣的:
$getInfoX = mysql_fetch_array(mysql_query("SELECT * FROM `stadiums` WHERE `stadium_name` = '$stadium_name'")) or die(mysql_error());
我可以做一個例子注入像x'; DROP TABLE members; --
或類似Stade de l'Aube
撇號的名稱...但撇號名稱讓我像一個錯誤:
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 'Aube'' at line 1
我該怎麼辦?
使用PDO或mysqli的,[閱讀文章的詳細信息:防止SQL注入的最佳方式(http://stackoverflow.com/questions/60174/best-way-to -prevent-sql -injection) –
mysql_real_escape_string會爲你處理。你得到的錯誤是從MySQL而不是PHP是嗎? – case1352
爲什麼你在'mysql_real_escape_string'已經爲你逃脫之後仍然在剝離斜線? – Gapton