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 :

mysqli_query retourne FALSE [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Par défaut mysqli_query retourne FALSE
    Bonjour à tous et merci d'avance pour vos réponse.
    voici l'intitulé de ma question, j'ai une Procédure stockée :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    BEGIN
    	-- If the p_brandId is 0, we create a new item
    	IF p_brandId = 0 THEN
     
    		INSERT INTO brand (
    			brandIconId,
    			brandRank,
    			brandName,
    			brandIsDeleted )
     
    		VALUES (
    			p_brandIconId,
    			p_brandRank,
    			p_brandName,
    			p_brandIsDeleted )
    		;
     
    		SELECT LAST_INSERT_ID() INTO p_brandId;
    	-- else we update it. Now if the p_brandId is not 0 and record doesnt exist it will be created anyway
    	ELSE
     
    		INSERT INTO brand (
    			brandId,
    			brandIconId,
    			brandRank,
    			brandName,
    			brandIsDeleted )
     
    		VALUES (
    			p_brandId,
    			p_brandIconId,
    			p_brandRank,
    			p_brandName,
    			p_brandIsDeleted )
     
    		ON DUPLICATE KEY UPDATE
    			brandIconId = p_brandIconId,
    			brandRank = p_brandRank,
    			brandName = p_brandName,
    			brandIsDeleted = p_brandIsDeleted
    		;
     
    	END IF;
     
    	-- Now we return the full VO value
    	-- SELECT p_brandId;
    	-- SET p_brandId = CONVERT( p_brandId, UNSIGNED );
    	 CALL getBrand( p_brandId );
     
     
    END
    Lorsque j'envoie mes données à cette requête de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $result_query = mysqli_query($link, "CALL setBrand($params)");
    cette procédure fonctionne correctement et je retrouve les données dans ma table.
    Le problème vient de ce que $result_query devrait me renvoyer mon enregistrement via CALL getBrand(p_brandId).
    getBrand() fonctionne bien et me renvoie les données espérées dans une autre fonction php.
    mysqli_query() selon la doc officielle renvoie l'enregistrement avec SELECT, SHOW, EXPLAIN, DESCRIBE devrait renvoyer un objet.
    J'en déduis que CALL est le problème cependant, j'ai tenté de supprimer CALL et de le remplacer par un SELECT malheureusement pour un résultat identique.
    J'utilise un éditeur mysql, navicat pour ne pas le nommer, qui permet de gérer et tester ces procédures, et je n'ai pas d'erreur, et l'enregistrement est correctement renvoyé par ce bief-là.
    Si quelqu'un peu me donner une piste valable, c'est avec plaisir que je la suivrais.
    Salutations.

  2. #2
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Selon la doc officielle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    resource mysql_query     ( string $query    [, resource $link_identifier   ] )
    Or, toi tu as:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $result_query = mysqli_query($link, "CALL setBrand($params)");
    M'es avis que ton $link n'est pas placé au bon endroit (je suis d'ailleurs étonné que cela fonctionn?) Ton FALSE doit donc est le retour de l'erreur qui te dis qu'il y a un souci dans ta requete (inversion de la commande et du lien).

    Onet

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Par défaut [réglé] fin des haricots
    Bonjour,

    Tout d'abord merci pour votre réponse. J'utilise Bien la bibliothèque MYSQLI pour des raisons d'accès au procédures stockées.
    Je dois faire un meaculpa car j'ai omis de préciser que la fonction incriminée est plus précisément un service AMFPHP.
    J'ai découvert que le support de mysqli dans AMFPHP n'est pas complet. j'ajoute que j'ai le même problème avec WEBORB.
    le code que j'ai décrit dans l'ouverture de billet fonctionne pilpoil nickel dans un environnement non AMF.
    Le problème est de modifier le code amphp ou de changer de serveur amf.

  4. #4
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Citation Envoyé par scorzen Voir le message
    Bonjour,

    Tout d'abord merci pour votre réponse. J'utilise Bien la bibliothèque MYSQLI pour des raisons d'accès au procédures stockées.
    Je dois faire un meaculpa car j'ai omis de préciser que la fonction incriminée est plus précisément un service AMFPHP.
    J'ai découvert que le support de mysqli dans AMFPHP n'est pas complet. j'ajoute que j'ai le même problème avec WEBORB.
    le code que j'ai décrit dans l'ouverture de billet fonctionne pilpoil nickel dans un environnement non AMF.
    Le problème est de modifier le code amphp ou de changer de serveur amf.
    Salut,

    Ca ne change rien au fait que ta fonction soit écrite de manière incorrecte, le link devant se trouver en second paramètre et pas en premier. Alors a moins que ces 2 paramètres soient interchangeable, et que la doc ne l'ai pas spécifier (ce dont je doute, mais ne sait-on jamais), ta commande est erronée.

    Onet

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2009
    Messages : 4
    Par défaut Ma questoudit !
    Hello, Je t'invite à jeter un coup d'oeil au lien que je t'ai laissé dans ma dernière intervention, voici un apperçu (copié/collé) de www.php.net.


    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
    19
     
    mysqli::query
    mysqli_query
     
    (PHP 5)
     
    mysqli::query -- mysqli_query — Exécute une requête sur la base de données
     
    Description
     
    Style orienté objet :
    mixed mysqli::query ( string $query [, int $resultmode ] )
     
    Style procédural :
    mixed mysqli_query ( mysqli $link , string $query [, int $resultmode ] )
     
    Exécute une requête sur la base de données.
     
    En termes de fonctionnalités, utiliser cette fonction revient à appeler mysqli_real_query() suivie de mysqli_use_result() ou mysqli_store_result().
    Cordialement!

  6. #6
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Salut,

    Autant pour moi. Je n'avais pas vu, lors de ma recherche sur php.net qu'il avait remplacé mysli_query par mysql_query sans me le signaler. C'est aussi pour cela que je ne comprenais pas bien ta précédente réponse.

    Par contre, je trouve tout de meme aberrant d'avoir créer une fonction qui change d'un caractère, qui plus est pourrait être logique, et avoir changer l'ordre des paramètres! C'est quand meme du grand n'importe quoi...

    Onet

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

Discussions similaires

  1. wxBitmap : IsOk retourne false
    Par vikki dans le forum wxWidgets
    Réponses: 16
    Dernier message: 20/04/2009, 16h54
  2. Réponses: 4
    Dernier message: 17/09/2008, 13h05
  3. Requete mysql effectuée mais qui retourne false?
    Par lysandre dans le forum Requêtes
    Réponses: 8
    Dernier message: 24/03/2008, 16h55
  4. [php 5.1.2][bug?]get_cfg_var retourne false
    Par jeff_! dans le forum Langage
    Réponses: 2
    Dernier message: 22/05/2006, 13h33
  5. [PDO] Ma requêtes préparées me retourne false
    Par jeff_! dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 03/05/2006, 22h07

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