gpt4 book ai didi

php - 从 php 调用存储过程

转载 作者:行者123 更新时间:2023-11-29 06:13:46 25 4
gpt4 key购买 nike

我正在从 php 调用一个存储过程

<?php
include('global/db.php');
$id = 1;
$base = conn();
$query = "CALL get_id(:id,@userid)";
$stmt = $base->prepare($query);
$stmt->bindParam(':id',$id);
$stmt->execute();
print_r($stmt->fetch());
?>

存储过程如下所示

BEGIN
SET @userid = (SELECT * FROM user WHERE user.id = id);
SELECT @userid;
END

程序参数

IN id int(10), OUT userid VARCHAR(255) 

问题:

  • 为什么我的结果什么也没有返回?
  • 我的输出变量 @userid 需要什么数据类型?

最佳答案

您的存储过程有一些问题。

既然你有一个输出 userid 为什么这个 @userid

同时你输出的是 userid ,所以没有必要 SELECT

另一件事是,您不能将整行选择到单个变量中,对于多列您应该使用多个输出变量。

BEGIN
SET userid = (SELECT column_name FROM user WHERE user.id = id);
END

更新

$result = $base->query("CALL get_id($id)");  
while($data = $result->fetch_array(MYSQL_ASSOC)){
echo $data['column_name'];
}

关于php - 从 php 调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37015662/

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