Vinzenz Mai: mysql_create_db()

Beitrag lesen

Hallo Florian,

Kannst Du nicht endlich konstruktiv mitarbeiten?
Ich versuche es, hab nur manchmal kleine verständnissprobleme weil ich das Wort DATENBANKEN nur gehört habe und das ist ja wohl menschlich oder net??

  

> <?php  
> $benutzer = "root";  
> $passwort = "";  
> $dbname = "testdatenbank";  
>   
> if($link = mysql_connect("localhost", "root", "")) {echo "ja";} else {echo "nein";}  
  
// Wozu weist Du zuerst die Verbindungsdaten Variablen zu,  
// wenn Du die Variablen doch nicht nutzt.  
  
// Ich nehme an, hier wird "ja" ausgegeben :-)  
  

> if  
>  (mysql_query($dbname, $link)) {echo "GEHT";}  
> else {echo "geht net";}  

Florian, ich habe Dir nicht umsonst die Syntax von mysql_query() verlinkt und zusätzlich sogar noch gepostet:

<zitat>
resource mysql_query ( string Anfrage [, resource Verbindungs-Kennung] )
</zitat>

Das erste Argument ist, wie ich bereits schrieb, eine SQL-Anweisung. D.h. Du kannst nicht einfach einen Datenbanknamen übergeben - und erwarten, dass MySQL schon weiß, was es damit zu tun hat.

Machen wir es zum Anfang ganz hübsch einfach, statisch und unflexibel:
Wie ich Dir bereits schrieb, lautet die SQL-Anweisung zum Anlegen einer Datenbank, die den Namen "testdatenbank" tragen soll:

CREATE DATABASE testdatenbank

Somit ergibt sich für Dein PHP-Skript:

  
<?php  
$host     = "localhost";  
$benutzer = "root";  
$passwort = "";             // Kein Passwort, nur ok zum lokalen Testen  
$dbname   = "testdatenbank";  
  
if ($link = [link:http://www.php.net/manual/de/function.mysql-connect.php@title=mysql_connect]($host, $benutzer, $passwort)) {  
    echo "Verbindung erfolgreich hergestellt<br>\n";  
}  
else {  
    // weitere Skriptabarbeitung erübrigt sich  
    [link:http://www.php.net/manual/de/function.die.php@title=die]("Konnte keine Verbindung zum DB-Server herstellen");  
    // ok, ein Skript "sterben" zu lassen, ist keine gute Fehlerbehandlung.  
}  
  
// Weise das SQL-Statement einer PHP-Variablen zu  
$query = "CREATE DATABASE " . $dbname;  
  
  
// der zweite Parameter von mysql_query() ist optional, ich lasse ihn  
// einfach weg. Näheres im Handbuch.  
if ([link:http://www.php.net/manual/de/function.mysql-query.php@title=mysql_query]($query) {  
    // Erfolgsmeldung  
    echo "Datenbank $dbname erfolgreich angelegt<br>\n";  
}  
else {  
    // andernfalls eine einigermaßen sinnvolle Fehlermeldung:  
    $ausgabe = "Fehler aufgetreten<br>\n"  
        // ergänzt um das SQL-Statement  
        . "SQL-Anweisung: " . $query . "<br>\n"  
        // und die Fehlermeldung von MySQL  
        . "MySQL-Fehlermeldung: " . [link:http://www.php.net/manual/de/function.mysql-error.php.php@title=mysql_error()];  
}  
?>  

Freundliche Grüße

Vinzenz