2009-12-01 4 views
2

J'ai une procédure MySQL stockée qui prend en entrée un numéro de client et une devise. Il sort un tableau en utilisant une instruction select. Le tableau de sortie est composé de Balance et NetBalance,Problème appelant la procédure stockée MySQL à partir de php

Si j'appelle la procédure de MySQL comme "call GetAccountBalanceByCurrency(500,'USD')" j'obtiens les résultats corrects.

Cependant, si je l'appelle de PHP comme $x= mysqli_multi_query("call GetAccountBalanceByCurrency(500,'USD');"), je reçois le message d'erreur suivant:

Warning: mysqli_multi_query() expects exactly 2 parameters, 1 given 
    in C:\...\...\call_proc_test4.php on line 4. 

Je suppose que c'est quelque chose de simple, mais ai été cogner ma tête pendant des heures. J'ai essayé $x= mysqli_multi_query("call GetAccountBalanceByCurrency(500,'USD')"); entre autres choses. Quelqu'un peut-il voir l'erreur?

Merci beaucoup.

Répondre

4

citant le manuel, la fonction mysqli_multi_query nécessite deux paramètres, lorsque vous utilisez l'API de style procédural:

bool mysqli_multi_query (mysqli $link , string $query ) 

Ainsi, vous devez au moins transmettre l'identifiant de lien en tant que premier paramètre.

BTW: c'est exactement ce que le message d'avertissement essaie de vous indiquer ;-)
"mysqli_multi_query() attend exactement 2 paramètres, données"


Oui, la même page de manuel donne aussi un exemple avec un seul paramètre - mais c'est pour le style orienté objet (mysqli étant une extension qui expose à la fois une procédure et une API OO).

0

D'abord, vous devez définir 2 ou querys un Recource et une requête comme celui-ci

$link = mysqli_connect("localhost", "my_user", "my_password", "world"); 

$query = "CREATE TABLE....;...;... blah blah blah;..."; 

mysqli_multi_query($link,$query); 
Questions connexes