我试图在名为authors
的表上获取最后插入的id的id,以便在另一个名为mail
的表中使用它。
如您所见,这是在表authors
中插入新作者,并且在插入后,它必须在表mail
中向新作者插入欢迎消息。
我正在使用mysql_insert_id()
,但它不起作用。
没有任何内容保存到数据库,也不会发生错误。
我知道我不应该使用mysql_query但是没关系,这不是重点,请忽略这一点。
if(!isset($row[email])){
$sql = "INSERT INTO authors VALUES (NULL, 0, '".$email."', '".$username."', NULL, '".$first."', '".$fullname."', '".$first."', NULL, NULL, NULL, NULL,'http://www.gravatar.com/avatar/".md5(strtolower(trim($email)))."', 0);";
mysql_query($sql);
$sqlmsg = "INSERT INTO mail VALUES (NULL, 1, mysql_insert_id(), 'Welcome', Hello! Welcome to the website!', 'unread', NOW, 0, 0)";
mysql_query($sqlmsg);
}
为什么插入新作者时没有任何反应?
谢谢。
答案 0 :(得分:1)
您需要在字符串中连接它,
$sqlmsg = "INSERT INTO mail VALUES (NULL, 1, " . mysql_insert_id() . ", 'Welcome', Hello! Welcome to the website!', 'unread', NOW, 0, 0)";
答案 1 :(得分:1)
尝试将其保存在临时变量上,然后在下一个查询中使用它。
<?php
if(!isset($row[email])){
$sql = "INSERT INTO authors VALUES (NULL, 0, '".$email."', '".$username."', NULL, '".$first."', '".$fullname."', '".$first."', NULL, NULL, NULL, NULL,'http://www.gravatar.com/avatar/".md5(strtolower(trim($email)))."', 0);";
mysql_query($sql);
$author_id = mysql_insert_id();
$sqlmsg = "INSERT INTO mail VALUES (NULL, 1, $author_id, 'Welcome', Hello! Welcome to the website!', 'unread', NOW, 0, 0)";
mysql_query($sqlmsg);
}
?>
答案 2 :(得分:0)
在表格上使用选择查询,并按'id'desc以限制1
排序select `id` from `authors` order by `id desc limit 1
如果它自动递增,将返回最后一个id。