rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Tester l'existence d'une table

Posté par schlim, le jeudi 8 avril 2004 à 09:52:30
Bonjour,

Est ce que qqn pourrais me dire la fonction qui permet de tester si une table MySql existe... merci d'avance


schlim
Répondre à schlim  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
ludvo, le jeudi 8 avril 2004 à 10:06:11
Hello

Je ne sais pas s'il y a un fonction qui fait ca mais tu peux faire une requete toute bete (je ne sais pas si ca peut marcher sous MySql) :

select count(table_name) from user_tables;
where table_name ="nom de ta table";
group by table_name;


Si ca te renvoie 0, elle n'existe pas sinon elle existe

vala :)
----------
A computer lets you make more mistakes faster than any inven­
Répondre à ludvo

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
flokocha, le jeudi 8 avril 2004 à 10:15:55
Ou bien tu peux essayer
mysql_query("SELECT * FROM tatable") or die ("La table n'existe pas")

Ca devrait fonctionner ça non?
Répondre à flokocha

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
schlim, le jeudi 8 avril 2004 à 12:56:08
ouaip... je vais essayer... en tous cas je vous remercie
Répondre à schlim

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Evan, le lundi 26 février 2007 à 11:51:25
Les réponses ci-dessus ne sont pas bonnes, car elles considèrent qu'une table n'existe pas quand elle est vide...

La bonne solution :

function mysql_table_exists($table , $db) {
$tables=mysql_list_tables($db);
while (list($temp)=mysql_fetch_array($tables)) { if($temp == $table) { return 1; } }
return 0;
}
Répondre à Evan

5


  • 4
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
ouckileou, le dimanche 29 juillet 2007 à 03:39:27
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 :)
Répondre à ouckileou

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Elengal, le dimanche 6 avril 2008 à 12:27:22
Bonjour,

je découvre cette solution à ce problème qui m'intéresse.

Et j'aurais voulu savoir (car je débute aussi)
s'il possible d'écrire ceci?
function mysql_table_exists($table , $db) {
$tables=mysql_list_tables($db);
while (list($temp)=mysql_fetch_array($tables)) { if($temp == $table) { return 1; } }
mysql_query("CREATE TABLE ".$table." (id INT PRIMARY KEY (id))");
}


Merci à bientôt
Répondre à Elengal

6


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
jipegz, le samedi 4 août 2007 à 19:55:14
flokocha, je te remercie, tu viens de me sortir d'une journée de recherche presque complète. :)
Répondre à jipegz
Logiciels pertinents trouvés dans les téléchargements
Télécharger DSL Test 2.0.0.6DSL Test - DSLtest est constitué d'un logiciel à télécharger gratuitement et de serveurs de test. Ces équipements vous permettent...Catégorie: ADSL
Licence: Freeware/gratuit
Télécharger Tables multimédia  1,0Tables multimédia - En général les enfants ont tendance à ne pas vouloir étudier et les parents perdent parfois patience à leur apprendre. Peut...Catégorie: Bureautique
Licence: Freeware/gratuit
Télécharger Tablane Browser  1.8.1Tablane Browser - Voulez vous trouver, capturer, créer, signer et partager un contenu d'une manière rapide, efficace et sûre ? Voulez vous...Catégorie: Navigateurs
Licence: Freeware/gratuit
Télécharger OpenOffice.org 2.4.1OpenOffice.org - OpenOffice est une suite bureautique complète entièrement gratuite, compatible avec la suite Microsoft Office. Elle...Catégorie: Suite bureautique
Licence: Open Source
Plus de logiciels gratuits sur « tester l'existence d'une table »