我用mysql编写了一个存储过程,它插入到一个表中,并选择一个字段(Id),以便稍后将其赋值给php变量,最终将其作为参数传递给另一个mysql过程。当我从mysql调用第一个过程时,它工作得很好,它返回它想要的值。问题出在我试图从php获取该值的时候。下面是我的代码:
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
$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;
}
}发布于 2015-08-17 04:37:53
我修好了。只需将上面的php代码更改为下面的代码。
$insert_stmt= $mysqli->查询(“CALL addProduct($arg1,'$arg2','$arg3',@p_idProduct)");
if ($insert_stmt->field_count)
{
$rs= $insert_stmt->fetch_assoc();
$id_prod= $rs['p_idProduct'];
echo "id_product: ".$id_product;
}https://stackoverflow.com/questions/32035748
复制相似问题