搜索MySQL数据库

时间:2014-04-17 17:34:49

标签: php search pdo mysqli

我正在制作一个电影网站,你可以在数据库中搜索找到想要的标题,但我有问题...... 如何使用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部分如果我搜索哈利波特,它会显示该电影但是如果我搜索哈利波特,它就不会显示任何内容(空白结果)。

这只是一部示例电影,它不适用于数据库中的任何电影。

如何编辑此代码以匹配搜索输入,大写或小写的每个结果?



提前谢谢。

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代表不区分大小写)。