0

我使用以下代码从 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 列的数量是相同的。

我无法理解这种行为的原因。我尝试从程序中获得预期结果的方式有问题吗?

4

1 回答 1

1

您的过程可能返回多个结果集。您可能需要使用类似next_result的东西(至少在 mysqli 中是这样的)。

于 2013-01-30T14:47:10.057 回答