Re: Test, ob Tabelle existiert
am 23.05.2005 18:43:41 von Thomas HamacherMartin Lemke schrieb:
> Mein aktueller Versucht führt leider nicht zum Ziel:
>
> $myTable='MyTable';
> $tables=array();
>
> $result=mysql_query("SHOW TABLES FROM myDatabase");
> if ($result)
> $tables[] = mysql_fetch_row($result);
Was soll das sein? Schau dir mal mit var_dump() an, was dein Array
$tables nach dieser Zuweisung enthält. Du suchst etwas wie
if($result)
while($tables[] = mysql_fetch_rows($result));
, aber ich würde nicht alle Tabellen holen und in der Anwendung
durchsuchen, sondern der Datenbank die Suche überlassen.
> // Folgende Abfrage soll prüfen, ob die Tabelle bereits existiert:
> if (!in_array($myTable,$tables))
$result = mysql_query("SHOW TABLES FROM myDatabase LIKE '$myTable'");
if($result) {
if(mysql_num_rows($result) == 0) {
// Tabelle existiert nicht
}
else {
// Tabelle existiert
}
}
oder
if($result) {
if(!mysql_fetch_row($result)) {
// Tabelle existiert nicht
}
else {
// Tabelle existiert
}
}
> Leider kommt hier immer FALSE heraus und es wird versucht, eine bereits
> existierende Tabelle anzulegen, was natürlich mit einem Fehler abbricht.
Sicher, weil du die while-Schleife vergessen hast enthält $tables immer
nur einen Datensatz.