PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : mysql_create_db(): undefined function



peeta
18-02-2005, 14:56
hallo
ich mach grad n tutorial zu php und mysql. nun kommt aber eine für mich unverständlich fehler meldung.
hier ist der quellcode zu der php-datei test2.php:

<?
function connect($host, $user, $passwd) { //verbindung mit mysql
if (! $linkid=mysql_connect("$host","$user","$passwd")){
echo "Verbindung zu $host gescheitert! <br>";
exit;
}else{ echo "Verbindung steht!<br>";
}
return $linkid;
}

function createdb($db, $lkid) { //db erstellen
if (! $res = mysql_create_db ($db, $lkid) ) {
echo "Da war ein \"Fehler\" am Werk!<br>" , mysql_error($lkid);
exit;
}
return $res;
}

$lk=connect("localhost","root","*****"); //hab bei ***** auch ein wirkliches passwort
$db="testdb";
if ($succ=createdb($db,$lk)) {echo "Yo!";}
?>

Ausgabe:

Verbindung steht!

Fatal error: Call to undefined function: mysql_create_db() in test2.php on line 13

kann mir bitte jemand sagen warum php die funktion nicht kennt.
danke für hilfe, peeta

nul
18-02-2005, 16:32
hallo
ich mach grad n tutorial zu php und mysql. nun kommt aber eine für mich unverständlich fehler meldung.
hier ist der quellcode zu der php-datei test2.php:

<?
function connect($host, $user, $passwd) { //verbindung mit mysql
if (! $linkid=mysql_connect("$host","$user","$passwd")){
echo "Verbindung zu $host gescheitert! <br>";
exit;
}else{ echo "Verbindung steht!<br>";
}
return $linkid;
}

function createdb($db, $lkid) { //db erstellen
if (! $res = mysql_create_db ($db, $lkid) ) {
echo "Da war ein \"Fehler\" am Werk!<br>" , mysql_error($lkid);
exit;
}
return $res;
}

$lk=connect("localhost","root","*****"); //hab bei ***** auch ein wirkliches passwort
$db="testdb";
if ($succ=createdb($db,$lk)) {echo "Yo!";}
?>

Ausgabe:

Verbindung steht!

Fatal error: Call to undefined function: mysql_create_db() in test2.php on line 13

kann mir bitte jemand sagen warum php die funktion nicht kennt.
danke für hilfe, peeta
echo "Da war ein \"Fehler\" am Werk!<br>" . mysql_error($lkid);
statt
echo "Da war ein \"Fehler\" am Werk!<br>" , mysql_error($lkid);
aber das wirds wohl nicht sein..
zumindest erhalte ich dann aber eine korreckte Verbindung.

peeta
18-02-2005, 17:31
noch ne frage: (erste noch nicht gelöst)

bei selfphp schreiben sie oft ein @-zeichen vor den mysql-funktion wie zum beispiel:

$db_select = @MYSQL_SELECT_DB($db_name);
wo ist da der unterschied zu:

$db_select = MYSQL_SELECT_DB($db_name);
peeta

Joghurt
18-02-2005, 20:24
Warnung

Diese Funktion steht nicht zur Verfügung, wenn das MySQL Modul gegen eine MySQL 4.x Client-Bibliothek gelinkt wurde.Statt dessen solltest du, wie dort angegeben, mysql_query("CREATE DATABASE $db", $lkid) nutzen.

nEox
19-02-2005, 16:59
hi peeta,

das "@" vor der Funktion bedeutet nur das keine Fehlermeldung ausgegeben wird, wenn ein Fehler austritt.

Ist z.B. bei der Mailfunktion auf einem lokalen Testsystem ganz nützlich wenn man nicht immer von Fehlermeldungen überhäuft werden will.

Bei der Verwendung davon muss aber aufpassen das man den Fehler per if-Abfrage abfängt. Also:



if(@mail(...) ){
echo "geht";
}
else {
echo "geht nicht";
}


.... sonst findet man den Fehler nie.... ;)

Gruß nEox

peeta
20-02-2005, 19:34
danke leute!
beide antworten haben mir sehr geholfen.
ich kann dieses Forum nur unterstützen! :D

peeta