6

我在 php 中有一个 mysql 查询,使用 match / against 来过滤结果。我试图在 $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 回答