php mysql获取最后插入行的ID给出错误

标签 php mysql mysqli

我想获取最后插入的行的 ID,我正在使用 mysql_insert_id() 函数。但给出问题

这是我的代码:

if($i == 0)
{
    $query = "update events set e_did ='".$multi_event."' where eid = '".$display_id."'";
    mysqli_query($con,$query);
    file_put_contents('log.txt', mysql_insert_id(), FILE_APPEND);
}
else
{
    $query = "INSERT INTO events (start_date, end_date, text, rec_type, event_pid, event_length, e_did) VALUES ('".$row['start_date']."','".$row['end_date']."','".$row['text']."','".$row['rec_type']."','".$row['event_pid']."','".$row['event_length']."','".$multi_event."')";
    mysqli_query($con,$query);
    file_put_contents('log.txt', 'A'.mysql_insert_id().'A', FILE_APPEND);
}

现在我两次都得到相同的 ID。什么问题。我是不是哪里做错了什么?

最佳答案

如果使用 mysqli 函数,则必须使用 mysqli_insert_id .你不能混合使用 ext/mysql 和 ext/mysqli。

此外,UPDATE 不会生成新的自增 id。您应该在 INSERT 之后调用 mysqli_insert_id(),而不是 UPDATE。

关于php mysql获取最后插入行的ID给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21844941/

相关文章:

mysql - 如何在sql中合并两个不同的选择查询

php - 运行 mysqli 查询的问题

php - 数组,从 MySQLi 到 PDO

php - 在 CodeIgniter 中处理并发请求

php - 仅搜索部分数据库字符串时打印数据库字符串(通过 PHP 语句)

java - HikariCP 池连接不足

php - ALTER TABLE 表 AUTO_INCREMENT = $x

php - 将 JavaScript 变量分配给 Smarty 变量

php - 获取分组依据的查询结果

MySQL INSERT 重复键 UPDATE 与 SELECT