调用一个方法用mysqli连接到数据库

Hi i am trying to move from MySQL to MySQLi in my PHP script, i had this system class with the function that connects to the database that i call whenever i need, with a simple method like this:

Sys::database_connect();

the actual code of the function is:

function database_connect(){
    require 'conf.php';//configuration file with database variables (sql_)
    mysql_connect($sql_serv, $sql_user, $sql_pw) OR die('ERRO!!! não ligou a base de dados');
    mysql_select_db($sql_bd);
}

after calling the function i can query the database without problem.

But I cant do the same with mysqli if I put this in the sys class:

function database_connect(){
    require 'conf.php';

    $mysqli = new mysqli($sql_serv, $sql_user, $sql_pw, $sql_bd);
        if (mysqli_connect_errno()) {
        printf("Ligação à Base de dados falhou: %s
", mysqli_connect_error());
        exit();
    }
}

When I call Sys::database_connect();

it connects to the database but i can't query has i used to what i would like would be a simple method as I have done with normal MySQL, if somebody can explain what am I doing wrong or why exactly I cannot do it like that...

Thank you in advance; Fernando Andrade.

Your later queries have to use the mysqli connection identifier, you create when connecting to the database. So save this to a property of your system class and use it later on.

function database_connect(){
    require 'conf.php';

    $mysqli = new mysqli($sql_serv, $sql_user, $sql_pw, $sql_bd);
    if (mysqli_connect_errno()) {
        printf("Ligação à Base de dados falhou: %s
", mysqli_connect_error());
        exit();
    }

    Sys::$dbConn = $mysqli;
}

and then later on

function query( $sql ) {
    Sys::$dbConn->query( $sql );
    // error handling etc.
}

I wrote an extend for the mysqli database class

class database extends mysqli {
    function __construct() {
        parent::__construct('host', 'user', 'password', 'database');
        if(mysqli_connect_error()) {
            die('Connect error ('.mysqli_connect_errno().')'.mysqli_connect_error());
        }
        parent::query("SET NAMES 'utf8'");
}

function query($query) {
        $result = parent::query($query);
        if(!$result) {
            echo "<strong>MySQL error</strong>: ".$this->error."<br />QUERY: ".$query;
            die();
        }
        if(!is_object($result)) {
            $result = new mysqli_result($this);
        }
        return $result;
    }
}

So connecting to database is $db = new database() Executing a query is $db->query(YOUR QUERY);