在Slim Framework路由中按关键字搜索

时间:2018-09-21 20:50:59

标签: php pdo slim-3

我有一个路由设置,该路由设置应返回在列描述中包括搜索项的每条记录。现在,如果我使用诸如玩具之类的术语,例如,它将仅返回仅包含关键字玩具的列,而不返回包含“此玩具很棒”的列。

//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);
});

我的问题是如何在路由中使用通配符?

非常感谢您的帮助!

1 个答案:

答案 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."%";

此变量无处可寻,没有必要。

希望这对其他人有帮助。