IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Itération sur INFORMATION_SCHEMA.TABLES


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 50
    Points : 28
    Points
    28
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 660
    Points : 331
    Points
    331

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    ça devrait faire mon affaire

    merci

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 50
    Points : 28
    Points
    28
    Par défaut
    Voici mon code php correspondant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Jointure sur 2 tables de bases différentes
    Par Celina dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/11/2003, 11h56
  2. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  3. 2 Count() sur deux tables en jointures gauches
    Par Alexandre T dans le forum Langage SQL
    Réponses: 2
    Dernier message: 03/09/2003, 16h53
  4. [MS-SQL]requete sur 3 tables
    Par pascalT dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/04/2003, 11h24
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo