[php+mysql] Jak sprawdzić czy tabela istnieje w bazie?

0

Jak prawdzić czy tabela istnieje w bazie danych mysql?

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".

1 użytkowników online, w tym zalogowanych: 0, gości: 1