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

bind ステートメント (7 行目) を execute ステートメント (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 に答える