为什么我在查询成功后从mysqli_result :: free获得致命错误?

时间:2012-06-30 09:19:09

标签: php mysql

为什么此函数成功执行数据库查询,但仍导致致命错误:在非对象上调用成员函数free()

private function record_login()
{
    $user_id = $this->user_id;
    $time = time();
    $ip_address = $this->ip_address;

    $link = $this->db_connect();

    $query = "INSERT INTO login_log (user_id, login_time, ip_address)
                    VALUES ('$user_id', '$time', '$ip_address')";

    $result = $link->query($query);

    if (!$result) {
        $this->log_error(); // This function does NOT get called
    }

    $result->free();
    $link->close();     
    return true;
}

编辑:
这是上面的db_connect()函数:

private function db_connect() 
{
    $link = new mysqli('localhost', 'my_user', 'my_password', 'my_db');
    if(mysqli_connect_errno()) { 
        die(mysqli_connect_error());
    }  
    else {
        return $link;
    }
}

1 个答案:

答案 0 :(得分:3)

Select-query返回资源,insert-queries不返回。 你只能免费获得资源