Mysql Tabelle auf existenz prüfen!

methodus

Erfahrenes Mitglied
Ich habe dieses kleine Script genommen um zu prüfen ob eine Tabelle in mysql bereits existiert oder nicht, falls nicht macht er dann ne neue tabelle

PHP:
$query = "SELECT * FROM xyz";
mysql_query($query);
if(mysql_errno() == 1146){
  hier kommt dann irgendwas hin
}

Error 1146 ist der Fehler für "Table 'xyz' doesn't exist"

nun meine Frage: geht das auch kürzer oder ist das die einzigste möglichkeit?
 
Code:
SELECT * FROM (SHOW TABLES) WHERE table = 'xyz';

wenn die tabelle vorhanden ist, kriegst du genau einen datensatz zurück. wenn nicht, gar keinen.
ohne gewähr... :rolleyes:
 
:)

Ich hab noch ne andere Idee, auch die ohne gewähr :)

PHP:
<?php
$dbs = array();
$conid = mysql_connect("localhost","root",******);
while ($db = mysql_list_dbs($conid))
{
   $dbs[] = $db;
}
if (in_array("xyz",$dbs) print("xyz ist drin :)");
?>

Müsste so funktionieren :) versuchs einfach mal :)
 
mahlzeit,

warum macht ihr es euch so umständlich ?

PHP:
$sql= "CREATE TABLE IF NOT EXISTS Tabellenname";

oder

$sql = "DROP TABLE IF EXISTS Tabellenname";


Gruß

Texaner
 
Danke, genau sowas habe ich gesucht :D

is eben mist wenn man sich nur PHP-bücher kauft und mysql außen vor lässt *g*

mal schaun obs geht
 
Original geschrieben von Texaner
mahlzeit,

warum macht ihr es euch so umständlich ?

PHP:
$sql= "CREATE TABLE IF NOT EXISTS Tabellenname";

oder

$sql = "DROP TABLE IF EXISTS Tabellenname";



Gruß

Texaner

Aber dann gibt es doch nur die Tabelle:

ich brauch aber:


CREATE TABLE 210702 (
id int(11) NOT NULL auto_increment,
userid char(8) NOT NULL default '',
daymailid char(8) NOT NULL default '',
pluspoints decimal(5,0) NOT NULL default '0',
mepluscent decimal(4,2) NOT NULL default '0.00',
anid char(8) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
 
CREATE TABLE IF NOT EXISTS 210702 (
id int(11) NOT NULL auto_increment,
userid char(8) NOT NULL default '',
daymailid char(8) NOT NULL default '',
pluspoints decimal(5,0) NOT NULL default '0',
mepluscent decimal(4,2) NOT NULL default '0.00',
anid char(8) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
 
zu spät

aber egal
trotzdem thx

aber währe es nicht besser, wenn es so anfangen würde (zu beitrag, etwas weiter oben):
$sql=mysql_query("....");

bye
 
Zurück