CREATE PROCEDURE `para_out`(out id int)
BEGIN
SELECT 5 into id;
SELECT id;
END
$stmt = $dbh->prepare("CALL para_out(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_INT, 8);// call the stored procedure
if($stmt->execute()==false)
print_r($stmt->errorInfo());
else
print "procedure returned $return_value\n";
//返回
Array
(
[0] => 42000
[1] => 1414
[2] => OUT or INOUT argument 1 for routine test.para_out is not a variable or NEW pseudo-variable in BEFORE trigger
)
BEGIN
SELECT 5 into id;
SELECT id;
END
$stmt = $dbh->prepare("CALL para_out(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_INT, 8);// call the stored procedure
if($stmt->execute()==false)
print_r($stmt->errorInfo());
else
print "procedure returned $return_value\n";
//返回
Array
(
[0] => 42000
[1] => 1414
[2] => OUT or INOUT argument 1 for routine test.para_out is not a variable or NEW pseudo-variable in BEFORE trigger
)
改成
$stmt = $dbh->prepare("CALL para_out(@?)");
试试