0

新しい投稿を作成して、よりよく説明するように言われました。

私のウェブページにはアップロード機能があります。そして、フィルターと呼ばれるデータベースから特定のタイトルをブロックしたいと考えています。しかし、それはうまくいきません。

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

ホワイトタイガー。データベース フィルタでブロックされます。このクエリを SQL で実行すると、

SELECT COUNT(*) FROM filter WHERE '". The.White.Tiger.Test.Dawe.avi ."' LIKE CONCAT('%', filter, '%')

私はカウント1を取得します

したがって、php 側は 1 つのエントリがあるため、アップロードを拒否する必要があります..しかし、そうではありませんか? コードに何か問題がありますか?

私は今、php witchでこれらを試しましたが、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内部サーバーエラーが発生しました

4

1 に答える 1

0

クエリからわかるように、ユーザー (または他の誰か) のようなタイトルが入力された既存のレコードを検索します。ここに 2 つのエラーがあります。

  1. 間違っWHEREた条項。後WHEREには、値ではなく、テーブル フィールドの名前が続きます
  2. filterCONCATで何ですか?その価値は?

テーブルのタイトル列名が であるとしfilterますcolumn_title。また、テーブル内の既存のタイトルThe.White.Tiger.Test.Dawe.avifilterを探しています。クエリは次のようになります。

SELECT COUNT(*) as count FROM filter WHERE 'column_title' LIKE CONCAT('%', 'The.White.Tiger.Test.Dawe.avi', '%')

クエリの後、値を確認countして 1 と比較する必要があります。値が 1 以上の場合は、既にこのタイトルを持っています。Else - タイトルがテーブルになく、追加などを実行できます。

更新

実際のテーブル構造を見ると、次のように置き換える必要がありcolumn_titleますfilter

SELECT COUNT(*) as count FROM filter WHERE 'filter' LIKE CONCAT('%', 'The.White.Tiger.Test.Dawe.avi', '%')

于 2013-08-18T15:23:18.230 に答える