使用 MySQLi 和 PHP 检索过程结果


retrieving procedure result using MySQLi and PHP

我使用以下代码在 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.
    }
}

上面的代码在不调用过程时工作正常。 但是当我用来调用一个过程时,我面临着结果集的一个奇怪问题。当该过程返回时,将只填写一列$r 1。但是当我在结果中有不止一列时,提取已完成但没有给出结果。在这两个测试中,结果和bind_result列的数量是相同的。

我不明白这种行为的原因。 我尝试从手术中获得预期结果的方式是否出错?

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