Datenbank erstellen mit PHP Befehl?

Registrierer

Erfahrenes Mitglied
Um ein Installationsscript für ein Projekt zu schreiben, möchte ich per PHP Script eine Datenbank erstellen.
Wie stellt man das an ohne phpMyAdmin o. ä. bemühen zu müssen??

"CREATE DATABASE meineDatenbank" tut dieses, aber wie verpacke ich das mit PDO ?

EDIT:
So geht's:

PHP:
<?php
error_reporting(E_ALL ^ E_NOTICE);
try {
  // DB Verbindung als Root aufbauen
  $dbh  = new PDO('mysql:host=localhost','root','passwort', array (PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
  $dbh -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  // Datenbank, Benutzer anlegen und mit Rechten versehen
  $dbh->query("SET SQL_MODE=NO_AUTO_VALUE_ON_ZERO");
  $dbh->query("CREATE DATABASE IF NOT EXISTS DB_TEST DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci");
  $dbh->query("USE DB_TEST");
  $dbh->query("CREATE USER TESTUSER@localhost IDENTIFIED BY 'passwort'");
  $dbh->query("GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON *.* TO TESTUSER@localhost WITH GRANT OPTION");
}
catch (PDOException $e) {
  print "Fehler!: " . $e->getMessage() . "<br/>";
  die();
}
?>
 
Zuletzt bearbeitet:
Du kannst doch einfach den Parameter dbname weglassen und so nur eine Verbindung zum Server aufbauen:
PHP:
$pdo = new PDO( "mysql:host=example.org", "username", "password" );
$database = "meine_datenbank";
$pdo->query( "CREATE DATABASE `" . $database . "`" );
 
Zurück