2016-08-03 2 views
0

私が持っている:PHPでMySQLクエリのregexpをエスケープするには?私のクエリで

Apacheのエラーログに次のエラーが生成さ
$search .= "and title REGEXP '[[:<:]]$q[[:>:]]' "; 

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} ..."場合。それらをまとめてこの問題を解決します。

関連する問題