嗨,大家好,我希望能得到一些帮助。
我对表有一个INSERT查询,完成此操作后我正在调用:
mysql_insert_id();
为了将插入表格的最后一个ID发送到下一页,如下所示:
$insertGoTo = "confirm_booking.php?booking_ID=" .$_POST['booking_ID']. "";
不幸的是它不起作用,我得到的只是零。
我插入的表格有一个自动增量编号,并插入值。
我也试过SELECT MAX(id) FROM mytable
。这不适用。
我知道这个问题已经被讨论过了。我阅读了所有帖子但没有任何用处。
非常感谢Francesco
答案 0 :(得分:3)
生成链接时必须使用MySql_Insert_Id()返回的值:
// your query
$newId = MySql_Insert_Id ();
$insertGoTo = "confirm_booking.php?booking_ID=" . $newId;
答案 1 :(得分:3)
您的表格可能没有任何AUTO_INCREMENT
字段!
也可能因为您同时拥有两个或更多mysql连接而发生。
在这种情况下,您应该使用link identifier
。
$link = mysql_connect( ... );
mysql_select_db('mydb', $link);
mysql_query('INSERT mytable SET abc="123"', $link);
$inserted_id = mysql_insert_id($link);
答案 2 :(得分:2)
PHP手册中的一些要点:
为AUTO_INCREMENT生成的ID 上一个查询列 成功,如果上一个查询确实为0 不生成AUTO_INCREMENT值, 如果没有MySQL连接,则为FALSE 建立的。
如果没有AUTO_INCREMENT字段不是你的问题,你可能想尝试存储mysql_query调用的结果并将其用作id函数的参数
$result = mysql_query("...");
$id = mysql_insert_id($result);
答案 3 :(得分:2)
使用如下查询出现问题:
INSERT INTO会员(用户名,密码,电子邮件)VALUES(...)
将其更改为:
INSERT INTO会员(身份证,用户名,密码,电子邮件)VALUES('',...)
使用空值''将使MySQL使用自动增量值,但也允许您在查询中使用它,以便您可以返回插入ID
答案 4 :(得分:1)
答案 5 :(得分:0)
确保将mysql_insert_id()
放在
mysql_query($sql, $con); //Execute the query
以上查询负责执行您的Insert INTO ...
命令。
您可以获得最后插入ID
答案 6 :(得分:0)
我也遇到了这个问题。 最后我发现问题出现在我与数据库的连接中。您可以使用以下连接代码连接数据库,然后您可以轻松使用mysqli_insert_id()。
$db_connect = mysqli_connect("localhost", "root", "", "social");
然后您可以使用 mysqli_insert_id()作为
$id = mysqli_insert_id($db_conx);
我希望这会对你有所帮助。我有任何问题,请留下您的评论。
答案 7 :(得分:0)
mysqli_insert_id
function has been deprecated。这可能是你的问题。
相反,请尝试$mysqli->insert_id
。有关详细信息,请参阅documentation。