0

なぜこの関数はデータベース クエリを正常に実行するのに、依然としてFatal error: Call to a member function free() on a non-object を返すのですか?

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;
    }
}
4

1 に答える 1

3

Select-querys はリソースを返しますが、insert-querys は返しません。リソースを解放することしかできません

于 2012-06-30T09:22:14.793 に答える