note 113152 added to mysqli.insert-id

From: Date: Fri, 06 Sep 2013 02:54:26 +0000
Subject: note 113152 added to mysqli.insert-id
Groups: php.notes 
Request: Send a blank email to php-notes+get-196177@lists.php.net to get a copy of this message
The example is lack of insert_id in multi_query. Here is my example: Assuming you have a new test_db in mysql like this: create database if not exists test_db; use test_db; create table user_info (_id serial, name varchar(100) not null); create table house_info (_id serial, address varchar(100) not null); Then you run a php file like this: <?php define('SERVER', '127.0.01'); define('MYSQL_USER', 'your_user_name'); define('MYSQL_PASSWORD', 'your_password'); $db = new mysqli(SERVER, MYSQL_USER, MYSQL_PASSWORD, "test_db", 3306); if ($db->connect_errno) echo "create db failed, error is ", $db->connect_error; else { $sql = "insert into user_info " . "(name) values " . "('owen'), ('john'), ('lily')"; if (!$result = $db->query($sql)) echo "insert failed, error: ", $db->error; else echo "last insert id in query is ", $db->insert_id, "\n"; $sql = "insert into user_info" . "(name) values " . "('jim');"; $sql .= "insert into house_info " . "(address) values " . "('shenyang')"; if (!$db->multi_query($sql)) echo "insert failed in multi_query, error: ", $db->error; else { echo "last insert id in first multi_query is ", $db->insert_id, "\n"; if ($db->more_results() && $db->next_result()) echo "last insert id in second multi_query is ", $db->insert_id, "\n"; else echo "insert failed in multi_query, second query error is ", $db->error; } $db->close(); } ?> You will get output like this: last insert id in query is 1 last insert id in first multi_query is 4 last insert id in second multi_query is 1 Conclusion: 1 insert_id works in multi_query 2 insert_id is the first id mysql has used if you have insert multi values ---- Server IP: 69.147.83.199 Probable Submitter: 221.200.238.161 ---- Manual Page -- http://php.net/manual/en/mysqli.insert-id.php Edit -- https://master.php.net/note/edit/113152 Del: integrated -- https://master.php.net/note/delete/113152/integrated Del: useless -- https://master.php.net/note/delete/113152/useless Del: bad code -- https://master.php.net/note/delete/113152/bad+code Del: spam -- https://master.php.net/note/delete/113152/spam Del: non-english -- https://master.php.net/note/delete/113152/non-english Del: in docs -- https://master.php.net/note/delete/113152/in+docs Del: other reasons-- https://master.php.net/note/delete/113152 Reject -- https://master.php.net/note/reject/113152 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#196177) next »