/** * Retourne la valeur du prochain auto-incrément * @param STRING $table Le nom de la table * @return INT La valeur du prochain auto-incrément */ public static function getAIval($table = false) { if (!$table) { return false; } $pdoTmp = Listing::newPDO(); $driver = $pdoTmp->getAttribute(PDO::ATTR_DRIVER_NAME); if ($driver === 'sqlite') { $q = $pdoTmp->prepare("SELECT MAX(id) AS Auto_increment FROM {$table}"); } else { $q = $pdoTmp->prepare("SHOW TABLE STATUS LIKE '{$table}'"); } $q->execute(); $result = $q->fetch(PDO::FETCH_ASSOC); if (count($result) >= 1) { $AIval = $result['Auto_increment']; if ($driver === 'sqlite') { (int) ($AIval += 1); } return (int) $AIval; } else { return false; } }
/** * Supprime une colonne d'une table de la base de données * @param STRING $table Le nom de la table * @param STRING $colName Le nom de la colonne * @return BOOLEAN */ public static function removeCol($table = '', $colName = '') { if ($table == '' && $colName == '') { return false; } if ($colName == 'id') { return false; } $pdoTmp = Listing::newPDO(); $pdoDriver = $pdoTmp->getAttribute(PDO::ATTR_DRIVER_NAME); if ($pdoDriver === 'sqlite') { throw new Exception("Infos::removeCol() : SQLite3 limitation: you can't drop a column from a table with 'ALTER TABLE' statement."); } $sqlReq = "ALTER TABLE `{$table}` DROP `{$colName}`"; $q = $pdoTmp->prepare($sqlReq); if ($q->execute()) { return true; } else { return false; } unset($pdoTmp); }