PHP/MySQL | überprüfen ob Tabelle existiert

Experience1986

Erfahrenes Mitglied
Hi,

Wie kann ch mit PHP prüfen, ob eine MySQL Tabelle einer Datenbank besteht?

Also so nach dem modell:

if (tabbeleisda)
{ echo "Tabelle ist da"; }
else { echo "nicht da :("; }


Wie kann man sowas machen, ich hatte schon in der mysql Documentation geschaut, aber da fand ich nur was mit create table if not exist...

Das soll aber nicht abwärts kompatibel zu alten mysql DB's sein. Und Zudem weis ich nicht, wie ich daraus einen Wert bekommen kann, was denn nun geschehen ist (OK/Fehlgeschlagen).

Vielen Dank schonmal im voraus.
 
Was mir jetzt so auf die schnelle einfällt wäre, dass du einfach eine mysql-Abfrage startest und überprüfst ob diese richtig durchgeführt wurde:
PHP:
<?php
// Verbindung zur mysql_Datenbank
$result = mysql_query("SELECT * FROM tabelle");
if($result)
{
   echo "Tabelle existiert.";
}
else
{
   echo "Tabelle existiert nicht.";
}

So ungefähr.

EDIT:
Gerade ist mir ne zweite Möglichkeit eingefallen:
Man kann sich mit mysql_list_tables die Namen der Tabellen die in einer Datenbank enthalten sind ausgeben lassen. Jetzt musst du nur noch vergleichen ob da deine Tabelle dabei ist.
 
Zuletzt bearbeitet:
Noch eine Möglichkeit:
PHP:
$result = mysql_query("SHOW TABLES LIKE 'tabelle'");
if (mysql_num_rows($result) > 0) {
  echo "Tabelle ist da.";
} else {
  echo "Tabelle ist nicht da.";
}
 
Danke für alle Antworten, das letzte hat funktioniert, das andere habe ich nicht getestet, zudem kann es da doch auch zu einem fehler kommen, wenn die tabelle da ist, aber keine felder drin hat, oder?
 
Ist zwar ein altes Thema, aber die ifexist Funktion kenn ich gar nicht.
Ist die nicht dokumentiert?
 
Weiß jemand warum PHP die Tabelle nicht erstellt?

PHP:
include("data.php");

$sql1="CREATE TABLE IF NOT EXISTS `SV_LINKVERWALTUNG`
     (`id` int(255) NOT NULL auto_increment,
      `linkname` varchar(50) NOT NULL,
      `url` text NOT NULL,
      PRIMARY KEY  (`id`))
      ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=23";

$db_connection=db_connect();
$result = mysql_query($sql1);
db_disconnect($db_connection);
in der data.php sind die Zugangsdaten zur DB und dort wird auch über die Funktion db_connect() zur DB verbunden...


MFG
Papenburger
 
Zurück