我想从PHP获取mysql数据库的结果。
我正在使用像这样的查询:
SELECT *
FROM images
WHERE images.name LIKE ? OR images.title LIKE ?
这就是我将参数绑定到查询的方式:
$f_for = "%". $filter_for ."%";
$stmt->bind_param('ss', $f_for, $f_for);
如果我用问题搜索字符串替换问号?
,那么查询如下所示:
SELECT *
FROM images
WHERE images.name LIKE '%searchForThis%' OR images.title LIKE '%searchForThis%'
直接执行它(不是PHP,而是phpMyAdmin或直接通过终端执行),我得到一个正确/肯定的结果(即我得到的行,搜索字符串匹配两列中的一列中的值)。
使用参数化查询我没有得到任何错误,只是一个空结果(即零行)。我尝试了不同的字符串格式,但似乎这些都不起作用。
$f_for = "'%". $filter_for ."%'";
$f_for = "%{$filter_for}%";
如何正确绑定参数?我完全错了,还是可能是另一个问题?
答案 0 :(得分:1)
这是你可以做到的一种方式,而且与$filter_for
$sql = "SELECT *
FROM images
WHERE images.name LIKE ? OR images.title LIKE ?"
$stmt = $conn->prepare($sql);
$param = "%$filter_for%";
$stmt->bind_param('ss', $param, $param);
答案 1 :(得分:0)
我即将撞到墙上,我真的很抱歉...
查看一般日志,正如aynber所建议的那样,我在查询结束时发现LIMIT 0, 0
,所以它总是会返回零行。
我对这个问题感到惭愧。
答案 2 :(得分:-3)
请使用这样的连接
true