绑定参数到mysql查询

时间:2016-02-05 15:27:27

标签: php mysql

我想从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}%";

如何正确绑定参数?我完全错了,还是可能是另一个问题?

3 个答案:

答案 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