gpt4 book ai didi

php - 存储过程返回 Mysql Php

转载 作者:行者123 更新时间:2023-11-30 22:37:36 25 4
gpt4 key购买 nike

我在 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;
}
}

最佳答案

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

$insert_stmt= $mysqli->query("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;
}

关于php - 存储过程返回 Mysql Php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32035748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com