在PHP中使用LIKE语句

时间:2019-06-02 07:56:16

标签: php sql

我正在设置新的API,我想显示Mysql数据库中带有“ SELECT列WHERE列LIKE%?”的所选信息,但是我在“%”符号中遇到错误,必须在其中插入'%'这个符号?

这是我在文件夹模型中的查询

$query = 'SELECT 
                q.id, 
                q.id_user, 
                q.id_tag,
                q.image,
                q.title,
                q.description,
                q.like,
                q.dislike,
                q.date,
                q.status
               FROM
                '.$this->table.' as q
            WHERE
                q.title LIKE ?';

这就是我的执行方式

$stmt = $this->conn->prepare($query);
$stmt->bindParam(1, $this->like);
$stmt->execute();

这就是我的要求

$question->title = isset($_GET['title']) ? $_GET['title'] : die();

1 个答案:

答案 0 :(得分:3)

在准备好的语句中对参数化查询使用LIKE子句时,只需将通配符放在要添加的参数中。

例如,如果您的查询是:

SELECT * FROM table WHERE column LIKE ?;

在PHP中,您可以通过以下方式定义参数:

$stmt->bindParam(1, '%' . $this->like . '%');

当然,取决于通配符的工作方式,您可以仅在开头或结尾处使用'%',

$stmt->bindParam(1, '%' . $this->like . '%');
$stmt->bindParam(1, '%' . $this->like);
$stmt->bindParam(1, $this->like . '%');

顺便说一句,您也可以将其放入变量中:

$p = '%' . $this->like . '%';
$stmt->bindParam(1, $p);