php - 在 PHP 中为 MATCH AGAINST 准备的语句不起作用
问题描述
我正在尝试执行以下操作MATCH AGAINST
,php
但没有结果。
当我直接执行相同的 Select 语句时,phpmyadmin
它可以工作,但是在带有准备好的语句的 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)
准备好的语句看起来如何?它的正确语法是什么?
解决方案
根据我对您的phpmyadmin
查询的理解,您没有使您的变量适合LIKE
. 所以在像这样绑定之前连接你的变量
$firstname .= '%';
$lastname .= '%';
在这之后告诉我会发生什么。谢谢!
推荐阅读
- php - 找不到 wp-login.php 和 wp-admin 404 上的太多重定向
- arrays - 将一维字符串转换为多维数组 - Numpy
- html - iFrame 不显示网站(跨站请求错误)
- java - 如何在对象列表中查找某些字段的重复项?
- typescript - 应该如何构建打算通过 git url 安装的 Typescript 库?
- java - 如何连接字符而不是添加数值
- javascript - 在谷歌电子表格中值从 TRUE 变为 FALSE 后,有没有办法停止 COUNTIF 函数?
- google-cloud-pubsub - DataflowTemplates debezium 连接器问题
- scikit-learn - 评估缩放的 RMSE
- javascript - Jquery mousedown 没有在数据表上触发