6

phpにmysqlクエリがあり、match/againを使用して結果をフィルタリングしています。$ stringの後にワイルドカードを取得しようとしているので、次の文字は何でもかまいません。ヘルプ?

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string%' IN BOOLEAN MODE)"
4

2 に答える 2

6

使用時にワイルドカードとしてでは*なく使用してください:%MATCH (...) AGAINST (...)

"SELECT * FROM $table WHERE MATCH (message) AGAINST('$string*' IN BOOLEAN MODE)"
于 2010-02-23T00:35:45.330 に答える
2

変数を二重引用符で囲まれた文字列に埋め込まないでください。次のように設定されます。

"SELECT * FROM " . $table . " WHERE MATCH (message) AGAINST ('" . $string . "%' IN BOOLEAN MODE)"

そうは言っても、これが有効なSQLであることを確認することはできません。しかし、少なくともそれはあなたの変数が適切に展開されることを確実にし、それが機能しない場合、それはPHPのせいではありません。

そして、このリマインダーが役立つ場合に備えて、nevarはクエリに入るデータをエスケープするのを忘れます。

于 2010-02-23T00:24:13.520 に答える