2011-10-28 10 views
1

このコードはエラーを生成します。MySQLi接続メソッドのバグ?

$conn_obj = new MySQLi(); 
$conn_obj->connect($host, $username, $password); 

このコードは動作します:

$conn_obj = new MySQLi($host, $username, $password); 

私の質問は:これは、MySQLのバグのいくつかの並べ替えです、または私はいくつかのプロパティを有効にするのを忘れたのか?

私は問題がこれらのパラメータではないことを知っています。

+0

mysqli_connect - mysqliののエイリアス:: __構築物()、これが正しいとのparamsの順 –

答えて

6

MySQLiには、オブジェクト指向の方法で使用すると、connect()というメソッドはありません。接続はを呼び出すときに__construct()を介して確立されるため、これは予期される動作です。

詳細については、MySQLi::__construct()のドキュメントを参照してください。

手続き(非OO)コードでMySQLiを接続オブジェクトを確立し機能mysqli_connect()は、のように、あります:

$connection = mysqli_connect($host, $user, $pass, $dbname); 

MySQLi::init()経由MySQLiのオブジェクトを設定する場合、あなたはその後、real_connect()を呼び出すことができますオプションを設定した後に返されるオブジェクトのメソッドMySQLiをドキュメントから適応

$mysqli = mysqli_init(); 
if (!$mysqli) { 
    die('mysqli_init failed'); 
} 

if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) { 
    die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'); 
} 

if (!$mysqli->real_connect('localhost', 'my_user', 'my_password', 'my_db')) { 
    die('Connect Error (' . mysqli_connect_errno() . ') ' 
      . mysqli_connect_error()); 
} 
+0

mysqli_connectチェック - mysqliののエイリアス:: __構築物()のhttp:// WWWを.php.net/manual/en/mysqli.connect.php –

+0

@JapanPro上記の私の追加情報を参照してください。 mysqli_connect()は、MySQLiオブジェクト上に存在しない 'connect()'メソッドを呼び出す方法と異なります。 –

+0

$ conn_obj-> connect()はDreamweaverのメソッドとして実際に存在するので、Dreamweaverの問題でなければなりませんが、常にfalseになります。また、mysqli_connect()が手続き型関数として動作することも理解していますが、それはまったく別のケースです。説明をありがとう。 –

関連する問題