2012-08-05 129 views
0

当试图将数据插入到数据库表,我已经得到了以下错误:未定义指数

注意:未定义指数:follower_user_id在C:\ XAMPP \第29行的htdocs \ blog \ newentry.php
您的SQL语法错误;检查对应于你的MySQL服务器版本正确的语法使用近“后',12,手动NOW(),NOW())”在1号线

相关的代码如下:

$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语句的语法,我没有看到任何问题。我在这里忽略了什么?

任何帮助,将不胜感激!

+0

如果你'echo $ event_sql;'' ? – Musa 2012-08-05 03:01:07

+0

你有2个sql语句你正在使用哪一个? '$ node_sql'或'$ sql' – codingbiz 2012-08-05 03:03:37

+0

我认为你使用了错误的查询。 – SIFE 2012-08-05 03:04:54

回答

1

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

+0

谢谢,这解决了它!我不敢相信我忽视了这样一个愚蠢的错误! – 2012-08-05 03:11:46

0

我在这个问题上找不到评论链接,所以我会将它作为答案发布。

您在“发布”中使用单引号,而其他所有值均使用双引号。提示:您可以在双引号语句内自由使用变量。简单的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();"; 
+0

我之所以使用单引号是因为“post”不是一个变量,而是我想要手动插入列的值。 – 2012-08-05 03:09:44