[英]escaping single quotes in a mysql REGEXP query
我試圖在mysql中使用正則表達式,並且除我在單詞中使用引號外,它都可以正常工作。
例如:
SELECT * FROM table WHERE REGEXP "^pagina's[^[:space:]]*$"
我嘗試了以下所有方法:
SELECT * FROM table WHERE REGEXP "^'.preg_quote("pagina's").'[^[:space:]]*$"
和
SELECT * FROM table WHERE REGEXP "^'.addslashes("pagina's").'[^[:space:]]*$"
和
SELECT * FROM table WHERE REGEXP "^'.mysql_escape_real_string("pagina's").'[^[:space:]]*$"
沒運氣..
因為“ pagina's”一詞中的單引號('),所以不會給我任何結果。
我如何才能轉義所有引號,以便mysql將看到引號文字並匹配數據庫中的字段?
**編輯**
這是我的PHP代碼:
$word = "pagina's";
$ary[] = "LOWER(idx.sidx_word) REGEXP '^".preg_quote($word)."[^[:space:]]*$'";
您需要指定一個表和一個列名...,並且沒有正確地轉義引號。 嘗試這樣的事情:
SELECT *
FROM table
WHERE column REGEXP '^pagina''s[^[:space:]]*$';
您必須為正則表達式指定列名,並用斜杠將引號引起來:
SELECT *
FROM table
WHERE column REGEXP '^pagina\'s[^[:space:]]*$';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.