MySQL Problem in Funktionen
mir
- php
tag !
hab nun lange versucht, mit folgenden funktionen eine tabelle zu erstellen...
aber irgendwie klappt da was nicht. hat glaub ich was mit vererbung o.ä. zu tun.
seht selbst:
<?
connect("freesql.org", "X", "X", "X");
$table="testtabelle";
$felder[ ]="spalte0"; $suffix[ ]="VARCHAR(30) NOT NULL";
$felder[ ]="spalte1"; $suffix[ ]="TEXT NOT NULL";
create($table,$felder, $suffix);
close($db);
?>
<?
function connect ($host, $user, $pwd, $database)
{
mysql_connect($host, $user, $pwd) or $fehler=("MySQl-Fehler: ".mysql_error());
mysql_select_db($database);
return $db;
}
function create ($table, $felder, $suffix)
{
$anweisung="CREATE TABLE $table (\n";
$anzahl_felder=0;
foreach($felder as $i => $feld)
{
if($anzahl_felder!=0){$anweisung.=", \n";}
$anweisung.=" '".$feld."' ".$suffix[$i];
$anzahl_felder++;
}
$anweisung.="\n);";
echo("<pre> $anweisung </pre>");
$res=mysql_query($anweisung) or $fehler=("MySQL-Fehler: ".mysql_error());
}
function close ( )
{
mysql_close or $fehler=("MySQl-Fehler: ".mysql_error());
}
echo($fehler);
?>
tag !
?? unpräzise Anfrage ...
Heute? 06. Dezember 2003
hab nun lange versucht, mit folgenden funktionen eine tabelle zu erstellen...
aber irgendwie klappt da was nicht. hat glaub ich was mit vererbung o.ä. zu tun.
seht selbst:<?
connect("freesql.org", "X", "X", "X");
$table="testtabelle";
$felder[ ]="spalte0"; $suffix[ ]="VARCHAR(30) NOT NULL";
^ ^
Hier dürfen mit Sicherheit keine Leerzeichen stehen.
echo("<pre> $anweisung </pre>");
Was wird hier ausgegeben?
echo($fehler);
Was wird hier ausgegeben?
viele Grüße
Axel
Hallo,
$felder[ ]="spalte0"; $suffix[ ]="VARCHAR(30) NOT NULL";
das zwischen die eckigen Klammern keine Leerzeichen gehören, hat dir Axel ja schon gesagt.
mysql_connect($host, $user, $pwd)
du verbindest zwar mit der Datenbank, kannst aber nichts mit der Verbindung anfangen, da du die Kennung nicht speicherst.
or $fehler=("MySQl-Fehler: ".mysql_error());
das bringt dir überhaupt nichts, da $fehler nur innerhalb der Funktion bekannt ist, und nach Ende der Funktion nicht mehr zur Verfügung steht. Lass '$fehler =' weg und schreib stattdessen 'die' hin. (Die Klammern um das was in die Variabel soll sind afaik sogar falsch)
return $db;
wo kommt $db her?
mysql_close or $fehler=("MySQl-Fehler: ".mysql_error());
mysql_close ist eine Funktion - also noch einen Satz Klammern dahinter.
Grüße aus Nürnberg
Tobias