2

ちょっとした問題があり、誰か助けてくれる人がいるかどうか疑問に思っています。

私はMySQLとPHPに関しては少し初心者ですが、問題は、データベースにコメントを追加しようとするとエラーが発生することです。ここに私のパブリック関数コードがあります

    public function addComment($movieid, $comment, $user_id)
{
    $comment = stripslashes(strip_tags($comment));
    $comment = mysql_real_escape_string($comment);
    $movieid = mysql_real_escape_string($movieid);
    $user_id = mysql_real_escape_string($user_id);
    if (!($e = mysql_query("SELECT * FROM comments WHERE target_id='{$movieid}' AND user_id='{$user_id}' AND comment='{$comment}' AND type=2"))) {
        exit(mysql_error());
    }
    if (mysql_num_rows($e) == 0) {
        if (!($e = mysql_query("INSERT INTO comments(target_id,user_id,comment,date_added,type) VALUES('{$movieid}','{$user_id}','{$comment}',NOW(),2)"))) {
            exit(mysql_error());
        }
    }
}

これが私のMySQLコメントテーブル構造です

 1  id                int(11)                       No  None    AUTO_INCREMENT   
 2  movieid           int(11)                       No  None         
 3  user_id           int(11)                       No  None         
 4  target_id         int(11)                       No  None         
 5  comment           text       utf8_general_ci    No  None         
 6  date_added        datetime                      No  None    

しかし、コメントを追加しようとするとこのエラーが発生します

Unknown column 'type' in 'where clause'

誰かが私を助けてくれますか

ありがとう

4

5 に答える 5

6

テーブルに という名前の列がありませんtype。このクエリは失敗します。テーブルに列を追加するか、参照を完全typeに除外するようにクエリを変更する必要があります。typeとはどういうtype意味ですか?

このクエリで何を達成しようとしているのかを理解したい:

SELECT * FROM コメント WHERE target_id='{$movieid}' AND user_id='{$user_id}' AND comment='{$comment}' AND type=2

typeテーブル自体に何もない場合、DBシステムはどのように結果をフィルタリングしますか?

経験則は、最初にIDEまたはコマンドラインを使用してDBに対して直接クエリを実行し、クエリの正確性を確認し、データを検証してからコードで使用することです!

于 2013-07-26T08:19:01.930 に答える
0

typeデータベースに問題のある列がありません

于 2013-07-26T08:19:15.673 に答える
0

「タイプ」列がテーブルにありません。

于 2013-07-26T08:20:57.513 に答える
0

クエリをこれに変更します。type(列が存在しないため、削除しました)

INSERT INTO comments(target_id,user_id,comment,date_added) VALUES('{$movieid}','{$user_id}','{$comment}',NOW())
于 2013-07-26T08:21:39.747 に答える