繁体   English   中英

php mysql_insert_id(); 不工作

[英]php mysql_insert_id(); not working

嗨,大家好,我希望从这里得到一些帮助。

我对表有一个INSERT查询,完成后我调用:

mysql_insert_id();

为了将插入表中的最后一个ID发送到下一页,如下所示:

$insertGoTo = "confirm_booking.php?booking_ID=" .$_POST['booking_ID']. "";

不幸的是它不起作用,我得到的只是零。

我插入的表有一个自动增量编号,值插入其中。

我也试过SELECT MAX(id) FROM mytable 这不适用。

我知道这个问题已经被讨论过了。 我阅读了所有帖子但没有任何内容有用。

非常感谢Francesco

生成链接时,必须使用MySql_Insert_Id()返回的值:

// your query
$newId = MySql_Insert_Id ();

$insertGoTo = "confirm_booking.php?booking_ID=" . $newId;

您的表可能没有任何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);

PHP手册中的一些要点:

上次查询成功时为AUTO_INCREMENT列生成的ID,如果上一个查询未生成AUTO_INCREMENT值,则为0;如果未建立MySQL连接,则为FALSE。

如果没有AUTO_INCREMENT字段不是你的问题,你可能想尝试存储mysql_query调用的结果并将其用作id函数的参数

$result = mysql_query("...");
$id = mysql_insert_id($result);

有一个问题使用这样的查询:

INSERT INTO会员(用户名,密码,电子邮件)VALUES(...)

  • 原因是id(这是我的主键和自动增量字段)不是查询的一部分。

将其更改为:

INSERT INTO会员(身份证,用户名,密码,电子邮件)VALUES('',...)

使用空值''将使MySQL使用自动增量值,但也允许您在查询中使用它,以便您可以返回插入ID

如果插入失败,mysql_insert_id可能返回0或false? 因此,如果您在使用mysql_insert_id时遇到问题,请不要重新调整您的预期,确认您没有唯一的约束或sql的其他问题会导致插入失败。 如果你考虑这个,使用max是一个糟糕的主意。

确保在之后放置mysql_insert_id()

mysql_query($sql, $con); //Execute the query

上面的查询负责执行Insert INTO ...命令。 在您可以插入最后一个ID之后

我也遇到了这个问题。 最后我发现问题发生在我与数据库的连接中 您可以使用以下连接代码连接数据库,然后您可以轻松使用mysqli_insert_id()。

$db_connect = mysqli_connect("localhost", "root", "", "social");

然后你可以使用mysqli_insert_id()作为

$id = mysqli_insert_id($db_conx);

我希望这能帮到您。 我有任何问题,请留下您的评论。

mysqli_insert_id函数已被弃用 这可能是你的问题。

相反,尝试$mysqli->insert_id 有关详细信息,请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM