0

データベース テーブルにデータを INSERT しようとすると、次のエラーが発生します。

Notice: Undefined index: follower_user_id in C:\xampp\htdocs\blog\newentry.php 行 29
SQL 構文にエラーがあります。MySQL サーバーのバージョンに対応するマニュアルを参照して、1 行目の ''post', 12, NOW(), NOW())' 付近で使用する正しい構文を確認してください。

関連するコードは次のとおりです。

$node_sql = "SELECT * FROM nodes WHERE followed_blog_id=".$row['id']." order by id DESC;";
    $node_result = mysql_query($sql);

while ($node_row = mysql_fetch_assoc($node_result)){

            $event_sql = "INSERT INTO events (followed_id, follower_id, type, item_id, last_active, date) VALUES (".$row['id'].", ".$node_row['follower_user_id'].", 'post', ".$item_id.", NOW(), NOW());";
            mysql_query($event_sql) or die(mysql_error());
        }

29 行目でインデックス "follower_user_id" が未定義であるという通知がありましたが、データベース テーブルを確認したところ、正しいスペルの正しいインデックスであるため、この問題の原因はわかりません。SQL ステートメントの構文も確認しましたが、問題はありません。ここで私は何を見落としましたか?

どんな助けでも大歓迎です!

4

2 に答える 2

1

2 行目 $node_result = mysql_query($sql); おそらく、クエリ呼び出しで変数として $node_sql を使用する必要があります。生成された INSERT ステートメントには空白の $node_row['follower_user_id'] があると思うので、間に何もない 2 つのコンマがあり、SQL パーサーが泣いています:)

于 2012-08-05T03:11:03.580 に答える
0

質問のコメントリンクが見つからないので、回答として投稿します。

「post」で一重引用符を使用していますが、他のすべての値は二重引用符で覆われています。

ヒント: 二重引用符で囲まれたステートメント内では、変数を単独で自由に使用できます。目にやさしいSQL。

SQL INSERT 行の更新版は次のとおりです。

$event_sql = "INSERT INTO events (followed_id, follower_id, type, item_id, last_active, date)
              VALUES ({$row["id"]}, {$node_row["follower_user_id"]},
                      `post`, $item_id, NOW(), NOW();";
于 2012-08-05T03:07:21.500 に答える