Я изучаю подготовленные операторы с помощью mysqli, и у меня возникают проблемы с выяснением, откуда берется переменная $row
в следующем коде, первоначально опубликованном hamidhossain в комментарии к 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.