为了账号安全,请及时绑定邮箱和手机立即绑定

警告:mysql_fetch_array():提供的参数不是有效的MySQL结果

警告:mysql_fetch_array():提供的参数不是有效的MySQL结果

吃鸡游戏 2019-05-29 16:52:35
警告:mysql_fetch_array():提供的参数不是有效的MySQL结果我在尝试运行时遇到错误:<?phprequire_once('includes/DbConnector.php');$connector = new DbConnector();$result = $connector->query('SELECT title,content FROM staff_vacancies ORDER BY ordering LIMIT 0,100');// Get an array containing the results.// Loop for each item in that arraywhile ($row = $connector->fetchArray($result)){echo $row['title'].'</h3>';echo $row['content'];}?>我有一个链接文件:DbConnector.php:<?php////////////////////////////////////////////////////////////////////////////////////////// Class: DbConnector// Purpose: Connect to a database, MySQL version///////////////////////////////////////////////////////////////////////////////////////require_once 'SystemComponent.php';class DbConnector extends SystemComponent {var $theQuery;var $link;//*** Function: DbConnector, Purpose: Connect to the database ***function DbConnector(){    // Load settings from parent class    $settings = SystemComponent::getSettings();    // Get the main settings from the array we just loaded    $host = $settings['dbhost'];    $db = $settings['dbname'];    $user = $settings['dbusername'];    $pass = $settings['dbpassword'];    //the settings    $host = 'localhost';    $db = 'xxx';    $user = 'xxx';    $pass = 'xxx';    // Connect to the database    $this->link = mysql_connect($host, $user, $pass);    mysql_select_db($db);    register_shutdown_function(array(&$this, 'close'));}//*** Function: query, Purpose: Execute a database query ***function query($query) {    $this->theQuery = $query;    return mysql_query($query, $this->link);}//*** Function: getQuery, Purpose: Returns the last database query, for debugging ***function getQuery() {    return $this->theQuery;}//*** Function: getNumRows, Purpose: Return row count, MySQL version ***function getNumRows($result) {    return mysql_num_rows($result);}//*** Function: fetchArray, Purpose: Get array of query results ***function fetchArray($result) {    return mysql_fetch_array($result);}有谁知道问题是什么?
查看完整描述

3 回答

?
RISEBY

TA贡献1856条经验 获得超5个赞

您的查询必须有一个问题,导致$ result成为无效资源。

尝试在运行查询的行之后检查mysql_error()

编辑:

实际上,我会将您的DBConnector类函数query()更改为类似以下内容,以便在查询错误时抛出可识别的错误:

function query($query) {
    $this->theQuery = $query;
    $queryId = mysql_query($query,$this->link);
    if (! $queryId) {
        throw new Exception(mysql_error().".  Query was:\n\n".$query."\n\nError number: ".mysql_errno();
    }
    return $queryId;}


查看完整回答
反对 回复 2019-05-29
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

此错误表示您的查询失败。mysql_query()如果发生错误则返回false,然后将false传递给mysql_fetch_array()触发错误消息的false 。

由于缺少/错误的表或字段,您的查询可能会失败。要查看详细错误,请打印出mysql_error()的结果。

mysql_*库已弃用。建议升级到MySQLiPDO或PDO。


查看完整回答
反对 回复 2019-05-29
?
侃侃无极

TA贡献2051条经验 获得超10个赞

// Load settings from parent class

$settings = SystemComponent::getSettings();


// Get the main settings from the array we just loaded

$host = $settings['dbhost'];

$db = $settings['dbname'];

$user = $settings['dbusername'];

$pass = $settings['dbpassword'];


//the settings

$host = 'localhost';

$db = 'xxx';

$user = 'xxx';

$pass = 'xxx';

你的意思是重新分配连接变量吗?或者是你忘记取出几行存根代码?或者只是一个示例来显示$ settings包含的内容?



查看完整回答
反对 回复 2019-05-29
  • 3 回答
  • 0 关注
  • 942 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信