次のコードを使用して、PHPのSQLからデータを取得します
if ($q=$db->prepare("call p_test(?)")){
$q->bind_param('s',$token);
$q->execute();
$q->bind_result($r1, $r2, $r3);
if ($q->fetch()){
echo $r1.
}
}
上記のコードは、プロシージャを呼び出さない場合は正常に機能します。しかし、プロシージャを呼び出すために使用すると、結果セットに奇妙な問題が発生します。プロシージャが1つの列のみを返す場合、$r1が入力されます。しかし、結果に複数の列がある場合、フェッチは実行されますが、結果は表示されません。どちらのテストでも、result列とbind_result列の数は同じです。
そのような行動の理由がわかりません。手順から期待される結果を得ようとする方法に問題がありますか?