Salut,
en fait pour que le test à l'aide d'un SELECT fonctionne, il aurait fallu tester le code d'erreur MySQL retourné. Il me semble que c'est 2 si la table n'existe pas.
Ta petite fonction est bien (déjà c'est réutilisable et tout), mais la fonction PHP est dépréciée : http://fr.php.net/manual/fr/function.mysql-list-tables.php
Ils suggèrent d'utiliser la requête :
SHOW TABLES [FROM db_name] [LIKE 'pattern']
Ce qui nous donnerait ta fonction actualisée :
function mysql_table_exists($table , $db) {
$requete = 'SHOW TABLES FROM '.$db.' LIKE \''.$table.'\'';
$exec = mysql_query($requete);
return mysql_num_rows($exec);
}
++
Edit : en fait j'ai relu plus attentivement et le SHOW TABLE est la bonne syntaxe de la solution proposé en 1. Quant au 2, il n'aurait pas renvoyé d'erreur si la table était vide, mais par contre il aurait considéré que la table n'existe pas alors que la requête aurait pu échouer pour mille autres raisons :)