MySQL to MySQLi connection problems

假装没事ソ 提交于 2019-12-26 14:46:09

问题


I recently upgraded my server and now I'm trying to convert everything from MySQL to MySQLi and I'm having some difficulty.

I keep getting this error:

PHP Warning:  mysqli_select_db() expects exactly 2 parameters

Can someone guide me in the right direction please and thanks!!!

Here is my old code that is in a PHP class:

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:


@mysqli_query($query, $this->link) the connection comes first here and not second; the order is different in using the mysqli_ API as opposed to the mysql_ API. Plus, remove @ during testing/development, it's an error suppressor.

mysqli_select_db($db); requires a db connection and as the first argument.

It's all in the manuals:

  • http://php.net/manual/en/mysqli.query.php
  • http://php.net/manual/en/mysqli.select-db.php

Note: You may potentially have a variable scope issue, so if that is the case, you will need to pass the connection inside the methods.

Use error handling:

  • http://php.net/manual/en/mysqli.error.php
  • http://php.net/manual/en/function.error-reporting.php


来源:https://stackoverflow.com/questions/47563689/mysql-to-mysqli-connection-problems

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!