为什么mysqli_fetch_all()不能与一个结果行一起使用?

时间:2017-07-20 01:05:47

标签: php mysqli resultset

我对使用mysqli_fetch_all()mysqli_fetch_array获得的结果感到困惑。

我编写了一个函数来从主键表中获取与另一个表的外键匹配的数组,其中$field是主键表中的所需字段,而{FK表中是$property

function getProp($table,$field,$property,$cnn){
    $findRow = "SELECT * FROM $table WHERE $field='$property'";
    $res = mysqli_query($cnn,$findRow);
    if ($res) {
        $row = mysqli_fetch_array($res,MYSQLI_ASSOC);
        return $row;    
    } else {
        echo "we couldn't find the row that matched $field";
    }
}

现在的想法是在主键表中只能找到一个匹配项。所以我认为用mysql_fetch_array()替换mysqli_fetch_all()会没问题。但是,当我调用这样的函数时:

$profileRow = getProp('profile','id', $runner_id, $cnn);
$profileRow['question_text'];
$profileRow['avatar']`

我收到以下错误:

  

未定义的索引:头像

我将不胜感激任何帮助。我查看了PHP手册,但不明白为什么这些MySQL操作会在我的情况下产生不同的结果。

编辑 -

感谢您的帮助,但我特意询问导致错误的原因。请向我解释,好像我是一个六岁的孩子 - 大多数技术解释都在我头上。例如,这是什么意思?:

  

mysqli_fetch_all()仅应用于将获取的结果集发送到另一层进行处理的情况。

0 个答案:

没有答案