2016-08-03 25 views
0

在我的查詢,我有:如何在PHP中的MySQL查詢中逃避正則表達式?

$search .= "and title REGEXP '[[:<:]]$q[[:>:]]' "; 

將會產生以下錯誤在Apache的錯誤日誌:

PHP Parse error: syntax error, unexpected '[', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) 

我試圖把{}周圍,但也不能工作。

謝謝。

+1

用反斜槓將美元符號轉義出來。 PHP試圖將它解釋爲一個變量。或者更好的是,使用一個準備好的聲明,你不必擔心這些事情。 – miken32

+0

準備好的陳述在這裏是必不可少的。這是要求嚴重的問題。 – tadman

+0

@tadman,你是什麼意思嚴重的問題? – NestMan

回答

1

添加大括號:​​- 否則它認爲您正在引用$ q數組。

PHP允許陣列查找字符串,如「... $q[...] ......」這也讓expresssions:"... {$a+$b} ..."如果你加括號。把它們放在一起解決了這個問題。