我正在设置新的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();
答案 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);