Vene4ka
@Vene4ka
Учусь программировать :>

За что ошибка mysqli_fetch_assoc() expects parameter 1 to be mysqli_result?

код:
//Выше есть всё, что нужно писать в базу.
$link = mysqli_connect($host, $user, $password, $database);

function check_class ($dog_id) {
    $queryy = mysqli_query($link, "SELECT * FROM `dogs` WHERE `dog_id` = 7");
    $fetchh = mysqli_fetch_assoc($queryy);
    echo $fetchh[dog_height];
}

Раньше как-то без функций работал, может это всё из-за области видимости переменной?
Ну вообщем странно всё это как-то. Помогите пожалуйста.
  • Вопрос задан
  • 177 просмотров
Решения вопроса 2
FanatPHP
@FanatPHP
Чебуратор тега PHP
error_reporting(E_ALL);
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$link = mysqli_connect($host, $user, $password, $database);
$link->set_charset("utf8mb4");

function check_class ($link, $dog_id) {
    $stmt = $link->prepare("SELECT dog_height FROM `dogs` WHERE `dog_id` = ?");
    $stmt->bind_param("s", $dog_id);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    return $row['dog_height'];
}
Ответ написан
@eandr_67
web-программист (*AMP, Go, JavaScript, вёрстка).
Это значит, что при выполнении запроса произошла ошибка. И надо проверять, что именно содержит $queryy.
Но вызвана эта ошибка непониманием области видимости переменных.
function check_class ($dog_id) {
    global $link; // чтобы внутри функции получить доступ к глобальной переменной $link
    $queryy = mysqli_query($link, "SELECT * FROM `dogs` WHERE `dog_id` = 7");
    if (!$queryy) { // если ошибка - выводим информацию о её причине
        var_dump(mysqli_error($link));
    }
    $fetchh = mysqli_fetch_assoc($queryy);
    echo $fetchh['dog_height']; // ключ - строка; вариант [dog_height] - доисторический говнокод
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы