如何使用PDO按列过滤?我有以下内容:
$sth = $dbh->query('SELECT * from blog ORDER BY date DESC LIMIT 4');
这显然会返回最后4个结果。我想再添加一个步骤,并按名为category
所以,比如:
$sth = $dbh->query('SELECT * from blog WHERE category=NAME-HERE ORDER BY date DESC LIMIT 4');
谢谢!
答案 0 :(得分:4)
我建议使用带有命名参数的预准备语句:
$stmt = $dbh->prepare("SELECT * FROM blog WHERE category=:category ORDER BY date DESC LIMIT 4");
$stmt->bindParam(':category', $category);
$stmt->execute();
如果它是一个字符串,PDO会自动在category
参数周围包装引号。
如果$category
的值不是来自不受信任的来源,您可以按如下方式修改代码:
$sth = $dbh->query("SELECT * from blog WHERE category='$category' ORDER BY date DESC LIMIT 4");
/** OR **/
$sth = $dbh->query('SELECT * from blog WHERE category="'.$category.'" ORDER BY date DESC LIMIT 4');
请注意,在上述情况下, 需要围绕$category
变量引用,因为您自己构建了查询字符串。