J'ai une table dans laquelle de nouvelles données sont fréquemment insérées. J'ai besoin d'obtenir le tout dernier ID de la table. Comment faire ?
Est-ce similaire à SELECT MAX(id) FROM table
?
Si vous utilisez PDO, utilisez [PDO::lastInsertId
][1].
Si vous utilisez Mysqli, utilisez [mysqli::$insert_id
][2].
Si vous utilisez toujours Mysql :
*S'il vous plaît, n'utilisez pas les fonctions `mysql_` dans un nouveau code**. Elles ne sont plus maintenues [et sont officiellement dépréciées] (https://wiki.php.net/rfc/mysql_deprecation). Vous voyez la [boîte rouge] (http://uk.php.net/manual/en/function.mysql-connect.php) ? Découvrez les prepared statements à la place, et utilisez PDO ou MySQLi - cet article vous aidera à choisir. Si vous choisissez PDO, voici un bon tutoriel.
Mais si vous devez le faire, utilisez [mysql_insert_id
][3].
[1] : http://php.net/manual/en/pdo.lastinsertid.php [2] : http://php.net/manual/en/mysqli.insert-id.php [3] : http://php.net/manual/en/function.mysql-insert-id.php
Ce que vous avez écrit vous permettrait d'obtenir le plus grand id
, en supposant qu'il soit unique et auto-incrémenté, ce qui serait parfait si vous êtes d'accord avec les problèmes de concurrence.
Puisque vous utilisez MySQL comme base de données, il existe une fonction spécifique [LAST_INSERT_ID()
][1] qui ne fonctionne que sur la connexion actuelle qui a effectué l'insertion.
PHP propose également une fonction spécifique pour cela, appelée [mysql_insert_id
][2].
[1] : http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html [2] : http://php.net/manual/en/function.mysql-insert-id.php