Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/12/2011, 13h26   #1
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 2
Points : 2
Par défaut Itération sur INFORMATION_SCHEMA.TABLES

Bonjour,

Je voudrais créer une fonction php m'indiquant si une table particulière est présente dans une base de données. J'ai utilisé:

Code :
1
2
$rs = "select * from information_schema.tables
where table_schema = 'maBdd'";
En utilisant l'interface SQL de MySql, j'obtiens biens la liste de mes tables avec l'ID 'TABLE_BASE'. Mais pour vérifier si un nom de table passé en paramètre est bien présent dans cette liste, je dois itérer sur le résultat de cette requête pour me retourner true ou false selon que cette table soit présente ou non.
Je ne trouve aucun code qui ne me revoie pas d'erreur php / sql

Merci par avance pour votre aide.
badoumba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 13h40   #2
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,

http://www.developpez.net/forums/d12...s-tables-base/
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 17h37   #3
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 2
Points : 2
ça devrait faire mon affaire

merci
badoumba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2011, 21h50   #4
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 2
Points : 2
Voici mon code php correspondant:

Code :
1
2
3
4
5
6
7
8
9
10
public function table_exists($table){
		mysql_select_db($this->db);
		$tables = mysql_query("select TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA= 'masterlog'");
		while ($row = mysql_fetch_array($tables)){
			if($row[0]=$table){
				return true;
			}
			return false;
		}
	}
Cependant, php me retourne void, alors que la requète SQL entrée dans PhpMyAdmin me retourne bien des enregistrements, dont celui fourni en paramêtre $table (un string) lors du test de cette fonction. J'ai noté aussi que si je remplace la requète par 'show tables', j'obtiens une erreur sur mysql_fetch_array: php considère $tables comme un Boolean, et ce n'est pas ce qu'il attend ici.

Si qqun a une petite idée pour me faire avancer. Merci bokou
badoumba est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h28.


 
 
 
 
Partenaires

Hébergement Web