我正在学习使用mysqli的预备语句,而我在查看变量$row
来自以下代码的位置时遇到了问题,最初由hamidhossain在comment on the mysqli_bind_result
手册页中发布(请参阅链接完整的代码)。
if ($stmt = $mysqli->prepare("SELECT * FROM sample WHERE t2 LIKE ?")) {
$tt2 = '%';
$stmt->bind_param("s", $tt2);
$stmt->execute();
$meta = $stmt->result_metadata();
while ($field = $meta->fetch_field())
{
# Where does $row come from?
$params[] = &$row[$field->name];
}
call_user_func_array(array($stmt, 'bind_result'), $params);
while ($stmt->fetch()) {
foreach($row as $key => $val)
{
$c[$key] = $val;
}
$result[] = $c;
}
$stmt->close();
}
在完整代码中,第一次提到变量$ row的行是:
$params[] = &$row[$field->name];
这个$ row变量来自哪里?我知道您必须使用call_user_func_array()
,但我不明白变量$ row的来源。