views:

145

answers:

3

I have a stored MySQL procedure that takes a customer number and a currency as input. It outputs an array using a select statement. The output array is comprised of Balance and NetBalance,

If I call the procedure from MySQL as "call GetAccountBalanceByCurrency(500,'USD')" I get the correct results.

However, if I call it from PHP as $x= mysqli_multi_query("call GetAccountBalanceByCurrency(500,'USD');"), I get the following error message:

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

I assume it is something simple, but have been banging my head for hours. I have tried $x= mysqli_multi_query("call GetAccountBalanceByCurrency(500,'USD')"); among other things. Can anybody see the error?

Many thanks.

A: 

Check out the documentation for mysqli_multi_query. The way you're calling it needs two arguments instead of just the one:

http://us3.php.net/mysqli_multi_query

pygorex1
+4  A: 

Quoting the manual, the mysqli_multi_query function requires two parameters, when you are using the procedural style API :

bool mysqli_multi_query  ( mysqli $link  , string $query  )

So, you at least must pass the link identifier as a first parameter.

BTW : that's exactly what the warning message is trying to indicate you ;-)
"mysqli_multi_query() expects exactly 2 parameters, 1 given"


Yes, the same manual page also gives an example with only one parameter -- but it's for the Object oriented style (mysqli being an extension that exposes both a procedural and an OO API).

Pascal MARTIN
A: 

First you have to set 2 querys or one recource and one query like this

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

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

mysqli_multi_query($link,$query);
streetparade