关联数组中的未定义索引和MySQL语法中的错误

时间:2012-08-05 02:56:10

标签: php mysql

尝试将数据插入数据库表时,我遇到了以下错误:

  

注意:第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());
        }

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

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

第2行 $ node_result = mysql_query($ sql); 应该使用$ node_sql作为查询调用中的变量。 我认为生成的INSERT语句有一个空的$ node_row ['follower_user_id']所以有两个逗号之间没有任何内容,导致sql解析器哭:)

答案 1 :(得分: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();";