{MySQL} connection a la base a travers php

Résolu
Bonjour,
j'ai crée une base de donnée avec wampserver
ce qui me cause problème c'est comment accéder a la base de donnée a travers une page php pour exécuter les requêtes
selon ce que j'ai étudié je sais que il faut faire une connexion au server puits a la base de donnée
j'ai donc utiliser le code php suivant:

<?php
if( $id = mysql_connect("localhost","root") ) {
if(mysql_select_db("biblio") ) {
echo "Succès de connexion.";
/* code du script … */
} else {
die("Echec de connexion à la base.");
}
mysql_close($id);
} else {
die("Echec de connexion au serveur de base de données.");
}

?>

vous pouvez donc voir que je n'es toujours pas mis de script
mais ce n'est pas la le problème
ce que je veux pour l'instant c'est l'accès au server et a la base de donnée
et en introduisant le code php que vous voyez je ne reçoit même pas un affiche de type :
sucées de connexion
echec de connexion
echec de connexion au server de base de données

pouvez vous me dire ce qui ne marche pas sur ce script svp
merci
Configuration: Windows XP
Firefox 3.0.15

19 réponses

Résumé de la discussion

La question porte sur l'accès à une base de données MySQL via une page PHP sous WampServer et sur la manière d'établir une connexion au serveur puis à la base. Plusieurs réponses évoquent l'importance d'exécuter le fichier via un navigateur disposant d'un interpréteur PHP, et de vérifier le mot de passe et le nom d'utilisateur utilisés pour mysql_connect. Des échanges évoquent aussi des erreurs d'accès comme Access denied for user 'root'@'localhost' (using password: YES), signalant soit un mot de passe manquant, soit une configuration incorrecte. D'autres propositions recommandent d'ajouter le mot de passe dans l'appel mysql_connect, ou d'envisager PDO/MySQLi pour une approche moderne, tout en vérifiant DocumentRoot et l'accès via http://localhost.

Bobot (l’IA à votre service)
  1. un fichier php s'ouvre en édition avec un éditeur de texte.

    son exécution , ou son interprétation se fait exclusivement à parti d'un navigateur possédant un interpéteur PHP.

    1. merci pour ton aide mon cher ami
  2. bonjour,

    peut être faut-il mettre lle mot de passe sur cette instruction

    mysql_connect("localhost","root")

    soit :
    mysql_connect("localhost","root","" ) si le mot de passe est vide
    1. A quoi correspond ta variable $id ?

      La syntaxe de mysql_connect est incompléte :

      mysql_connect("host","user","pass");

      mysql_select_db("ta_base");

      Ton "système" de connexion n'est pas très propre, un or die("Erreur de connexion"); à la suite de tes instructions de connexions semble plus approprié.
      1. bonjour,

        impli : $id est une variable logique qui prend la valeur vrai si la connexion est réussie...
        1. Effectivement, j'avais lu un == plutôt qu'un =

          On va dire que je suis mal réveillé ...
      2. je vois pas il n y a pas un accée a la base de donnée
        j'ai modifier le code comme suit :

        <?php
        $dbserver='localhost';
        $dbuser='root';
        $dbpass=' ';
        $db=mysql_connect($dbserver,$dbuser,$dbpass) or die('echec de la connection a la base');
        if (mysql_connect_db("biblio"))
        {
        echo "succee de connection";
        }
        else
        {
        die ("echec de la connection a la base");
        }
        mysql_close($db);

        ?>

        du moin si il n y a pas accé au server ou a la base de donnée , j'aurais le message d'erreur "echec de la connexion a la base "
        et si il y a accés a la base je vaix avoir le message "success de connection"
        mais la je ne recoin aucun message:
        ni sucée ni échec
        il y a peux être une option non active dans la configuration de wampserver
        es ce que quelqu'un pourrais me donner une idée pour pouvoir localiser la panne
        je veux juste crée un code php permettant d accéder a ma base de donnée !!!
        merci
        1. bonjour,
          vous dites :
          je veux juste crée un code php permettant d accéder a ma base de donnée !!!

          vous l'avez alors que vous faut-il de plus ?
          votre base est-elle créée ?
          le nom est-il correct ?
          les login et password sont-il correct ?
          dans le code on considère qu'il n'y a pas de mote de passe, mais peut être y en a-t-il un ?

          ensuite le test porte sur l'ouverture de la table "biblio" et non sur la connexion à la base de données.

          nous ne pouons nous substituer à vous au délà

          1. bonjour
            peut être que j'ai pas donnée trops d'informations sur ce que je fait
            donc j'explique ce que j'ai fait et ce qui me cause problème
            j'ai fait la création d'une base de donnée d'une bibliothèque avec wampserver
            tout a été en ordre, la base a été bien crée et les données ont été insérer
            ce que j'ai voulu faire,par la suite, c'est de exécuter une simple requête sql en utilisant une page php
            pour début je me suis dit qu'il faut crée une page php avec la quel je vaix me connecter au server nommé root puit a la base de donnée biblio que j'ai crée
            j'ai donc crée le code php suivant :

            <?php
            $dbserver='localhost';
            $dbuser='root';
            $dbpass=' ';
            $db=mysql_connect($dbserver,$dbuser,$dbpass) or die('echec de la connection a la base');
            if (mysql_connect_db("biblio"))
            {
            echo "succee de connection";
            }
            else
            {
            die ("echec de la connection a la base");
            }
            mysql_close($db);

            ?>

            après avoir insérer ce code dans une page .php
            j'ai lancer cette page mais ca n'affiche pas "succée de connection", c'est a dire qu'il n y a pas un accée a la base de donnée
            je voudrais comprendre pourquoi il n y a pas un accé a la base ni au server
            si il y a une chose qui n'es pas claire ou une confusion dans mon sujet veiller m'expliquer c'est ou le problème
            mais sinon je voudrais bien que vous m'aidiez a trouvez une solution
            merci
        2. alors faites ça

          if (mysql_select_db("biblio"))
          1. merci
            j'ai fait la modification que vous avez donner mais ca ne marche toujours pas !!!
            il n y a pas un accé a la base biblio

            a+
        3. cela fonctionne parfaitement chez moi. avec easyPhp

          le test fait n'est pas sur biblio mais sur une bas eperso, j'ai donc juste changer le nom biblio par un nom à moi.

          vérifiez votre base et votre table.
          1. salut
            qu'es se que vous voulez dire par vérifier la base et les tables
            j'ai bien crée mes tables
            et j ai bien insérer les données
            je suis sur que la base a été bien crée parce que j'ai exécuter des requet sql sur cette base et ca marche parfaitement
        4. le code chez moi est :
          <?php
          $dbserver='localhost';
          $dbuser='root';
          $dbpass='xxxxx';
          $db=mysql_connect($dbserver,$dbuser,$dbpass) or die('echec de la connexion a la base');
          if (mysql_select_db("a2xsonorisation"))
          {
          echo "succès de connexion";
          }
          else
          {
          die ("echec de la connexion a la base");
          }
          mysql_close($db);

          ?>

          je reçois le message suivant :
          succès de connexion
          1. ok
            juste une petite chose
            pour exécuter ce code :
            tu entre sous bloc-note, tu le copie, puits tu fait un enregistrement du fichier avec l'extension .php dans n'importe quel dossier de ton disque dure et lors que tu lances le fichier ,ainsi crée,
            tu as devant toi le message indiquant que l'accès a la base a eux lieu ?
            c'est ca ?
            je veux juste m'assurer qu'un défaut de configuration ,peut etre, dans le wampserver la
            merci
        5. je n'utilise pas le bloc note mais scite : mais cela n'a aucune incidence.
          je l'ai appelé testConnect.php et je l'ai enregistré à la racine du site local.
          1. la racine du site local ?!
            si tu pouvais m'expliquer ce que cela veux dire stp !!
            on se qui me concerne, et selon ce que je sais j'ai fait un dossier sous c:\wamp\www. et la j'ai mis mon fichier php

            si tu pouvais m'expliquer c'est quoi la racine du site local et comment je peux la repérer, ou peut être la mettre en évidence si elle n'existe pas
            je n'es jamais entendu parler de ca !!!
            pouvez vous me donner plus d'explication svp
            merci
        6. chez moi avec easye php, la racine du site s'appelle aussi www.
          ce dossier a été créé à l'installation, je n'ai pas eu besoin de le créer.

          vérifie dans le httpd.conf la valeur de DocumentRoot
          1. oui oui
            moi aussi j'ai le dossier www déja crée depuis que j'ai fait l'installation
            et il contient aussi un aussi un fichier php nommé index
            j'ai crée un sous dossier nommé tests sous le dossier www
            et dans le dossier tests j'ai crée le fichier php que je veux exécuter

            et concernant le fichier httpd.conf, la valeur de DocumentRoot est "c:/wamp/www/"
        7. donc normalement, en faisant http://localhost on doit retrouver à l'affichage ce qui est dans index.php.

          pour la suite il faut faire ;

          http://localhost/tests/le nom du fichier à excécuter.php
          1. ah !!!!!!
            il y a du nouveau
            j'ai lancer la page http://localhost/tests/affichetexte.php

            et ca affiche le message d'erreur suivant :

            Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\tests\affichetexte.php on line 29
            echec de la connection a la base

            je n'es pas mis de mot de passe pour l'utilisateur root
            je comprend pas le message d'erreur !!

            pouvez vous m'expliquer ce qui ce passe svp
            merci
            1. Access denied for user 'root'@'localhost' (using password: YES)

              cela veut dire qu'il y a un mot de passe pour l'utilisatur root.
              il est absolument nécessaire de le mettre

              il doit vous être donné quelque part dnas les document asocié à l'installation de wampserver
              1. j'ai vérifier mais je n'es pas eux de mot de passe avec le logiciel Wampserver
                j'ai eux seulement un fichier d'installation
                et on m'a pas demander de mot de passe lorsque je fessais l'installation
                il y a un mot de passe par défaut peut être
            2. c'est possible mais je ne le connais pas.
              dans easyPhp 5 c'est mysql.

              peut être est-il possible de créer un autre utilisateur de la base avec un mot de passe choisi

              autre possibilité :ouvrir un nouveau sujet pour demande le mot de passe par défaut à l'installation de wampserveur
              1. ok merci !!
                dit moi stp
                je comprend pas pourquoi lorsque je fait un double clique sur le fichier affichetexte.php (qui se trouve dans le dossier tests ) la page php lancer sur le naviguateur web mozilla firefox ne contient pas le message d erreur :

                Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'root'@'localhost' (using password: YES) in C:\wamp\www\tests\affichetexte.php on line 29

                alors que lors que je lance la page http://localhost/tests/affichetexte.php
                le script php est exécuter et le message d'erreur apparait
                pouvez vous m'expliquez ca svp
                merci
                1. d'abord on ne fait pas un double clic sur un fichier php.
                  il faut le l'ouvrir à partir du serveur pour qu'il soit interprêté.

                  le résultat d'un double clic ne doit pas être pris en compte.
                  1. ahh ok
                    comment je peux l'ouvrir a partir du server
                    je veux dire en utilisant easyphp
                    comment tu faix pour ouvrir une page comme ,par exemple, http://localhost/tests/affichetexte.php