php - 如何使用单个准备好的语句获取刚刚插入的行的 id?

标签 php mysql sql database mysqli

我按以下方式插入一行:

require("localhost_credentials.php");

$conn = new mysqli($db_servername, $db_username, $db_password, $db_name);
if($conn->connect_error)
{
    die("Connection failed: " . $conn->connect_error);
}

$q_title = $fixed_title;
$q_tags = $_POST['tag_input'];
$q_mod = "n";
$q_t_create = date("m/d/Y @ G:i:s");
$q_t_modified = date("m/d/Y @ G:i:s");

$querystr  = "INSERT INTO mytable (title, tags, moderator, time_created, time_last_modified) ";
$querystr .= "VALUES (?, ?, ?, ?, ?);";

$statement = $conn->prepare($querystr);
$statement->bind_param("sssss", $q_title, $q_tags, $q_mod, $q_t_create, $q_t_modified);
$statement->execute();

我想获取刚刚插入的行的 id,而无需执行第二次查询。我已经看到了一些在 SO 上执行此操作的方法,但每次都存在关于应该或不应该以哪种方式完成的争论,我有点困惑。

使用准备好的语句,如何仅使用一个查询来获取新插入的行的 id?

最佳答案

只要不执行multi insert,就可以使用

$conn->insert_id

当从该连接创建的语句执行 INSERT 查询时,它会自动填充。

关于php - 如何使用单个准备好的语句获取刚刚插入的行的 id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31792787/

相关文章:

MySQL 双列主键困境

sql - CLOB/TEXT 对性能有影响吗?

php - MySql 无法在 XAMPP 中启动

php - 如果关键字出现在字符串的不同位置,如何在数据库字段中搜索关键字?

java - Java 中的 MySQL 准备语句不返回值

mysql - 操作失败: There was an error while applying the SQL script to the database. MYSQL

php mysqli 获取显示数组结果的数据但无法回显(显示 NULL)

php - 采用我当前的系统以包含实时通知

javascript - 为什么 jQuery.fler 插件不使用 Ajax/PHP 删除图像?

php - 如何使用 PHP、MySQL 和 Jquery 创建测验