首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储过程返回Mysql Php

问存储过程返回Mysql Php
EN

Stack Overflow用户
提问于 2015-08-16 21:45:14
回答 1查看 57关注 0票数 1

我用mysql编写了一个存储过程,它插入到一个表中,并选择一个字段(Id),以便稍后将其赋值给php变量,最终将其作为参数传递给另一个mysql过程。当我从mysql调用第一个过程时,它工作得很好,它返回它想要的值。问题出在我试图从php获取该值的时候。下面是我的代码:

代码语言:javascript
复制
DELIMITER $
CREATE PROCEDURE addEntity(p_idPerson INT(11),
p_nameP VARCHAR(50), p_objective VARCHAR(8),
OUT p_idProduct INT(11)
)
BEGIN

INSERT INTO EntityTb (idPerson, nameP, objective) VALUES(p_idPerson, p_nameP, p_objective);
SET p_idProduct= (SELECT idProduct FROM EntityTb WHERE idPerson= p_idPerson ORDER BY idProduct DESC LIMIT 1);
SELECT p_idProduct;
END$
DELIMITER;

PHP

代码语言:javascript
复制
$prep_stmt = "CALL addEntity(?,?,?,?)";
$insert_stmt = $mysqli->prepare($prep_stmt);
$p_id= "@p_idProduct";

if ($insert_stmt) { 
    $insert_stmt->bind_param('issi', $arg1, $arg2, $arg3 $p_id);
    $insert_stmt->execute();
    while ($rs= $insert_stmt->fetch()) {
        //debug($rs);
        echo "\r\n rs: ".$rs;
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-08-17 04:37:53

我修好了。只需将上面的php代码更改为下面的代码。

$insert_stmt= $mysqli->查询(“CALL addProduct($arg1,'$arg2','$arg3',@p_idProduct)");

代码语言:javascript
复制
if ($insert_stmt->field_count)
{   
    $rs= $insert_stmt->fetch_assoc();
    $id_prod= $rs['p_idProduct'];
    echo "id_product: ".$id_product;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32035748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档