Mysql_fetch_array () возвращает 'предоставленный аргумент не является допустимым ресурсом результата MySQL'

Я пробую следующий код:

<?php

    $link = mysql_connect('localhost', 'root', 'geheim');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';



    $query = "SELECT * FROM Auctions";
    $result = mysql_query($query);

    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
        foreach($row as $field=>$value)
        {
            echo "$field: {$value} <br />";
        }
    }
    mysql_close($link);

?> 

И получите эту ошибку:

Warning: mysql_fetch_array(): supplied argument is not a
    valid MySQL result resource in
    C:\Programme\EasyPHP 2.0b1\www\test.php on line 14

Что мне не хватает?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
1 040
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Вам что-нибудь возвращают? Если результатов не найдено, mysql_query возвращает FALSE.

Проверьте это перед запуском fetch_array.

Если результатов не найдено, он все равно возвращает ресурс, но в нем нет результатов. mysql_query() возвращает false только в случае ошибки.

Lucas Oman 31.10.2008 16:25

$ query = "ВЫБРАТЬ * ИЗ Аукциона";

$ result = mysql_query ($ query) или умереть (mysql_error ());

так что вы увидите ошибку

Возможно, ваш запрос MySQL не соответствует ни одной строке в базе данных.

Проверьте возвращаемое значение mysql_query (), которое возвращает «ресурс» в случае успеха и «ложь» в случае неудачи.

$query = "SELECT * FROM Auctions"; 
$result = mysql_query($query);

if ($result !== false) {
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) { 
        foreach ($row as $field=>$value) { 
            echo $field . ':' . $value
        }
    }
} else {
    // query returned 0 rows
}

Как также предлагали другие, вы можете использовать mysql_error (), чтобы посмотреть, возвращает ли запрос какие-либо ошибки mySQL.

mysql_query возвращает false только при фактической ошибке. Пустой набор результатов не является ошибкой.

KernelM 31.10.2008 16:11
Ответ принят как подходящий

Вы не выбрали базу данных - используйте mysql_select_db()

Это будет примерно так:

<?php
    $link = mysql_connect('localhost', 'root', 'geheim');
    if (!$link) {
        die('Could not connect: ' . mysql_error());
    }
    echo 'Connected successfully';

    $db_selected = mysql_select_db('foo', $link);
    if (!$db_selected) {
        die ('Error selecting database: '. mysql_error());
    }
    echo 'Using database successfully';

    $query = "SELECT * FROM Auctions";
    $result = mysql_query($query);
    while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
        foreach($row as $field=>$value) {
            echo "$field: {$value} <br />";
        }
    }
    mysql_close($link);
?> 

Другие вопросы по теме