Start · Sprachen · PHP · Referenz · mysql_create_db

mysql_create_db

Funktion

Legt eine neue MySQL-Datenbank auf dem Server an (veraltet, wurde in PHP 5.5.0 als deprecated markiert und in PHP 7.0.0 entfernt).

seit PHP 4.0.0 Kategorie: db

Signatur

mysql_create_db(string $database_name, resource $link_identifier = NULL): bool

Beschreibung

mysql_create_db() sendet einen CREATE DATABASE-Befehl an den MySQL-Server und legt damit eine neue Datenbank an. Die Funktion gehört zur alten mysql_*-Erweiterung, die ab PHP 5.5.0 als veraltet (deprecated) gilt und ab PHP 7.0.0 vollständig aus PHP entfernt wurde.

Als Alternative sollte stattdessen mysqli_query() oder PDO::query() mit einem expliziten CREATE DATABASE-SQL-Statement verwendet werden. Diese modernen Schnittstellen bieten prepared statements, objektorientierte APIs und aktive Pflege durch das PHP-Projekt.

Die Funktion benötigt eine aktive MySQL-Verbindung, die mit mysql_connect() oder mysql_pconnect() geöffnet wurde. Wird kein $link_identifier angegeben, wird die zuletzt geöffnete Verbindung verwendet. Der Datenbankbenutzer muss das CREATE-Recht auf dem Server besitzen.

Parameter

Name Typ Default Beschreibung
$database_name Pflicht string Der Name der neu anzulegenden Datenbank.
$link_identifier resource NULL Die MySQL-Verbindungsressource, die mit mysql_connect() geöffnet wurde. Wird dieser Parameter weggelassen, wird die zuletzt geöffnete Verbindung verwendet.

Rückgabewert

Typ
bool
Beschreibung
Gibt true zurück, wenn die Datenbank erfolgreich angelegt wurde, andernfalls false.

Beispiele

Datenbank mit mysql_create_db anlegen (veraltet)

<?php
// Verbindung zum MySQL-Server herstellen
$link = mysql_connect('localhost', 'root', 'geheimes_passwort');
if (!$link) {
    die('Verbindung fehlgeschlagen: ' . mysql_error());
}

// Datenbank anlegen
$dbName = 'meine_neue_datenbank';
if (mysql_create_db($dbName, $link)) {
    echo "Datenbank '{$dbName}' wurde erfolgreich angelegt.";
} else {
    echo 'Fehler beim Anlegen: ' . mysql_error();
}

mysql_close($link);
?>
Datenbank 'meine_neue_datenbank' wurde erfolgreich angelegt.

Moderne Alternative mit MySQLi

<?php
// Empfohlene Alternative mit mysqli
$mysqli = new mysqli('localhost', 'root', 'geheimes_passwort');

if ($mysqli->connect_error) {
    die('Verbindungsfehler: ' . $mysqli->connect_error);
}

$dbName = 'meine_neue_datenbank';
$sql = "CREATE DATABASE `" . $mysqli->real_escape_string($dbName) . "`";

if ($mysqli->query($sql)) {
    echo "Datenbank '{$dbName}' wurde erfolgreich angelegt.";
} else {
    echo 'Fehler beim Anlegen: ' . $mysqli->error;
}

$mysqli->close();
?>
Datenbank 'meine_neue_datenbank' wurde erfolgreich angelegt.

// Wichtig · Fallstricke

Veraltet und entfernt: mysql_create_db() wurde in PHP 5.5.0 als deprecated markiert und in PHP 7.0.0 vollständig entfernt. Jeglicher Code, der diese Funktion verwendet, ist nicht mehr lauffähig unter PHP 7 oder höher.

Sicherheit: Der Datenbankname sollte niemals ungeprüft aus Benutzereingaben übernommen werden, da mysql_create_db() keinen Schutz gegen SQL-Injection bietet. Bei der modernen Alternative mit mysqli sollte real_escape_string() oder eine Whitelist-Prüfung des Datenbanknamens eingesetzt werden.

Berechtigungen: Der verwendete MySQL-Benutzer benötigt das CREATE-Privileg auf Serverebene, um Datenbanken anlegen zu dürfen.