php - Mysql多次查询和mysql_insert_id()?

标签 php mysql mysqli mysql-insert-id

嗨,我正在使用多个查询复制一行,并希望从结果中获取 mysql_insert_id()。复制工作正常,但我似乎无法从中获取最后一个 id。

这是我的代码:

    $mysqli = new mysqli("localhost", "xxxx", "xxxx", "xxxx");

if ($mysqli->connect_errno) {
    echo($error_page_header);
    echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
    echo($error_page_footer);
    exit;
}

$sql = "CREATE TEMPORARY TABLE tmp ENGINE=MEMORY SELECT * FROM test_table WHERE id=1; ";
$sql.= "UPDATE tmp SET id=NULL; ";
$sql.= "INSERT INTO test_table SELECT * FROM tmp; ";
$sql.= "DROP TABLE tmp; ";

if (!$mysqli->multi_query($sql)) {
    echo($error_page_header);
    echo "Multi query failed: (" . $mysqli->errno . ") " . $mysqli->error;
    echo($error_page_footer);
    exit;

} do {
    if ($res = $mysqli->store_result()) {
        var_dump($res->fetch_all(MYSQLI_ASSOC));
        $res->free();
    }

} while ($mysqli->more_results() && $mysqli->next_result());    

echo( 'id: ' . mysql_insert_id() ); // prints 0

最佳答案

不要混淆.. ext/mysqlmysqli 不兼容,不能相互使用。使用$mysqli->insert_id (这是每个连接)

关于php - Mysql多次查询和mysql_insert_id()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15124927/

相关文章:

php - 在 mysqli 中带参数执行

PHP MYSQLI 编写语句登录并查看用户状态

php - 不能使用 php 返回的数组

MySQL 错误 1248,正在创建正确的查询。初学者问

mysql - 是否可以按 3 个月为周期对结果进行分组?

mysql - mysql中随机丢失数据库记录

php - MySQLi 的更新语句错误

php - 根据 table1 中的值从 table2 中选择行

php - Mysql语句没有返回正确的数据

php - Mysql,如何避免对同一张表进行多次连接