MySQL到MySQLi的连接问题

时间:2017-11-29 23:41:23

标签: php mysql mysqli

我最近升级了我的服务器,现在我试图将所有内容从MySQL转换为MySQLi,而且我遇到了一些困难。

我一直收到这个错误:

PHP Warning:  mysqli_select_db() expects exactly 2 parameters

有人可以指导我正确的方向,谢谢!

这是我在PHP类中的旧代码:

class Db {
    function __construct($app = ''){
        // Get the main settings from the array we just loaded
        $host = 'localhost';
        $user = 'username';
        $pass = 'password';
        $db = 'db_name';
        // Connect to the database
        $this->link = mysqli_connect($host, $user, $pass);
        mysqli_select_db($db);
        register_shutdown_function(array(&$this, 'close'));
    }
    function query($query){
        if($query) return @mysqli_query($query, $this->link);
        else return false;
    }
    function fetchArray($result){
        if($result) return mysqli_fetch_array($result, mysqli_ASSOC);
        else return false;
    }
    function queryFetch($query){
        if($query) $result = mysqli_query($query, $this->link);
        if($result)
            return mysqli_fetch_array($result, mysqli_ASSOC);
        else
            return false;
    }
    function close(){
        mysqli_close($this->link);
    }
}

1 个答案:

答案 0 :(得分:2)

@mysqli_query($query, $this->link)这里的连接首先出现而不是第二个;使用mysqli_ API而不是mysql_ API的顺序不同。另外,在测试/开发过程中删除@,它是一个错误抑制器。

mysqli_select_db($db);需要数据库连接并作为第一个参数。

这些都在手册中:

注意:您可能会遇到可变范围问题,因此如果是这种情况,则需要在方法内部传递连接。

使用错误处理: