好吧,我真的囧了。。。。存储过程怎么也抓不出值来。。。

字体: | 打印



以上代码木有问题。可以跑出来,拿到我想要的值。(请暂时不要批评代码美观问题和质量问题)

然后建立如下存储过程:
create procedure spTest1()
select UsersID,UserName,TenantId,InUseDateStart,InUseDateEnd,LostFlag,ChangerUID,ChangeDate,UserRight  from userinfo;
木有问题(同样,请暂时不要批评丑陋的SQL文)

然后在mysql客户端navicat里执行
call  spTest1()
也木有问题。同样数据可以出来。

然后,把PHP的代码的那个 $exec改成 $exec = “call  spTest1()”

返回了一个null。

谁能告诉我这是为什么。。。

我也来说两句 查看全部评论 相关评论

  • 于安 (2008-7-24 07:58:49)

    然后,把PHP的代码的那个 $exec改成 $exec = “call  spTest1()”

    你加个双引号是什么意思???
  • devotedsky (2008-7-24 08:07:47)

    魏玛要用存储过程执行查询语句?要查询的话,直接写sql。
    如果一定要用存储过程取值,至少在存储过程的定义里写一个out。
  • Eric.Si.Teng (2008-7-24 09:17:07)

    DEFINE('CLIENT_MULTI_RESULTS', 100000);
    mysql_connect($db,$usr,$passwd,1,CLIENT_MULTI_RESULTS)  ;
  • xsir317 (2008-7-24 09:53:07)

    QUOTE:

    原帖由 于安 于 2008-7-24 07:58 发表
    然后,把PHP的代码的那个 $exec改成 $exec = “call  spTest1()”

    你加个双引号是什么意思???
    去掉双引号?
  • suchshow (2008-7-24 10:52:57)

    我也碰到过这个问题,他会有个warning,然后从zend里面可以看出,执行完后$result为FALSE,所以取不出来!
    我想的话 存储过程中没有返回值,而现在就这样子直接把他当作返回了一个$result,然后从里面取数据,而$result是一个数据流,  存储过程可以返回吗?
    我当时是做的玩,没有特别深究,如果找到了答案 告诉小弟一声