从php调用MySQL存储过程的问题

时间:2009-12-01 22:58:44

标签: php mysql prepared-statement

我有一个存储的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 个答案:

答案 0 :(得分:4)

当您使用过程样式API时,引用手册,mysqli_multi_query函数需要两个参数:

bool mysqli_multi_query  ( mysqli $link  , string $query  )

因此,您至少必须将链接标识符作为第一个参数传递。

顺便说一下:这正是警告信息试图表明你的意思;-)
mysqli_multi_query()预计 2 参数, 1 给出”


是的,同一个手册页也给出了一个只有一个参数的例子 - 但它是面向对象的样式(mysqli是一个公开过程和OO API的扩展)

答案 1 :(得分:0)

查看mysqli_multi_query的文档。你调用它的方式需要两个参数,而不仅仅是一个:

http://us3.php.net/mysqli_multi_query

答案 2 :(得分:0)

首先,您必须设置2个查询或一个资源和一个查询 像这样

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

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

mysqli_multi_query($link,$query);