2012-07-13 59 views
0

我是Ruby on Rails的newby,我有搜索文本框,然後每次輸入apotraphe(')例如測試'單詞.....我總是收到錯誤:Mysql2 ::錯誤:您的SQL語法中有錯誤

Mysql2::Error: 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 's word%' OR english_name LIKE '%testing's word%' OR chinese_name LIKE '%testin' at line 1: SELECT COUNT(DISTINCT `jos_store`.`id`) FROM `jos_store` LEFT OUTER JOIN (SELECT id as store_replenishment, store, MAX(stock_movement) AS stock_movement FROM jos_store_replenishment GROUP BY store) AS replenishment ON replenishment.store = jos_store.id LEFT OUTER JOIN jos_stock_movement ON jos_stock_movement.id = replenishment.stock_movement WHERE (store_id LIKE '%testing's word%' OR english_name LIKE '%testing's word%' OR chinese_name LIKE '%testing's word%') 

你能幫我解決我的問題嗎?

+0

你可以發佈代碼,你創建/生成SQL請求? – Baldrick 2012-07-13 08:46:18

+0

您應該簡要解釋您的問題以獲得正確的解決方案。像包括您的代碼等 – 2012-07-13 09:05:22

+0

我有這個錯誤,當我導航到rails管理員,並嘗試編輯我的users.do你有什麼想法? – 2017-09-05 10:32:29

回答

1

嘗試逃離你的撇號,如english_name LIKE'%測試\的字%「

如果您正在使用‘%短語%’和有另一個」%PHRASE%裏面,它認爲你已經結束類似條款,並給你一個錯誤 - 如果你有轉義字符,如\逃跑「它應該工作:所以你的錯誤詞組,是這樣的:

<snip /> WHERE (store_id LIKE '%testing\'s word%' OR english_name LIKE '%testing\'s word%' OR chinese_name LIKE '%testing\'s word%')  

通知我用」%測試\的字'%',以確保它不認爲第二個撇號結束LIKE子句

+0

抱歉,男人不能得到它....你能解釋一下嗎? – Lian 2012-07-13 09:01:19

+0

我編輯了我的答案 - 這能解釋得更好嗎? – FOOM 2012-07-13 09:23:04

+0

我怎麼把它放在我的查詢中?請幫助我,它讓我頭痛..這是我的查詢... search_query =「AND jos_product.product_code LIKE'%#{search_val}%'或jos_product.name LIKE'%#{search_val}%'OR pc。 name like LIKE'%#{search_val}%'「 – Lian 2012-07-13 09:49:53

相關問題