[RESOLU] connexion base donnée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] connexion base donnée

Re: connexion base donnée

par Sim88 » 26 oct. 2016, 16:35

merci à vous deux
Heureusement que j'avais précisé que c'était la première fois que j'essayais de me connecter à une bdd, ça permet d'être moins ridicule, quand la solution est aussi simple ;-)

Re: connexion base donnée

par Spols » 26 oct. 2016, 15:54

le problème vient de ta ligne

$conn = mysqli_connect('$host', '$user', '$passwd', 'bdd');
dans cette ligne, tu utilise des simple quote ' autour de chaque variable. donc plutot que de te connecter à prestashop.xxx tu tente de te connecter à la chaine de caractère $host. il faut que tu enlève ces ' et que tu utilise une condition de vérification de ta connection comme proposé par Moogli

Re: connexion base donnée

par Sim88 » 26 oct. 2016, 15:37

En effet, j'ai un problème de connexion "Erreur de connexion (2005) Unknown MySQL server host '$host' (1)"

que veux tu dire par "tu utilises des vairables dans des chaînes de caractères délimitées par des simple quote ( ' )" ? je suis sure de mes variables $host $bdd $user et $passwd car je les utilises correctement pour me connecter à phpmyadmin

Re: connexion base donnée

par moogli » 26 oct. 2016, 15:27

salut,

quand tu indiques que l'étape 4 ne s'affiche pas c'est que tu ne le vois pas dans la page ?

c'est tout a fait logique vu que ne pense pas que la connexion se fasse vu ce que tu passes comme parmètre.

du coup $conn === false et tu as une erreur sur $conn->query parce qu'il n'y a pas de méthode query sur un booleen.

il faut toujours tester le retour de mysqli_connect pour être certain que la connexion soit effective.
exemple dans la documentation de mysqli_connect (partie procédural) http://php.net/manual/fr/mysqli.construct.php

l'origine de ton problème c'est que tu utilises des vairables dans des chaînes de caractères délimitées par des simple quote ( ' )
or dans ce cas les variables ne soit pas interprétées.
il est totalement inutile d'utiliser une chaîne de caractères pour employer une variable

Le code devient
<?php
$conn = mysqli_connect($host, $user, $passwd, $bdd);
if (!$conn) {
    die('Erreur de connexion (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
}
ceci n'est qu'une exemple le die n'est pas a employer pour toutes les requêtes. Ici cela se comprend parce que sans base de données pas de site.
Même s'il est préférable d'afficher correctement la page avec un beau message d'erreur :-)


@+

connexion base donnée

par Sim88 » 26 oct. 2016, 14:48

Bonjour
C'est mon premier essai pour me connecter à une base de donnée (Prestashop) et y lire des éléments. Mais je bloque à l'envoie de la requete : l'étape 3 s'affiche bien mais pas le 4 !
Auriez vous une idée pour débloquer, car j'ai tout vérifié plusieurs fois sans comprendre?
Merci

Code : Tout sélectionner

<?php echo 'etape 1';echo '<br>'; // ACCES BASE $host = "XXXprestashop.mysql.db"; $bdd = "XXXprestashop"; $user = "XXXprestashop"; $passwd = "xxx"; // Connexion au serveur echo 'etape 1a';echo '<br>'; $conn = mysqli_connect('$host', '$user', '$passwd', 'bdd'); echo 'etape 2';echo '<br>'; $req = "SELECT numero FROM p_vente"; // On créé la requête echo 'etape 3';echo '<br>'; $res = $conn->query($req); // on envoie la requête echo 'etape 4';echo '<br>'; while ($data = mysqli_fetch_array($res)) {echo $data['numero'];} // on va scanner tous les tuples un par un mysqli_close($conn); // Deconnexion de la base de donnees ?>