1

我正在尝试调用插入新记录并返回最后一个 id 的存储过程。当我调用该页面时,我收到上述错误,参考第 6 行。

$Str = 'Hello world';
$parentId = 1;

$lastId = 0;
$statement = $con->prepare('call createRecordReturnsId( ? , ? )');
$statement->bind_param("si",$Str,$parentId);
$statement->bind_result($lastId);
$statement->execute();
4

1 回答 1

1

我只需要将绑定语句(第 7 行)移到执行语句(第 8 行)之后

以下顺序有效:

$Str = 'Hello world';
$parentId = 1;
 
$lastId = 0;
$statement = $con->prepare('call createRecordReturnsId( ? , ? )');
$statement->bind_param("si",$Str,$parentId);
$statement->execute();
$statement->bind_result($lastId);

正确的操作顺序很重要,因为在调用存储过程时,mysqli 不知道在语句执行之前将返回的变量数量。

于 2012-05-29T01:57:52.533 回答