我对使用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()仅应用于将获取的结果集发送到另一层进行处理的情况。