致命错误:在非对象上调用成员函数get_results()

时间:2014-10-06 07:18:31

标签: wordpress plugins

我正在使用革命滑块插件。我在我的一个前端表单上遇到了错误。在该插件中有一个名为db.class.php的文件,我收到此错误。这是该文件中的代码..

 <?php

class UniteDBRev{

    private $wpdb;
    private $lastRowID;

    /**
     * 
     * constructor - set database object
     */
    public function __construct(){
        global $wpdb;
        $this->wpdb = $wpdb;
    }

    /**
     * 
     * throw error
     */
    private function throwError($message,$code=-1){
        UniteFunctionsRev::throwError($message,$code);
    }

    //------------------------------------------------------------
    // validate for errors
    private function checkForErrors($prefix = ""){

        if(mysql_error()){
            $query = $this->wpdb->last_query;
            $message = $this->wpdb->last_error;

            if($prefix) $message = $prefix.' - <b>'.$message.'</b>';
            if($query) $message .=  '<br>---<br> Query: ' . $query;

            $this->throwError($message);
        }
    }


    /**
     * 
     * insert variables to some table
     */
    public function insert($table,$arrItems){
        global $wpdb;

        $this->wpdb->insert($table, $arrItems);
        $this->checkForErrors("Insert query error");

        $this->lastRowID = $wpdb->insert_id;

        return($this->lastRowID);
    }

    /**
     * 
     * get last insert id
     */
    public function getLastInsertID(){
        global $wpdb;

        $this->lastRowID = $wpdb->insert_id;
        return($this->lastRowID);           
    }


    /**
     * 
     * delete rows
     */
    public function delete($table,$where){

        UniteFunctionsRev::validateNotEmpty($table,"table name");
        UniteFunctionsRev::validateNotEmpty($where,"where");

        $query = "delete from $table where $where";

        $this->wpdb->query($query);

        $this->checkForErrors("Delete query error");
    }


    /**
     * 
     * run some sql query
     */
    public function runSql($query){

        $this->wpdb->query($query);         
        $this->checkForErrors("Regular query error");
    }


    /**
     * 
     * insert variables to some table
     */
    public function update($table,$arrItems,$where){

        $response = $this->wpdb->update($table, $arrItems, $where);
        if($response === false)
            UniteFunctionsRev::throwError("no update action taken!");

        $this->checkForErrors("Update query error");

        return($this->wpdb->num_rows);
    }


    /**
     * 
     * get data array from the database
     * 
     */
    public function fetch($tableName,$where="",$orderField="",$groupByField="",$sqlAddon=""){
              global $wpdb;
        $query = "select * from $tableName";
        if($where) $query .= " where $where";
        if($orderField) $query .= " order by $orderField";
        if($groupByField) $query .= " group by $groupByField";
        if($sqlAddon) $query .= " ".$sqlAddon;

        $response = $this->wpdb->get_results($query,ARRAY_A);

        $this->checkForErrors("fetch");

        return($response);
    }

    /**
     * 
     * fetch only one item. if not found - throw error
     */
    public function 
       fetchSingle($tableName,$where="",$orderField="",$groupByField="",$sqlAddon=""){
        $response = $this->fetch($tableName, $where, $orderField, $groupByField, $sqlAddon);
        if(empty($response))
            $this->throwError("Record not found");
        $record = $response[0];
        return($record);
    }

    /**
     * 
     * escape data to avoid sql errors and injections.
     */
    public function escape($string){
        $string = esc_sql($string);
        return($string);
    }

 }

 ?>

我在获取功能中遇到此错误。我尝试过使用全局$ wpdb。但没有运气。我已经加载了wp-load.php,但没有运气。

0 个答案:

没有答案