【发布时间】:2014-05-22 07:19:30
【问题描述】:
我正在尝试编写一个读取字符串 $query 的简单搜索函数。
我的问题是,我可以在一个 select 语句中使用多个 OR 吗?我正在尝试搜索一个字符串以查看它是否与许多列值匹配,然后打印这些行。
function search($query) {
try {
$db = db_open();
$sql = "select * from pms where (name like :query) or (state like :query) or
(start like :query) or (finish like :query) ";
$statement = $db->prepare($sql);
$statement->bindValue(':query', $query);
$statement->execute();
$pms = $statement->fetchAll();
} catch(PDOException $e) {
die("Error: ".$e->getMessage());
}
return $pms;
}
这不起作用,除非我搜索状态。
谢谢
【问题讨论】:
-
已解决,绑定语句中的语法不正确。
$statement->bindValue(':query', $query);应该是:$statement->bindValue(':query', "%$query%");感谢其他成员的建议。无论如何,他们帮助整理了我的代码:-)
标签: php select sqlite where sql-like