0

こんにちはImは複数のクエリで行を複製しており、結果から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
4

1 に答える 1

1

混同しないでください..ext/mysqlそしてmysqli互換性がなく、互いに使用することはできません。使用$mysqli->insert_id(接続ごと)

于 2013-02-27T23:57:55.373 に答える