Signatur
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
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);
?>
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();
?>
// 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.