Vous vous êtes surement déjà demandé comment faire un script php pour créer une base de données.
Moi aussi 🙂 , pour un projet pour lequel j’avais accès qu’au identifiant de connexion ^^ c’est maigre je vous l’accorde, mais c’est suffisant.
Pour commencer, il est judicieux de mettre en place des constantes.
define( 'DB_NAME', 'coming_soon' ); define( 'DB_USER', 'root' ); define( 'DB_PASSWORD', 'root' ); define( 'DB_HOST', 'localhost' ); define( 'DB_TABLE', 'emails' );
Oui, je plaide coupable 🙂 j’ai repris le principe de WordPress pour les constantes.
// connexion à Mysql sans base de données $pdo = new PDO('mysql:host='.DB_HOST, DB_USER, DB_PASSWORD); // création de la requête sql // on teste avant si elle existe ou non (par sécurité) $requete = "CREATE DATABASE IF NOT EXISTS `".DB_NAME."` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci"; // on prépare et on exécute la requête $pdo->prepare($requete)->execute();
Maintenant, la base de données a été créé.
Vous pouvez alors utiliser le même principe pour créer une table.
// connexion à la bdd $connexion = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME, DB_USER, DB_PASSWORD); // on vérifie que la connexion est bonne if($connexion){ // on créer la requête $requete = "CREATE TABLE IF NOT EXISTS `".DB_NAME."`.`".DB_TABLE."` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , `created` DATETIME NOT NULL ) ENGINE = InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;"; // on prépare et on exécute la requête $connexion->prepare($requete)->execute(); }
Ici, la table sera appelée : emails avec pour champs :
– id en clé primaire et auto increment
– email en varchar (255)
– created en datetime
Tous les champs sont configurés en UTF-8 évidemment.