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 :

Juste un problème de connexion Mysqli et php [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Par défaut Juste un problème de connexion Mysqli et php
    Bonjour, en partant de cette programmation php qui fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if($bdd = mysqli_connect('mfai', 'mlog', 'mdp', 'ma_DB'))
    {
        //echo 'Connexion réussie';
    } 
    else 
    {
        echo 'Erreur';
    } 
     
    $req_pre = mysqli_query($bdd, 'SELECT * FROM matable');
    $nb= mysqli_num_rows($req_pre);
    ...
    je voudrais externaliser la connexion dans un php:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if($bdd = mysqli_connect('mfai', 'mlog', 'mdp', 'ma_DB'))
    {
        //echo 'Connexion réussie';
    } 
    else 
    {
        echo 'Erreur';
    }
    et remplacer dans ma feuille par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    include('Connexion.php');
    $req_pre = mysqli_query($bdd, 'SELECT * FROM matable');
    $nb= mysqli_num_rows($req_pre);
    Beh là, ça ne marche plus!
    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in C:\wamp\www\commande_connex.php
    Est-ce qu'il ne trouve pas $bdd ?

    Merci de vos réponses éclairées et éclairantes.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Si il ne trouvait pas la connexion, tu aurais une erreur sur l'exécution de la requête, donc sur la fonction mysqli_query. Là tu as une erreur sur mysqli_num_rows, donc au niveau de l'exploitation du résultat de la requête.

    Ce qui veut dire que la connexion se fait bien, l'exécution de ta requête se lance bien, mais la requête plante. Le problème est donc sur la requête et non sur la connexion.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Par défaut Merci, mais...
    Bonjour, content que tu te penches encore sur un de mes problèmes. Ta réponse n'apporte pas la solution puisque ça fonctionne quand je suis connecté en direct dans la même feuille, c'est exactement la même fonction mais le $bdd n'a pas l'air d'être reconnu.

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Ben si tu dis vrai alors, c'est que ton fichier inclus ne s'appelle pas exactement "Connexion.php" ou qu'il n'est pas situé au même niveau que ton fichier d'appel.
    A part ça, je suis pas trop fan des include qui initialise et affecte des variables à l'arrache... Je trouve que ça rend le code très confus.
    Un $bdd qui semble sorti de nulle part, ça n'est pas une très bonne pratique.
    Je ferais plutôt ça, non testé : une fonction qui retourne une valeur, en l'occurrence, soit une connexion mysqli, soit FALSE.
    Fichier Connexion.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function connect_to_mysqli(){}
    	return(mysqli_connect('mfai', 'mlog', 'mdp', 'ma_DB'));
    }
    Fichier d'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    include('Connexion.php');
    $db=connect_to_mysqli();
    if($db!==false){
    	//tu l'utilises
     
     
     
    	mysqli_close($db);
    }
    Dans le fichier d'appel, on voit à quel moment on ouvre, on utilise, on ferme... bref, on sait ce qu'on fait et quand on le fait.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Par défaut Belle approche, mais...
    C'est vrai que ça semble plus logique, mais j'obtiens le message d'erreur:

    syntax error, unexpected '$db' (T_VARIABLE)
    J'ai fait du copier-coller, je suis sous CodeLobster, et les 2 fichiers sont bien dans le même dossier (wamp\www).

    Merci de vous pencher sur mon cas.

  6. #6
    Membre éclairé
    Inscrit en
    Novembre 2006
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 257
    Par défaut Voilà, je n'ai plus cette erreur, mais...
    Il manquait un";" après
    include('Connexion.php')
    donc
    include('Connexion.php');
    Mais je ne me connecte pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    include('Connexion.php');
    $bdd=connect_to_mysqli();
    if($bdd!==false){
    echo "bd pas trouvée!";
     	mysqli_close($bdd);
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème de connexion sybase sqlanywhere-php
    Par kamdoum dans le forum SQL Anywhere
    Réponses: 0
    Dernier message: 17/09/2013, 23h58
  2. [ODBC] [DB2] Problème de connexion à une base de données sur un as400 via PHP sous Linux
    Par boo64 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 19/04/2006, 09h51
  3. [LDAP] problème connexion anonyme avec php à Active Directory
    Par anto48_4 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 02/03/2006, 16h50
  4. [ postgresql - php ] problèmes de connexion a une base
    Par diableblanc dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 12/07/2005, 19h27

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