Jak prawdzić czy tabela istnieje w bazie danych mysql?
0
0
Przejrzałem manual do SQLa i nie znalazłem żadnej specjalnej funkcji do sprawdzania czy dana tabela istnieje w bazie. Zatem pozostaje posiłkować się tylko instrukcją SELECT.
Proponuję taki oto kod:
<?php
function is_table_exist($query){
$q = "SELECT * FROM $query;";
$i=mysql_query($q);
if( (integer)$i ) //rzutowanie na integer
return 1; //tabela $query istnieje w bazie
else
return 0; //tabela $query nie istnieje w bazie
}
mysql_connect("server","login","haslo");
mysql_select_db("bazadanych");
$tab1 = "tabela1"; // tabela 'tabela1' istnieje w bazie
$tab2 = "tabela2"; //tabela 'tabela2' nie istnieje w bazie
$r1 = is_table_exist($tab1);
$r2 = is_table_exist($tab2);
if($r1)
echo "Tabela $tab1 istnieje w bazie";
if($r2)
echo "Tabela $tab2 nie istnieje w bazie";
?>
Mam nadzieję, że ten prosty kod wyjaśnił jak można rozwiązać ten problem.
Jestem otwarty na inne pomysły.
0
:|
function is_table_exist($table){
return mysql_num_rows(mysql_query(
'SHOW TABLES LIKE ' . $table
)) > 0;
}
przykład taki jak powyżej może być
z tym że jeśli chcesz sprawdzić kilka tabel to proponuję użycie zapytania "SHOW TABLES" i sprawdzenia wyniku (ja tak miałem)
jest funkcja realizująca to samo zapytanie mysql_list_tables ale jest zdaje się "przestarzała".