2012-08-05 125 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