2015-06-28 47 views
0

在我的數據庫中,我有一個名爲storeName的列,其值爲Joe's Kitchen帶撇號的SELECT查詢

當用戶輸入Joe's Kitchen時,我會將它存儲在一個名爲storeName的變量中,然後對其執行選擇查詢:"SELECT * FROM shops WHERE storename='".$storeName."'"。現在的問題是,價值包含撇號,我應該怎麼做呢?

我曾嘗試下面的方法,但它不能正常工作

$storeName = mysqli_real_escape_string($db->getConnection(),$_POST["storeName"]); 
+0

使用準備好的語句來插入 – user1844933

回答

0

寫兩個撇

 

    SELECT * FROM shops WHERE storename='Joe''s Kitchen' //added 2 apostrophes 

這不是推薦的方法,因爲它逃避查詢撇號有嚴重的安全問題,請嘗試使用pdo或參數化查詢
0

在您的SQL查詢中,你可以用`替換單引號'。然後,名稱可以包含單引號...

0

你能做到這樣也

SELECT * FROM shops WHERE  
storename="Joe\'s Kitchen" 
+0

你應該重複的,而回答。 –