Ogni volta che eseguo una dichiarazione SELECT
con WHERE id is NULL
direttamente dopo un INSERT
, ottengo l'ultima riga inserita.MySQL restituisce l'ultimo inserito durante l'interrogazione IS NULL
Sto usando MySQL 5.1.73.
Si verifica direttamente nella shell MySQL; ecco la mia console:
mysql> CREATE TABLE testing (
-> id int(11) NOT NULL AUTO_INCREMENT,
-> name VARCHAR(200),
-> PRIMARY KEY (id)
->) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.03 sec)
mysql> INSERT INTO testing (name) VALUES ('test');
Query OK, 1 row affected (0.01 sec)
mysql> SELECT * FROM testing WHERE id IS NULL;
+----+------+
| id | name |
+----+------+
| 1 | test |
+----+------+
1 row in set (0.01 sec)
Qualcuno può dirmi cosa sta succedendo qui? È un bug o è un'ambientazione che mi manca?
Ad una ipotesi, forse lo fa perché è così che viene implementata la funzione "ultimo ID inserito"? – Hammerite
Penso che il problema sia con '$ query-> closeCursor();' – Saty
@Saty Rimuovendo closeCursor si ottiene comunque lo stesso risultato. – swordbeta