mysql_fetch_array()返回'提供的参数不是有效的MySQL结果资源'

问题描述 投票:0回答:4

我正在尝试以下代码:

<?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 mysql
4个回答
9
投票

您尚未选择数据库 - 请使用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);
?> 

2
投票

您的MySQL查询可能与数据库中的任何行都不匹配。

检查mysql_query()的返回值,该值在成功时返回“resource”,在失败时返回“false”。

$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错误


1
投票

$ query =“SELECT * FROM Auctions”;

$ result = mysql_query($ query)或die(mysql_error());

所以你会看到错误


0
投票

你有什么回报吗?如果未找到结果,则mysql_query返回FALSE。

在运行fetch_array之前检查一下。

© www.soinside.com 2019 - 2024. All rights reserved.