BelStudent
целеустремлённый чел
Подготовленные запросы в mysqli
Столкнулся с проблемой, что и в 2 комменте на http://ru.php.net/manual/en/mysqli-stmt.fetch.php , а точнее:
А точнее вот эти 2 строки:
Суть первой, что мы создаём массив с ключом $field->name и сохраняем ссылку на этот элемент в $fields.
2-ая строка биндует результат с ссылками, по сути (ИМХО), это тоже самое что биндовать данные снапрямую с элементами массива.
Но получается (как написано в первой english цитате) при
...получается целый массив ссылающийся на одну и ту же одну запись. Я уже мозг словал но всё равно считаю, что должен быть массив различных элементов, а на самом деле оно не так.
Может кто объяснит мне, реально что-то не понимаю.
Столкнулся с проблемой, что и в 2 комменте на http://ru.php.net/manual/en/mysqli-stmt.fetch.php , а точнее:
Потом ещё пытался въехать в код (3-ий коммент от начала):I tried the mentioned stmt_bind_assoc() function, but somehow, very strangely it doesn't allow the values to be written in an array! In the while loop, the row is fetched correctly, but if I write $array[] = $row;, the array will be filled up with the last element of the dataset... Unfortunately I couldn't find a solution.
Код:
function stmt_bind_assoc (&$stmt, &$out) {
$data = mysqli_stmt_result_metadata($stmt);
$fields = array();
$out = array();
$fields[0] = $stmt;
$count = 1;
while($field = mysqli_fetch_field($data)) {
$fields[$count] = &$out[$field->name];
$count++;
}
call_user_func_array(mysqli_stmt_bind_result, $fields);
}
Код:
$fields[$count] = &$out[$field->name];
...
сall_user_func_array(mysqli_stmt_bind_result, $fields);
2-ая строка биндует результат с ссылками, по сути (ИМХО), это тоже самое что биндовать данные снапрямую с элементами массива.
Но получается (как написано в первой english цитате) при
Код:
while ($stmt->fetch()) {
$array[] = $row;
}
Может кто объяснит мне, реально что-то не понимаю.