У меня этот код, отлично работает при переходе через один раз.Подготовленный отчет, сбой при повторном использовании
<!-- language: php -->
<?php
$query = "SELECT username FROM users WHERE user_id = ? LIMIT 1";
$stmt = $con->prepare($query) or die(mysqli_error($con));
$stmt->bind_param("s", $user_id);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($username);
?>
Когда я вызываю его в первый раз на странице, он загружается нормально, и данные показывают как следует.
<!-- language: php -->
<?php
// This one works fine.
while ($stmt->fetch()){
echo 'Welcome '.$username;
}
?>
Если я хочу повторно использовать один и тот же запрос где-то в другом месте, он не справляется с ошибками. Я делаю это неправильно? Каков правильный способ повторного использования одного и того же запроса на одной странице, поскольку данные одинаковы, я не хочу повторно запрашивать DB каждый раз.
<!-- language: php -->
<?php
// When re-used somewhere else on the page, it fails. Nothing shows.
while ($stmt->fetch()){
echo 'Welcome '.$username;
}
?>
Присвоить результат переменной и использовать эту переменную. – frz3993
Можете ли вы подробнее рассказать? где в коде должно это происходить? –
Используя '$ result = mysqli_fetch_all ($ result, MYSQLI_ASSOC);', вы можете использовать переменную '$ result' впоследствии. Очень похоже на некоторые ответы ниже. – frz3993