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 :

2 erreurs MySQL incompréhensibles [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é
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Août 2005
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 852
    Par défaut 2 erreurs MySQL incompréhensibles
    Bonjour,

    Je n'arrive pas à trouver l'origine de ces deux erreurs.

    1/ Je me connecte à plusieurs bases MySQL ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    $dbHost = "127.0.0.1";
    $dbName = "mabase";
    $dbUser = "root";
    $dbPassword = "";
     
    $connexion_bdd = mysql_connect($dbHost, $dbUser, $dbPassword) or die (mysql_error());
    $bdd = mysql_select_db($dbName, $connexion_bdd) or die (mysql_error());
     
     
    ?>
    Et à la fin de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    mysql_close($dbName);
    session_unset();
    session_destroy();
    exit();
    ?>
    A l'intérieur d'une page (et donc entre ces 2 parties) je fais appel à une autre base, que je referme de suite après utilisation :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    function SelectApp($id) {
    	$dbHostBis = "127.0.0.1";
    	$dbNameBis = "mabasebis";
    	$dbUserBis = "root";
    	$dbPasswordBis = "";
     
    	$ConnexionBddBis = mysql_connect($dbHostBis, $dbUserBis, $dbPasswordBis);
    	$SelectionBddBis = mysql_select_db($dbNameBis, $ConnexionBddBis);
     
    	$rqt_select_app = "SELECT COUNT (`app_id`) FROM apps WHERE `appId` = '$id' ";
    	//  echo $rqt_select_app;
    	$rst_select_app = mysql_query($rqt_select_app);// or die (mysql_error());
    	$app = mysql_fetch_row($rst_select_app);
     
    	return $app[0];	
     
    	mysql_close($ConnexionBddBis);
    }
    Et là j'obtiens 2 erreurs, à chaque appel de mysql_close() :

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in...

    Pourquoi cela ne fonctionne pas ? J'ai bien nommé mes connexions, je ferme la 2e juste après l'avoir ouvert pour ne pas avoir d'imbrication entre les deux : est-ce qu'au contraire il faut fermer la première avant d'ouvrir la deuxième ? (je demande mais j'ai essayé, sans résultat) Si j'enlève les mysql_close(), plus d'erreur, mais je trouve que ce n'est plus très propre...

    2/ Sur le code de SelectApp() qui est au dessus :

    Ma requête (affichée avec l'echo) est correcte, elle s'exécute bien dans phpMyAdmin. Mais en retour j'ai l'erreur Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in Je cherche juste à récupérer le COUNT, sans faire de while ou quoi que ce soit qui alourdit le code. J'ai retrouvé ce schéma plusieurs fois sur le net, dans des tutoriaux donc il est censé fonctionner. Mais je ne vois pas pourquoi cela cloche.

    Merci d'avance pour votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    S'il y avait une erreur de connexion, le query tomberait en erreur alors que la il passe mais ne renvoit pas d'objet.

    decommente l'arret du script s'il y a une erreur SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $rst_select_app = mysql_query($rqt_select_app) or die (mysql_error());
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    return $app[0];	
    mysql_close($ConnexionBddBis);
    Si tu fais un return $valeur -> tu renvois la valeur à ton programme principal et tu sors donc de ta fonction SelectApp -> le mysql_close() ne s'executera jamais.

    Il faudrait déjà corrigé ce bout de code dans ta fonction SelectApp() de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $count = $app[0];	
    mysql_close($ConnexionBddBis);
    return $count;

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Par défaut
    Bonjour,

    Aussi, selon votre code vous établissez deux connexions au même serveur (127.0.0.1)?

    Dans ce cas pour avoir réellement deux connexions vous devez mettre à TRUE le quatrième paramètre optionnel pour la fonction mysql_connect (REF http://ca3.php.net/function.mysql-connect)

    Sinon mysql récupérera la connexion existante...

    Voulez-vous vraiment ouvrir deux connexions au même serveur ou vous avez simplement masquer la vrai adresse par précaution?

    ------

    Aussi quand vous utiliser mysql_query il faudrait préciser en second paramètre la source parce que vous en utiliser deux!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($rqt_select_app, $ConnexionBddBis)
    REF : http://ca3.php.net/manual/fr/function.mysql-query.php

  5. #5
    Membre éclairé
    Avatar de Jarodd
    Profil pro
    Inscrit en
    Août 2005
    Messages
    852
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 852
    Par défaut
    Bonsoir,

    J'ai bien mis les connexions aux mysql_close(), désormais j'ai cette erreur :

    Warning: mysql_close(): 6 is not a valid MySQL-Link resource in /var/www/monsite/includes/deconnexion.php on line 5

    Si je fais un écho de mon mysql_connect(), j'ai bien "Resource id #6 " mais je ne sais pas ce que cela signifie et je ne trouve rien sur cette ressource 6...

    Mon code de connexion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
    $dbHost = "127.0.0.1";
    $dbName = "mabase";
    $dbUser = "root";
    $dbPassword = "";
    $ConnexionBdd = mysql_connect($dbHost, $dbUser, $dbPassword) or die (mysql_error());
    // echo $ConnexionBdd;
    $bdd = mysql_select_db($dbName, $ConnexionBdd) or die (mysql_error());
    ?>
    Concernant le count(), j'ai toujours une erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $rqt_select_app = "SELECT COUNT(`app_id`) FROM apps WHERE `appId` = '$id' ";
    echo $rqt_select_app;
    $rst_select_app = mysql_query($rqt_select_app);// or die (mysql_error());
    $app = mysql_fetch_row($rst_select_app);
    return $app[0];
    Cette requête passe bien dans phpMyAdmin, je n'ai pas d'erreur, seulement rien qui s'affiche. Pourtant les exemples sont nombreux sur le net, et j'ai l'impression de respecter la syntaxe de la doc

    (j'ai bien mis le return à la fin de la fonction)

    Sinon sim_mmm, je met 127.0.0.1 tout simplement parce que le site est en développement (et n'avance pas vite comme vous le voyez).

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut,

    peux-tu donner le code complet stp

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

Discussions similaires

  1. erreur mysql... probleme de requete
    Par om.rava dans le forum Requêtes
    Réponses: 5
    Dernier message: 07/12/2005, 21h48
  2. avoir les log d'erreur mysql
    Par simoryl dans le forum Administration
    Réponses: 4
    Dernier message: 06/09/2005, 14h24
  3. erreur javascript incompréhensible
    Par amelhog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 16h50
  4. erreur 104 incompréhensible
    Par shadowmoon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 18/05/2005, 16h16

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