Проблема вызова хранимой процедуры MySQL из php - PullRequest
2 голосов
/ 02 декабря 2009

У меня есть хранимая процедура MySQL, которая принимает номер клиента и валюту в качестве входных данных. Он выводит массив с помощью оператора select. Выходной массив состоит из Balance и NetBalance,

Если я вызываю процедуру из MySQL как "call GetAccountBalanceByCurrency(500,'USD')", я получаю правильные результаты.

Однако, если я вызываю его из PHP как $x= mysqli_multi_query("call GetAccountBalanceByCurrency(500,'USD');"), я получаю следующее сообщение об ошибке:

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

Полагаю, это что-то простое, но я бился в голову часами. Я пробовал $x= mysqli_multi_query("call GetAccountBalanceByCurrency(500,'USD')"); среди прочего. Кто-нибудь может увидеть ошибку?

Большое спасибо.

Ответы [ 3 ]

4 голосов
/ 02 декабря 2009

Цитируя руководство, функция mysqli_multi_query требует двух параметров при использовании API процедурного стиля:

bool mysqli_multi_query  ( mysqli $link  , string $query  )

Итак, вы по крайней мере должны передать идентификатор ссылки в качестве первого параметра.

Кстати: это именно то, о чем вас предупреждает предупреждающее сообщение ;-)
"mysqli_multi_query() ожидает точно 2 параметров, 1 учитывая"


Да, на той же странице руководства также приведен пример только с одним параметром, но он относится к объектно-ориентированному стилю (mysqli - это расширение, предоставляющее как процедурный, так и OO API) .

0 голосов
/ 02 декабря 2009

Сначала вы должны задать 2 запроса или один ресурс и один запрос как это

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

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

mysqli_multi_query($link,$query);
0 голосов
/ 02 декабря 2009

Ознакомьтесь с документацией для mysqli_multi_query. То, как вы его называете, требует двух аргументов вместо одного:

http://us3.php.net/mysqli_multi_query

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...