0

尝试将数据插入数据库表时,出现以下错误:

注意:未定义索引:第 29 行 C:\xampp\htdocs\blog\newentry.php 中的 follower_user_id
您的 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());
        }

虽然通知说索引“follower_user_id”在第 29 行未定义,但我检查了数据库表,它是正确拼写的正确索引,所以我不知道是什么导致了这个问题。我还检查了 SQL 语句的语法,没有发现任何问题。我在这里忽略了什么?

任何帮助,将不胜感激!

4

2 回答 2

1

第 2 行 $node_result = mysql_query($sql); 应该可能使用 $node_sql 作为查询调用中的变量。我认为生成的 INSERT 语句有一个空白 $node_row['follower_user_id'] 所以有两个逗号之间没有任何内容,导致 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 回答