Quand tu n'as pas comprit le principe des clés primaire en AUTO_INCREMENT

28 October 2016

J’ai trouvé ceci dans le code d’un plugin Joomla.
Je ne comprenais pas pourquoi j’avais une erreur de clé primaire dupliquée. Voilà pourquoi :

$db->setQuery("SELECT MAX(  `extension_id` ) as id FROM  `#__extensions` WHERE  `type` =  \"plugin\" AND (`extension_id` > 8000 AND `extension_id` < 10000)");
$id = $db->loadResult();
if (empty($id) or $id='') $id = 9998;
$id = $id + 1;
// Enable mod_
$db->setQuery("INSERT INTO #__extensions (extension_id, name, type, element, folder, enabled, access, protected, manifest_cache, params)
VALUES (".((int)$id).", '******', 'plugin', 'cp', 'system', 1, 1, 1, '{\"name\":\"******\",\"type\":\"plugin\",\"creationDate\":\"December 2006\",\"author\":\"*******\",\"copyright\":\"**********\",\"authorEmail\":\"********\",\"authorUrl\":\"*******\",\"version\":\"3.0.0\",\"description\":\"*******_COPYRIGHT_DESCRIPTION\",\"group\":\"\"}', '{}')");
$db->query();

Visiblement, le concept de clé primaire en AUTO_INCREMENT est - j’espère plutôt “était” - inconnu du créateur de ce plugin.