我正在创建一个电影数据库,我有一个查询,查找电影的ID和它的工作。
public function getMovieById($id) {
$query = "SELECT * FROM movies WHERE id = ?";
$paramType = "i";
$paramValue = array(
$id
);
$result = $this->db_handle->runQuery($query, $paramType, $paramValue);
return $result;
}
然后我试着做一个查询,按标题搜索电影。所以如果我输入say“Alien”,它会返回我拥有的任何电影,标题中有“Alien”这个词。无论我试过什么,我都没有得到任何返回,也没有错误。
public function getMovieByTitle ($title) {
$query = "SELECT * FROM movies WHERE title LIKE ?";
$paramType = "s";
$paramValue = array(
$title
);
$result = $this->db_handle->runQuery($query, $paramType, $paramValue);
return $result;
}
任何指向正确方向的观点都将受到赞赏
我还尝试了一个函数来查看title是否由$_POST传递,结果显示是这样。
2条答案
按热度按时间mcvgt66p1#
将
'Alien'
之类的值传递给LIKE
运算符不会执行预期的操作。这个 predicate ...
...实际行为类似于:
如果要搜索包含给定字符串的标题,则需要使用通配符
'%'
:您可以在代码中连接百分号,然后将其注入查询,也可以将原始值传递给查询,然后在SQL中添加通配符:
guicsvcw2#
将
%
合并到php代码中,作为sql中的一些字符的占位符