我正在制作一个电影网站,你可以在数据库中搜索找到想要的标题,但我有问题...... 如何使用PDO搜索数据库?我有这样的事情:
$search=$_GET['search'];
$search='%'.$search.'%';
$db = new mysqli($DBhost, $DBuser, $DBpassword, $DBdatabase);
$sql="SELECT id, title, year, front_image, description FROM a358_filmovi WHERE title LIKE ?";
$sl=$db->prepare($sql);
$sl->bind_param('s',$search);
$sl->execute();
$sl->bind_result($id, $title, $year, $front_image, $description);
while($sl->fetch()){
?>
DATA OUTPUT
<?php
}
问题是我有记录哈利波特和死亡圣器:第1部分如果我搜索哈利波特,它会显示该电影但是如果我搜索哈利波特,它就不会显示任何内容(空白结果)。
这只是一部示例电影,它不适用于数据库中的任何电影。
如何编辑此代码以匹配搜索输入,大写或小写的每个结果?
提前谢谢。
答案 0 :(得分:1)
如果您在PDO中询问如何执行此操作,则非常相似。您可以在execute()函数中绑定param,以避免使用bindParam()。
$db = new PDO('mysql:host=localhost;dbname=testdb;charset=utf8', 'username', 'password');
$sql="SELECT id, title, year, front_image, description FROM a358_filmovi WHERE title LIKE ?";
$sl=$db->prepare($sql);
$sl->execute(array('%'.$_GET['search'].'%');
应该工作。
不要使用SQL或PHP进行不区分大小写的搜索,而是最好将模式中的列编码更改为_ci(ci代表不区分大小写)。