我正在尝试为我的网站创建一个过滤系统。当前代码如下所示:
$DB->query("SELECT id FROM filter WHERE filter LIKE '%". $Properties['Title'] ."%'");
if($DB->record_count() != 0) {
$Err = '[b]Cannot upload this![/b]';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
*注意:$ DB-> record_count =涵盖mysqli_num_rows的函数
因为我们将$ Properties作为已上传元素的属性,因此Title将成为字符串标题
示例,上传可能是: Me.And.My.Dog.At.The.Lake
并且过滤器数据库中有一条记录说: me.and.my.dog
代码的目的是发出错误,不允许上传继续。
答案 0 :(得分:1)
如果我理解正确,你可以使用像这样的查询
SELECT COUNT(*) matches
FROM filter
WHERE 'Me.And.My.Dog.At.The.Lake' LIKE CONCAT('%', filter, '%')
注意:强>
filter
LIKE
COUNT()
返回结果集中的行数,而不是返回可能包含多行的结果集(即使它只是id),然后在客户端读取计数。这是 SQLFiddle 演示
答案 1 :(得分:1)
使用以下语句获取行计数
if($DB->fetch(PDO::FETCH_NUM) != 0) {
$Err = '[b]Cannot upload this![/b]';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}