Créer une base de données en php avec PDO

5 mai 2013 nakama

Développement

(Cet article a été écrit il y a très longtemps, dans une galaxie très très lointaine)

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.

Mots-clés associés à cet article :

Retrouvez d'autres articles par catégories