2013-02-27 88 views
0

嗨我重複與多個查詢的行,並希望從結果中獲取mysql_insert_id()。複製工作正常,但我似乎無法從它得到最後一個ID。Mysql多重查詢和mysql_insert_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 

回答

1

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

+0

謝謝我跳過了整個臨時表的事情,並按照您發送的鏈接上的示例。現在效果很棒! – Bravebox 2013-02-28 17:37:29