Php 有没有一种方法可以在一次调用中使用PDO从存储过程中获取OUT参数?

Php 有没有一种方法可以在一次调用中使用PDO从存储过程中获取OUT参数?,php,mysql,stored-procedures,pdo,Php,Mysql,Stored Procedures,Pdo,这是我的密码。它有两个输入和一个输出。目前,我必须调用存储过程,然后我必须对输出进行选择,以获取值。是否有一种方法可以在不添加该项的情况下获得输出SELECT?我正在努力使代码尽可能紧凑和高效 我希望尽可能坚持使用命名参数,不要使用? $stmt = $conn->prepare("CALL Sellers_Test(:username, :barcode, @output)"); $stmt->bindParam(':username', $username, PDO::PARAM

这是我的密码。它有两个输入和一个输出。目前,我必须
调用
存储过程,然后我必须对输出进行
选择
,以获取值。是否有一种方法可以在不添加该项的情况下获得输出
SELECT
?我正在努力使代码尽可能紧凑和高效

我希望尽可能坚持使用命名参数,不要使用

$stmt = $conn->prepare("CALL Sellers_Test(:username, :barcode, @output)");
$stmt->bindParam(':username', $username, PDO::PARAM_STR);
$stmt->bindParam(':barcode', $barcode, PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
$output = $conn->query("SELECT @output AS output")->fetch(PDO::FETCH_ASSOC);
echo 'procedure returned '.$output['output'].'<p>';
$stmt=$conn->prepare(“呼叫卖家测试(:用户名,:条形码,@output)”);
$stmt->bindParam(':username',$username,PDO::PARAM_STR);
$stmt->bindParam(':barcode',$barcode,PDO::PARAM_STR);
$stmt->execute();
$stmt->closeCursor();
$output=$conn->query(“选择@output作为输出”)->fetch(PDO::fetch_ASSOC);
echo“过程返回”。$output['output'].;

您是否尝试绑定它,例如
$stmt->bindParam(“:output”、$output,PDO::PARAM_STR | PDO::PARAM_INPUT_output)。看不,我不知道这是一个选择。我试试看。当我将@output改为:output并添加了您的代码时,它不起作用<代码>语法错误或访问冲突:例程测试的1414 OUT或INOUT参数3不是变量,或者触发器前的新伪变量
可能需要长度参数,如PHP手册示例所示。如果这样不行,我就没主意了,对不起。我怀疑PDO的一部分坏了。也许有趣?