PHP中用于MATCH AGAINST的准备好的语句不起作用

时间:2018-09-06 11:14:45

标签: php mysql sql phpmyadmin

我正在尝试在MATCH AGAINST中执行以下php,但没有结果。

当我直接在phpmyadmin中执行相同的Select语句时,它可以工作,但是在带有准备好的语句的php中却不能。没有任何结果。我没有错误,但没有任何结果。

$statement = $DB->prepare('SELECT *  FROM users
                           WHERE firstname LIKE ?
                           AND lastname LIKE ?
                           AND MATCH (firstname, lastname) AGAINST (?  IN BOOLEAN MODE)');

$statement->bind_param('sss',   $firstname, $lastname,  $searchString);
$statement->execute();
$result = $statement->get_result();
$statement->close();

当我将以下内容放入phpmyadmin中时,它可以正常运行,但不能在php上运行

Select * FROM users WHERE firstname LIKE "d%" AND lastname LIKE "f%" and MATCH (firstname, lastname) AGAINST ("Jonny" IN BOOLEAN MODE)

准备好的语句看起来如何?正确的语法是什么?

1 个答案:

答案 0 :(得分:0)

根据我对您的phpmyadmin查询的理解,您尚未使变量适合LIKE。因此,在像这样绑定之前将变量连接起来

$firstname .= '%';
$lastname .= '%';

在这之后,告诉我会发生什么。谢谢!