se connecter à une base de donné

Petit nouveau ! | 2 Messages

16 sept. 2015, 15:17

Bonjour à tous,


voilà je commence un module PHP Avancé issue d'une formation à distance. Donc je suis novice en MySQL.
Je bloque sur la connexion à ma base de donnée. J'ai créé une table sur phpMyAdmin, mais je ne comprend pas comment me connecté en local, n'y même m'y connecter tout cours.

Enfin je ne sais pas du comment renseigner mon fichier connect.php afin d'accéder à cette base de donnée :

Voici mon code :

* page connect.php :
<?php

            //definition des propriétés de connexions
            define('MYSQL_SERVER', 'localhost');
            define('MYSQL_USER', 'root');
            define('MYSQL_PASSWORD', '');
            define('MYSQL_BASE', 'articles');

            //connection au serveur
            $connexion = mysqli_connect(MYSQL_SERVER, MYSQL_USER, MYSQL_PASSWORD, MYSQL_BASE);

        ?>
* page close.php :
<?php

             mysqli_close($connexion);
        ?>
* page index.php
<!DOCTYPE html>
<html>

    <head>
        <title>Exercice 1 : Se connecter à une base de donnée</title>
        <meta type="content" charset="utf-8" />
       </head>

    <body>        
        <?php

            include('connect.php');

            //test l'existance du fichier connect.php
            if(file_exists('connect.php')){
                //selection des colonnes "code" et "designation" dans cette table
                $requete = "SELECT code, designation From articles";
                //exécute la requête précédente
                $resultat = mysqli_query($connexion, $requete);
                //création boucle pour afficher les colonnes "code" et "designation" dans la table
                while ($donnees = mysqli_fetch_assoc($resultat)) {
                    echo $donnees['code']." ".$donnees['designation']."<br/>";
                }

            }

            include('close.php');

        ?>
    </body>

</html>


Quand je souhaite exécuter le code sur le serveur du cefii, j'ai le message suivant qui aparait :

http://www.cefii-developpements.fr/mari ... ercice_02/
Warning: mysqli_connect() [function.mysqli-connect]: (HY000/2002): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) in /home/cefiidev/www/marilys466/Exercices - PHP - Avancé/Exercice_02/connect.php on line 10

Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in /home/cefiidev/www/marilys466/Exercices - PHP - Avancé/Exercice_02/index.php on line 19

Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, null given in /home/cefiidev/www/marilys466/Exercices - PHP - Avancé/Exercice_02/index.php on line 21
Warning: mysqli_close() expects parameter 1 to be mysqli, boolean given in /home/cefiidev/www/marilys466/Exercices - PHP - Avancé/Exercice_02/close.php on line 3

Mammouth du PHP | 2703 Messages

16 sept. 2015, 15:39

define('MYSQL_BASE', 'articles');
est faux si articles est le nom d'une table mais pas le nom de la base de donnée qui contient cette table.
dans phpmyadmin, le nom de la base de donnée apparait.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

17 sept. 2015, 22:08

salut,

A priori l'url n'est pas bonne. Tu es sur un serveur loué en ligne ?

Si oui les informations de connexion doivent être fournit par ton hébergeur.
Il y a peu de chance que ce soit localhost et root comme utilisateur. Cela peux être le cas sur une machine de développement (ce que je t'invite à faire afin de faciliter la chose ;) ).

Sinon coté code la connexion est correct, le if(file_exists('connect.php')){ est inutile car il est inclus avant, donc si le fichier n'existe pas il y a une erreur avant ;) ).
Une amélioration serait de mettre l'include dans le if.

@+
Il en faut peu pour être heureux ......