我被告知要尝试新帖并更好地解释。
我的网页上有一个上传功能。我想阻止一个名为filter的数据库中的某些标题。但它不起作用。
php端看起来像这样。
$DB->query("SELECT COUNT(*) FROM filter WHERE '". $Properties['Title'] ."' LIKE CONCAT('%', filter, '%')");
if($DB->record_count() != 0) {
$Err = '<b>you cant upload this!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
$Properties['Title']
在我的测试中包含了这个:The.White.Tiger.Test.Dawe.avi
The.White.Tiger。在数据库筛选器中被阻止。如果在SQL中运行此查询
SELECT COUNT(*) FROM filter WHERE '". The.White.Tiger.Test.Dawe.avi ."' LIKE CONCAT('%', filter, '%')
我计算 1
所以php端应该拒绝上传,因为它上面有1个条目..但是dosnt?代码有问题吗?
我现在已经尝试过这些在php中给出了500内部服务器错误
SELECT id FROM filter WHERE 'filter' LIKE CONCAT('%', '" . $Properties['Title'] . "', '%')
if($DB->record_count() != 0) {
$Err = '<b>You cant upload!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
}
SELECT COUNT(*) as 'count' FROM filter WHERE 'filter' LIKE CONCAT('%', '" . $Properties['Title'] . "', '%')
if($DB->record_count() != 0) {
$Err = '<b>You cant upload!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
}
SELECT COUNT(*) as count FROM filter WHERE 'filter' LIKE CONCAT('%', '" . $Properties['Title'] . "', '%')
if($DB->record_count() != 0) {
$Err = '<b>You cant upload!</b>';
include(SERVER_ROOT . '/sections/upload/upload.php');
die();
}
}
以上所有内容都给出了500内部服务器错误
答案 0 :(得分:0)
正如我从查询中看到的那样,您希望找到存在的记录,其中包含用户(或其他人)等标题。 这里有两个错误:
WHERE
条款。 WHERE
之后是表字段的名称,而不是值filter
是什么?它有什么价值?假设您的表格filter
中的标题栏名称为column_title
。
您正在寻找表filter
中已存在的标题 The.White.Tiger.Test.Dawe.avi 。
查询应该是这样的:
SELECT COUNT(*) as count FROM filter WHERE 'column_title' LIKE CONCAT('%', 'The.White.Tiger.Test.Dawe.avi', '%')
查询后,您必须检查count
的值并将其与1进行比较。如果它等于或大于1 - 您已经拥有此标题。否则 - 标题不在表格中,您可以执行添加或其他操作。
<强>更新强>:
当我看到您的真实表格结构时 - 您应该将column_title
替换为filter
:
SELECT COUNT(*) as count FROM filter WHERE 'filter' LIKE CONCAT('%', 'The.White.Tiger.Test.Dawe.avi', '%')