示例#1
0
 /**
  * Ajoute une colonne dans une table de la base de données
  * @param STRING $table Le nom de la table
  * @param STRING $row Le nom de la nouvelle colonne
  * @param STRING $typeRow Le type de colonne à créer (default "VARCHAR(64)"
  * @param STRING $defaultVal La valeur par défaut pour la colonne (optionnel, et inutile pour le type "TEXT")
  * @return BOOLEAN TRUE si succès, FALSE si erreur.
  */
 public static function addNewCol($table = '', $row = '', $typeRow = 'VARCHAR(64)', $defaultVal = "")
 {
     if ($table == '') {
         throw new Exception("Infos::addNewCol() : Il manque le nom de la table");
     }
     if ($row == '') {
         throw new Exception("Infos::addNewCol() : Il manque le nom de la colonne");
     }
     if (Infos::colExiste($table, $row)) {
         throw new Exception("Infos::addNewCol() : Cette colonne existe déjà");
     }
     $extraReq = "";
     if (preg_match('/CHAR|TEXT/i', $typeRow)) {
         $extraReq = "CHARACTER SET utf8 COLLATE utf8_general_ci ";
     }
     $extraReq .= "NOT NULL";
     if (!preg_match('/TEXT/i', $typeRow)) {
         $extraReq .= " DEFAULT '{$defaultVal}'";
     }
     $pdoTmp = new PDO(DSN, USER, PASS, array(PDO::ATTR_PERSISTENT => false));
     $pdoTmp->query("SET NAMES 'utf8'");
     $pdoTmp->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $sqlAlter = "ALTER TABLE `{$table}` ADD `{$row}` {$typeRow} {$extraReq}";
     $a = $pdoTmp->prepare($sqlAlter);
     return $a->execute();
 }