Php mysql结果检查不正确?

Php mysql结果检查不正确?,php,mysql,associations,fetch,Php,Mysql,Associations,Fetch,为什么我还得到一份工作 警告:mysql_fetch_assoc()希望参数1是资源,字符串在 使用以下功能时: public function getRowsWhere($table, $order_by, $where_field, $where_match, $limit_start = 0, $limit_end = 1) { // query Table $query_string = "SELECT * FROM $table WHERE $where_field=

为什么我还得到一份工作

警告:mysql_fetch_assoc()希望参数1是资源,字符串在

使用以下功能时:

public function getRowsWhere($table, $order_by, $where_field, $where_match, $limit_start = 0, $limit_end = 1) {

    // query Table
    $query_string = "SELECT * FROM $table WHERE $where_field='$where_match' ORDER BY '$order_by' DESC LIMIT $limit_start, $limit_end";

    // run query
    $sql    = new DBQuery($this->database);
    $result = $sql->prepareQuery($query_string);

    if ($result) {
       // initialize results array
        $match_array = [];

        // iterate through array and place results in an array at row index
        $r = 0;
        while ($row = mysql_fetch_assoc($result)) {
            $row_array = [];
            $c       = 0;
            while ($c < mysql_num_fields($result)) {
                $col                   = mysql_fetch_field($result, $c);
                $row_array[$col->name] = $row[$col->name];
                $c++;
            }
            $match_array[$r] = $row_array;
            $r++;
        }
    }

    // return data
    return $match_array;
}
根据请求:DBQuery类。这些都是相当基本的东西

<?php

class DbQuery extends DbMan {

    /**
     *   PARAMETERS
     *
     * ^ @param array  $database            -> database connection information
     * --------------------------------------------------------------------------
     */
    protected $database;

    /**
     * --------------------------------------------------------------------------
     *   PUBLIC
     *   __construct ()
     * = set database object to use
     *
     * ^ @param string  $database           -> database connection information
     * --------------------------------------------------------------------------
     *
     */
    public function __construct($database) { $this->database = $database; }

    /**
     * --------------------------------------------------------------------------
     *   PUBLIC
     *   prepareQuery ()
     * = checks Sql, executes query to return requested data set
     *
     * ^ @param  string  $query_request     -> query string
     * ~ @return object  $result_dataset    -> result data set
     * --------------------------------------------------------------------------
     *
     */
    public function prepareQuery($query_request) {

        // retrieve result dataset
        $result_dataset = $this->executeQuery($query_request);

        // return result data set
        return $result_dataset;
    }
}

您正在关闭此处的连接:

    // close database connection
    mysql_close($this->mysql_connection);

    // Check to make sure data is returned
    if (mysql_num_rows($query_result)) {
        // return result data set
        return $query_result;
    }
    else {
        // return nothing
        return "No Data Available";
    }

这意味着
mysql\u num\u rows
返回
FALSE
,因此返回字符串
No Data Available
,因此
mysql\u fetch\u assoc()希望参数1是resource,string gived
error.

在新代码中。它们不再得到维护,而是在使用。看到红色的盒子了吗?学习准备好的语句,然后使用or。您似乎使用了某种库,因为
DBQuery
不是一个普通的PHP类。您应该提供更多详细信息。什么是
$sql->prepareQuery
?在我看来,您似乎还没有执行查询。
prepareQuery
做什么?@obmon如果你不能告诉我们更多关于这门课的信息,我们也帮不了你。我们需要那个类“
prepareQuery()
方法返回什么的文档。谢谢。我想我现在就忽略这个错误,稍后再从mysql切换。
<?php
class DbMan {

    /**
     *   PARAMETERS
     *
     * ^ @param array   $database           -> database connection information
     *   @param object  $mysql_connection   -> database connection object
     *   @param object  $mysql_connection   -> database object
     * --------------------------------------------------------------------------
     */
    protected $database;
    private   $mysql_connection;
    private   $mysql_db;

    /**
     * --------------------------------------------------------------------------
     *   PUBLIC
     *   __construct ()
     * = empty constructor
     *
     * ^ @param        ->
     * --------------------------------------------------------------------------
     *
     */
    public function __construct() { }

    /**
     * --------------------------------------------------------------------------
     *   PROTECTED
     *   dbConnect ()
     * = open connection to MySql and connect to database
     *
     * ^ @param        ->
     * --------------------------------------------------------------------------
     *
     */
    protected function dbConnect() {

        // connect to MySQL
        $this->mysql_connection = mysql_connect($this->database['hostname'], $this->database['username'], $this->database['password'])
            or die('Unable to connect to MySQL : ' . mysql_error());

        // connect to database
        $this->mysql_db = mysql_select_db($this->database['database'], $this->mysql_connection)
            or die('Unable to connect to database : ' . mysql_error());
    }

    /**
     * --------------------------------------------------------------------------
     *   PROTECTED
     *   executeQuery ()
     * = run query on database
     *
     * ^ @param  string  $query          -> sql statement string
     * ~ @return result  $query_result   -> result of query
     * --------------------------------------------------------------------------
     *
     */
    protected function executeQuery($query) {

        // open connection to the database
        $this->dbConnect();

        // run sql query on database
        $query_result = mysql_query($query)
            or die('Could not run query on table:<br />' . mysql_error());

        // close database connection
        mysql_close($this->mysql_connection);

        // Check to make sure data is returned
        if (mysql_num_rows($query_result)) {
            // return result data set
            return $query_result;
        }
        else {
            // return nothing
            return "No Data Available";
        }
    }
}
    // close database connection
    mysql_close($this->mysql_connection);

    // Check to make sure data is returned
    if (mysql_num_rows($query_result)) {
        // return result data set
        return $query_result;
    }
    else {
        // return nothing
        return "No Data Available";
    }