我刚刚执行了一个存储过程,它将航班信息插入到我的表中,我想在每次插入后获取id。但我无法找到其他适用于我的方法。我想得到auto_increment上的flight_id。
mysqli_query($conn,"CALL addschedule('$airlineID','$from','$to','$departDate','$arriveDate','$departTime','$arrivalTime','$price')");
$last_id = mysqli_insert_id($conn);
echo $last_id;
正在运行mysqli_insert_id
只会返回0值,但我的上一次航班ID为3.有人能给我一个明确的解释吗?
答案 0 :(得分:3)
mysqli_insert_id - 返回上次查询中使用的自动生成的ID
mysqli_insert_id()函数返回查询生成的ID,该查询在具有AUTO_INCREMENT属性的列的表上。如果最后一个查询不是INSERT或UPDATE语句,或者如果修改后的表没有具有AUTO_INCREMENT属性的列,则此函数将返回零。
因此,请检查您是否已将AUTO_INCREMENT属性设置为id
字段。
如果您已将其设置为AUTO_INCREMENT。此示例代码可能对您有所帮助。
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);
/* In op's case
mysqli->query($conn,"CALL addschedule('$airlineID','$from','$to','$departDate','$arriveDate','$departTime','$arrivalTime','$price')");
*/
printf ("New Record has id %d.\n", $mysqli->insert_id);
/* close connection */
$mysqli->close();
?>
答案2
在你的SP中
INSERT INTO table VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000);
select LAST_INSERT_ID();
在你的PHP代码
$result=mysqli_query($conn,"CALL addschedule('$airlineID','$from','$to','$departDate','$arriveDate','$departTime','$arrivalTime','$price')");
echo "Last ID: ".$result;
这可能会使你的工作。
PS :我没有测试此代码。希望工作