0

変更しようとしているコード行があります... 元の行は Unix 時間を挿入していましたが、CURRENT_TIMESTAMP または NOW が必要です。データベースのフィールドを「datetime」タイプに変更しました。ただし、コードを変更すると、次のエラー メッセージが表示されます。 メッセージの送信中にエラーが発生しました。列数が行 1 の値数と一致しません

これが元のコードで、その後にどのように変更しようとしているかが続きます。どんな助けでも大歓迎です!

元のコード:

    //if(mysql_query('insert into pm (id, id2, title, user1, user2, message, date_time, user1read, user2read)values("'.$id.'", "'.(intval(mysql_num_rows($req2))+1).'", "", "'.$_SESSION['username'].'", "", "'.$message.'", "'.time().'", "", "")') and mysql_query('update pm set user'.$user_partic.'read="yes" where id="'.$id.'" and id2="1"'))

変更されたコード:

    if(mysql_query('insert into pm (id, id2, title, user1, user2, message, date_time, user1read, user2read)values("'.$id.'", "'.(intval(mysql_num_rows($req2))+1).'", "", "'.$_SESSION['username'].'", "", "'.$message.'", CURRENT_TIMESTAMP())') and mysql_query('update pm set user'.$user_partic.'read="yes" where id="'.$id.'" and id2="1"'))
4

1 に答える 1

0

エラーが言うように:

ステートメントには 9 個の項目がありますINSERTが、7 個しかありませんVALUES""欠落しているフィールドは、andrewsi がコメントで提案したように置き換える必要があります。

クエリをフォーマットすると、より明確になります。

INSERT INTO pm (id, id2, title, user1, user2, message, date_time, user1read, user2read)
VALUES("'.$id.'",
       "'.(intval(mysql_num_rows($req2))+1).'",
       "",
       "'.$_SESSION['username'].'",
       "",
       "'.$message.'",
       CURRENT_TIMESTAMP())

正しいクエリは次のとおりです。

INSERT INTO pm (id, id2, title, user1, user2, message, date_time, user1read, user2read)
VALUES("'.$id.'",
       "'.(intval(mysql_num_rows($req2))+1).'",
       "",
       "'.$_SESSION['username'].'",
       "",
       "'.$message.'",
       CURRENT_TIMESTAMP(),
       "",
       "")

お役に立てれば!

于 2013-08-21T15:37:16.247 に答える