繁体   English   中英

我想从sp获得价值

[英]I want get a value from sp

这是我的sp:

CREATE DEFINER=`root`@`localhost` PROCEDURE `getproductname`(in productid int , out productname varchar(200))
BEGIN
        select product_name from product where product_id=productid ;
END

这是我的PHP代码:

$mysqli = new mysqli(DB_HOST,DB_USER,DB_PWD,DB_NAME);

$mysqli->query("CALL getproductname(2049,@productname)") ;
$result = $mysqli->query("SELECT @productname");
while($row = $result->fetch_object()){
    echo ($row[0]);
}

这是错误的:

Fatal error: Call to a member function fetch_object() on a non-object in D:\WEB\book24ss\_res\sptest.php on line 19

为什么?

您的代码存在以下问题:

  1. 您永远不会在存储过程中为out参数productname分配值。
  2. 即使您为productname分配了一个值,使用SELECT @productname检索它也只会得到一个值-不需要遍历结果。
  3. 查询CALL getproductname(2049,@productname)将返回您从简单查询中select product_name from product where product_id=@productid -您必须遍历从调用存储返回的结果集程序。

我认为您在关于存储过程的用法和功能的推理上有一些错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM