PHP – Come verificare se una tabella in MySQL esiste

Può capitare di dover assicurarsi della reale esistenza di una tabella in mysql.
Ecco una semplice funzione che può fare al caso nostro:

function table_exists($table, $db) { 
	$tables = mysql_list_tables ($db); 
	while (list ($temp) = mysql_fetch_array ($tables)) {
		if ($temp == $table) {
			return TRUE;
		}
	}
	return FALSE;
}

/** Come va usata **/
if (table_exists(test_table, my_database)) {
	echo "Ok, la tabella è qui!";
}

Un altro esempio meno laborioso:

if( mysql_num_rows( mysql_query("SHOW TABLES LIKE '".$table."'"))){
	echo "La tabella esiste!";
}

Update 11-05-2015 : Come mi fanno notare questa funzione è stata deprecata dalla versione di PHP 4.3.0 e successivamente rimossa nella 4.3.7.

POSSIBILE ALTERNATIVA:

function table_exists($table, $db){
	//do per scontato che siamo già connessi al db

	$query = "SHOW TABLES FROM ."$db;
	$risultato = mysql_query($query);

	if (!$risultato) {
		echo "Impossibile listare le tabelle\n";
		return fasle;
	}

	while ($row = mysql_fetch_row($risultato)) {
		if($row[0] == $table){
			mysql_free_result($result);
			return true;
		}
	}
	mysql_free_result($result);
	return false;	
}

Causa problemi di tempo non ho potuto testare la nuova versione della funzione, fatemi sapere se va 😉

Potrebbero interessarti anche...