Bug #54142 [Opn->Bgs]: the function mysqli_insert_id doesn't return the last id
Edit report at http://bugs.php.net/bug.php?id=54142&edit=1
ID: 54142
Updated by: dtajchreber@php.net
Reported by: lissetteganoza at gmail dot com
Summary: the function mysqli_insert_id doesn't return the
last id
-Status: Open
+Status: Bogus
Type: Bug
Package: PHP options/info functions
Operating System: windows
PHP Version: 5.2.17
Block user comment: N
Private report: N
New Comment:
david@copenhagen:~/test$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 64
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> describe test;
+-------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------------+------+-----+---------+----------------+
| pid | int(10) unsigned | NO | PRI | NULL | auto_increment |
| n_pid | date | NO | | NULL | |
+-------+------------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> select * from test;
+-----+------------+
| pid | n_pid |
+-----+------------+
| 1 | 2011-03-02 |
+-----+------------+
1 row in set (0.00 sec)
mysql> exit
Bye
david@copenhagen:~/test$ cat t.php
<?php
$l = mysqli_connect('127.0.0.1', 'root', 'root');
var_dump(mysqli_select_db($l, 'test'));
var_dump(mysqli_query($l, 'insert into test (n_pid)
values(curdate())'));
var_dump(mysqli_insert_id($l));
david@copenhagen:~/test$ /home/david/dev/php/php53/sapi/cli/php -v
PHP 5.3.6-dev (cli) (built: Feb 26 2011 23:29:38) (DEBUG)
Copyright (c) 1997-2011 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2011 Zend Technologies
david@copenhagen:~/test$ /home/david/dev/php/php53/sapi/cli/php t.php
bool(true)
bool(true)
int(9)
david@copenhagen:~/test$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 66
Server version: 5.1.41-3ubuntu12.10 (Ubuntu)
Type 'help;' or '\h' for help. Type '\c' to clear the current input
statement.
mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select * from test;
+-----+------------+
| pid | n_pid |
+-----+------------+
| 1 | 2011-03-02 |
| 9 | 2011-03-02 |
+-----+------------+
2 rows in set (0.00 sec)
mysql> exit
Bye
david@copenhagen:~/test$
Previous Comments:
------------------------------------------------------------------------
[2011-03-02 22:42:17] lissetteganoza at gmail dot com
Description:
------------
---
From manual page: http://www.php.net/mysqli.insert-id#Descripción
---
The function mysqli_insert_id does not return the if of the last
insert. The
query was executed without problem but I can get the id of this insert.
I want to
konw if exist other function other possiblity, maybe I need to
reconfigure some
value in the php ini, but I need a solution and this solution must be in
the
documents of this funcionality.
I'm adding the function that I have for insert a row.
Test script:
---------------
function insert($ins)
{
$result = @mysqli_query($this->conn,$ins);
if (!$result)
{
$this->writeTemplate(DB_TITULO_ERROR,mysqli_error());
}
return @mysqli_insert_id($this->conn);
}
Expected result:
----------------
- A solution to use correctly this function
- Id does not exist a solution with this function, another solution with
other
functions of mysql
Actual result:
--------------
the function returns a empty object.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/bug.php?id=54142&edit=1
Thread (2 messages)