尝试将数据插入数据库表时,我遇到了以下错误:
注意:第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语句的语法,我没有看到任何问题。我在这里忽略了什么?
任何帮助将不胜感激!
答案 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();";