我使用以下代码从 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.
}
}
上面的代码在不调用过程时工作正常。但是当我用来调用一个程序时,我遇到了一个奇怪的结果集问题。当程序只返回一列时,$r1 将被填写。但是当我在结果中有多个列时,提取完成但没有给出结果。在这两个测试中,结果和 bind_result 列的数量是相同的。
我无法理解这种行为的原因。我尝试从程序中获得预期结果的方式有问题吗?