Php错误帮助:mysql_fetch_assoc()


Php error help : mysql_fetch_assoc()

警告:mysql_fetch_assoc()要求参数1为资源,给定为布尔值

我的php代码是:

function getResourceLevel($vid) {
        $q = "SELECT * from " . TB_PREFIX . "fdata where vref = $vid";
        $result = mysql_query($q, $this->connection);
        return mysql_fetch_assoc($result);
    }

请帮助我

看起来mysql_query()返回了false

这可能是由于mysql语法中的错误,或者由于缺乏访问您请求的数据库表的权限。

在任何一种情况下,您都可以尝试调用mysql_error(),它将返回一个字符串,其中包含对上一个mysql函数出现问题的最佳猜测。

编辑:正如一些评论中提到的,不鼓励使用mysql_*函数,所以如果你有机会,你应该更新你的代码,使用mysqli或PDO mysql扩展。更好的是,使用类似ZendDB的东西将您从数据库API移动一层。

试着回显您的查询,并在一些mysql查询浏览器中运行,检查它是否给出了所需的结果。

function getResourceLevel($vid) {
    $q = "SELECT * from " . TB_PREFIX . "fdata where vref = $vid";
    echo $q;
    $result = mysql_query($q, $this->connection);
    return ($result) ? mysql_fetch_assoc($result) : false;
}

试试这个

function getResourceLevel($vid) {
        $q = "SELECT * from " . TB_PREFIX . "fdata where vref = $vid";
        $result = mysql_query($q, $this->connection) || die(mysql_error());
        return mysql_fetch_assoc($result);
    }

请注意|| die(mysql_error())语句。

这将停止代码并将返回的sql错误显示为false。

希望这能有所帮助。