Crée un un compte SQL et une BDD simplement
Ce code PHP est très pratique, il permet de créer une base de données et un compte utilisateur MySQL en quelques secondes.
La gestion est séparée, pratique si on travaille avec plusieurs personnes et qu’on ne veut pas donner l’accès total à toutes ces bases de données.
En gros: on se connecte en root, on a toute les bases de données et leur tables, si on se connecte a une base de données crée avec ce code on a accès qu’a celle si.
Attention, le compte utilisateur est le même que la base de données, si on met comme utilisateur: film, la Base de données s’appellera film.
Les lignes à modifier sont surlignées:
<?php // Pseudo: il sert a la connexion et il est aussi le nom de la base de donnée qui va être crée. On peut mettre tous les caractères autorisés dans un nom de dossier à part ‘/’, ‘\’ et ‘.’. $name = 'bdd_exemple'; // Le mot de passe qui va avec(Jamais le même pour la sécurité): $pass = 'mdp'; // ---------- ---------- ---------- // Il faut aussi définir les paramètres de connexion root: try { // La BDD on s'en fou t'en qu'on se connecte en root: $bdd = new PDO('mysql:host=127.0.0.1;dbname=base_de_donnees',$login='root',$password='mdp_root', array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\'')); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Impossible de se connecter à la base de données: '.$e->getMessage()); } // ---------- ---------- ---------- // On crée le nouveau compte MySQL: $CREATE = $bdd->query('CREATE USER "'.$name.'"@"localhost" IDENTIFIED BY "'.$pass.'";')->fetchColumn(); // On définit les privilèges: $CREATE = $bdd->query('GRANT USAGE ON * . * TO "'.$name.'"@"localhost" IDENTIFIED BY "'.$pass.'" WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;')->fetchColumn(); // On lui crée ça base de données: $CREATE = $bdd->query('CREATE DATABASE IF NOT EXISTS `'.$name.'` ;')->fetchColumn(); // ---------- ---------- ---------- // On crée une table d'exemple `votre_premiere_table`: $CREATE = $bdd->query('CREATE TABLE IF NOT EXISTS `'.$name.'`.`votre_premiere_table` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `texte` TEXT NOT NULL) ENGINE = MYISAM ;')->fetchColumn(); // On lui ajoute du texte: $CREATE = $bdd->query('INSERT INTO `'.$name.'`.`votre_premiere_table` (`id`, `texte`) VALUES (NULL , \'Ce texte provient de votre première table SQL de votre Base de Donnée(BDD) crée automatiquement.<br> Cette table a pour nom: `votre_premiere_table`. Vous pouvez crée autant de table que vous voulez très simplement en utilisant phpMyAdmin.\');')->fetchColumn(); $CREATE = $bdd->query('GRANT ALL PRIVILEGES ON `'.$name.'` . * TO "'.$name.'"@"localhost";')->fetchColumn(); ?>
Tous les codes sont testés et sont fonctionnels, si il arrive qu'un de ces codes ne fonctionne pas chez vous, merci de me le signaler.