Я пытаюсь динамически связать параметры mysql_stmt и получить результат в ассоциативном массиве. Я нашел это сообщение здесь, в stackoverflow, где Эмбер отправила ответ со следующим кодом:
Исходное сообщение: m пытается динамически связать параметры mysql_stmt и получить результат в ассоциативном массиве. Я нашел это сообщение здесь, в stackoverflow, где Эмбер отправила ответ со следующим кодом:
Исходное сообщение: m пытается динамически связать параметры mysql_stmt и получить результат в ассоциативном массиве. Я нашел это сообщение здесь, в stackoverflow, где Эмбер отправила ответ со следующим кодом:
Исходное сообщение: Как создать правильный класс расширения mysqli с подготовленными операторами?
«Предполагая, что вы действительно хотите написать свою собственную версию (в отличие от использования одной из существующих библиотек, предложенных другими ответами - и это хорошие варианты тоже) ...
Вот несколько функций, которые могут оказаться полезными для изучения. Первая позволяет вам привязать результаты запроса к ассоциативному массиву, а вторая позволяет передавать два массива , один - это упорядоченный массив ключей, а другой - ассоциативный массив данных для этих ключей, и эти данные связаны в подготовленный оператор: «
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);
}
function stmt_bind_params($stmt, $fields, $data) {
// Dynamically build up the arguments for bind_param
$paramstr = '';
$params = array();
foreach($fields as $key)
{
if(is_float($data[$key]))
$paramstr .= 'd';
elseif(is_int($data[$key]))
$paramstr .= 'i';
else
$paramstr .= 's';
$params[] = $data[$key];
}
array_unshift($params, $stmt, $paramstr);
// and then call bind_param with the proper arguments
call_user_func_array('mysqli_stmt_bind_param', $params);
}
Я попытался изучить код, чтобы понять, что он делает, и я сделал вторую функцию работают правильно, но я не знаю, что мне делать, чтобы использовать первую функцию.Как мне использовать его для получения массива, похожего на mysqli_result :: fetch_assoc ()?
Я хочу иметь возможность использовать результат таким же образом, как вы это делали раньше:
while ($row = mysql_fetch_array($result)){
echo $row['foo']." ".$row['bar'];
}
Пожалуйста, помогите мне сделать некоторые прогресс с этим :)