喜欢COUNT 1,但不计入数据库

时间:2013-08-18 15:06:53

标签: mysql

我被告知要尝试新帖并更好地解释。

我的网页上有一个上传功能。我想阻止一个名为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内部服务器错误

1 个答案:

答案 0 :(得分:0)

正如我从查询中看到的那样,您希望找到存在的记录,其中包含用户(或其他人)等标题。 这里有两个错误:

  1. 错误的WHERE条款。 WHERE之后是表字段的名称,而不是值
  2. CONCAT中的
  3. filter是什么?它有什么价值?
  4. 假设您的表格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', '%')