我想从PHP获取mysql数据库的结果。绑定参数到mysql查询
我使用的查询像这样的:
SELECT *
FROM images
WHERE images.name LIKE ? OR images.title LIKE ?
而且这是我的参数绑定到查询:
$f_for = "%". $filter_for ."%";
$stmt->bind_param('ss', $f_for, $f_for);
如果我更换questionmarks ?
用组成搜索字符串,因此查询如下所示:
SELECT *
FROM images
WHERE images.name LIKE '%searchForThis%' OR images.title LIKE '%searchForThis%'
并直接执行它(不是PHP,但phpMyAdmin或直接通过终端),我得到一个正确的/积极的结果(即我得到的行,搜索字符串匹配的两列之一的值)。
使用参数化查询我没有得到任何错误,但只是一个空的结果(即零行)。我尝试了不同的字符串格式,但它们似乎都不起作用。
$f_for = "'%". $filter_for ."%'";
$f_for = "%{$filter_for}%";
如何正确绑定参数?我是否完全错误或可能是另一个问题?
您是否检查过文档? http://php.net/manual/en/mysqli-stmt.bind-param.php – hdost
我做了,但我找不到任何可能的错误... – user5888833
由于'bind_param'通过引用绑定参数,它*可能*如果你使用'pdo',你可以尝试使用'bind_value()',或者简单地创建两个保存相同值的变量,例如: '$ f_for1'和'$ f_for2' – CD001