我有一个路由设置,该路由设置应返回在列描述中包括搜索项的每条记录。现在,如果我使用诸如玩具之类的术语,例如,它将仅返回仅包含关键字玩具的列,而不返回包含“此玩具很棒”的列。
//Keyword results
$app->get('/search-description/[{keyword}]', function ($request, $response, $args) {
$sth = $this->db->prepare("SELECT * FROM products WHERE description LIKE :keyword ORDER BY name");
$keyword = "%".$keyword."%";
$sth->bindParam("keyword", $args['keyword']);
$sth->execute();
$keywordresults = $sth->fetchAll();
return $this->response->withJson($keywordresults);
});
我的问题是如何在路由中使用通配符?
非常感谢您的帮助!
答案 0 :(得分:0)
我弄清楚我做错了什么。并没有我尝试使用来自http://php.net/manual/en/pdostatement.bindparam.php的数据来使它复杂。
//Keyword results
$app->get('/search-description/[{keyword}]', function ($request, $response,
$args) {
$sth = $this->db->prepare("SELECT * FROM products WHERE description LIKE '%' :keyword '%' ORDER BY name");
$sth->bindParam("keyword", $args['keyword']);
$sth->execute();
$keywordresults = $sth->fetchAll();
return $this->response->withJson($keywordresults);
});
问题
$keyword = "%".$keyword."%";
此变量无处可寻,没有必要。
希望这对其他人有帮助。