2017-11-29 13 views
-2

最近私のサーバーをアップグレードしましたが、今は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); 
    } 
} 
+2

別のラッパークラスを作成しないでください。 MySQLiはすでにOOPインタフェースを提供しています。それを直接使用してください。また、PHPランタイムによって '__destruct()'で自動的に呼び出されるため、手動で "disconnect"を呼び出す必要がなくなります。ああ...そしてエラー抑制を悪用するのを止める。 –

+0

接続はmysqli –

+0

で始まり、mysqli_select_db()はdb接続が必要です –

答えて

2

@mysqli_query($query, $this->link)接続が最初にここではなく二来ます。 mysql_ APIとは対照的に、mysqli_ APIの使用順序が異なります。さらに、テスト/開発中に@を削除すると、エラーサプレッサーになります。

mysqli_select_db($db);には、最初の引数としてdb接続が必要です。

これは、マニュアルのすべてです:

注:あなたが潜在的に変数のスコープの問題を有することができるので、その場合は、あなたが渡す必要がありますメソッド内の接続。

使用エラー処理: