【发布时间】:2019-04-26 22:15:20
【问题描述】:
我有一个搜索栏,并在我的代码中创建了一个查询,但我现在想为它创建一个存储过程,这样我就可以在需要时调用它,而不是在我的代码中使用查询。
但是,我似乎无法在 mysql 中创建存储过程,因为我使用了绑定参数。 LIKE CONCAT('%',:title,'%')
public function search($searchTerm) {
$db = Db::getInstance();
$req = $db->prepare("SELECT p.postID, p.title, p.tagID, p.content, p.date, p.postImage, u.username "
. " FROM user as u inner JOIN user_post as UP on u.userID=up.userID inner JOIN post as p "
. "on up.postID=p.postID WHERE p.title LIKE CONCAT('%',:title,'%')");
$req ->execute(array('title' => $searchTerm));
$posts = [];
foreach ($req->fetchAll() as $blogPost) {
array_push($posts, new Post($blogPost['postID'], $blogPost['title'], $blogPost['tagID'], $blogPost['content'], $blogPost['date'], $blogPost['postImage'], $blogPost['username']));
}
if (empty($posts)) {
return null;
} else {
return $posts;
}
}
有谁知道我的存储过程应该是什么样子以及如何调用它?
【问题讨论】:
标签: php mysql stored-procedures parameters binding