downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mysqli::real_escape_string> <mysqli::query
Last updated: Fri, 13 Nov 2009

view this page in

mysqli::real_connect

mysqli_real_connect

(PHP 5)

mysqli::real_connect -- mysqli_real_connectmysql サーバとの接続をオープンする

説明

オブジェクト指向型(メソッド)

bool mysqli::real_connect ([ string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

手続き型

bool mysqli_real_connect ( mysqli $link [, string $host [, string $username [, string $passwd [, string $dbname [, int $port [, string $socket [, int $flags ]]]]]]] )

MySQL データベースエンジンとの接続を確立します。

この関数は、以下の点で mysqli_connect() とは異なります。

  • mysqli_real_connect() は、 mysqli_init() が作成した接続オブジェクトを必要とします。

  • mysqli_options() 関数を使用して、 さまざまな接続オプションを設定することが可能です。

  • flags パラメータが使用できます。

パラメータ

link

手続き型のみ: mysqli_connect() あるいは mysqli_init() が返すリンク ID。

host

ホスト名あるいは IP アドレス。NULL 値あるいは文字列 "localhost" をこのパラメータに指定すると、ローカルホストを使用します。 使用可能な場合は、TCP/IP プロトコルよりもパイプを優先して使用します。

username

MySQL ユーザ名。

passwd

NULL を指定した場合は、MySQL サーバは パスワードを持たないユーザレコードについてのみ認証を試みます。 これにより、同一のユーザ名に対して (パスワードが指定されたか 否かによって) 違う権限を与えることができます。

dbname

指定した場合は、 クエリが行われるデフォルトのデータベースとなります。

port

MySQL サーバに接続する際のポート番号を指定します。

socket

使用するソケットあるいは名前つきパイプを指定します。

注意: socket 引数を指定しても、MySQL サーバへの 接続時の型を明示的に定義することにはなりません。MySQL サーバへの 接続方法については host 引数で定義されます。

flags

パラメータ flags で、接続時のさまざまなオプションを設定します。

サポートするフラグ
名前 説明
MYSQLI_CLIENT_COMPRESS 圧縮プロトコルを使用します。
MYSQLI_CLIENT_FOUND_ROWS 変更された行数ではなく、マッチした行数を返します。
MYSQLI_CLIENT_IGNORE_SPACE 関数名に続く空白文字を許可します。すべての関数名を予約語とします。
MYSQLI_CLIENT_INTERACTIVE 接続を閉じるまでのタイムアウト時間として、 (wait_timeout のかわりに) interactive_timeout の使用を許可します。
MYSQLI_CLIENT_SSL SSL (暗号化) を使用します。

注意: セキュリティの観点から、PHP では MULTI_STATEMENT フラグはサポートされていません。複数のクエリを実行したい場合は、 mysqli_multi_query() 関数を使用してください。

返り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

例1 オブジェクト指向型

<?php

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

if (!
$mysqli->options(MYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
    die(
'Setting MYSQLI_INIT_COMMAND failed');
}

if (!
$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT5)) {
    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());
}

echo 
'Success... ' $mysqli->host_info "\n";

$mysqli->close();
?>

例2 オブジェクト指向型で mysqli クラスを継承する例

<?php

class foo_mysqli extends mysqli {
    public function 
__construct($host$user$pass$db) {
        
parent::init();

        if (!
parent::options(MYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
            die(
'Setting MYSQLI_INIT_COMMAND failed');
        }

        if (!
parent::options(MYSQLI_OPT_CONNECT_TIMEOUT5)) {
            die(
'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
        }

        if (!
parent::real_connect($host$user$pass$db)) {
            die(
'Connect Error (' mysqli_connect_errno() . ') '
                    
mysqli_connect_error());
        }
    }
}

$db = new foo_mysqli('localhost''my_user''my_password''my_db');

echo 
'Success... ' $db->host_info "\n";

$db->close();
?>

例3 手続き型

<?php

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

if (!
mysqli_options($linkMYSQLI_INIT_COMMAND'SET AUTOCOMMIT = 0')) {
    die(
'Setting MYSQLI_INIT_COMMAND failed');
}

if (!
mysqli_options($linkMYSQLI_OPT_CONNECT_TIMEOUT5)) {
    die(
'Setting MYSQLI_OPT_CONNECT_TIMEOUT failed');
}

if (!
mysqli_real_connect($link'localhost''my_user''my_password''my_db')) {
    die(
'Connect Error (' mysqli_connect_errno() . ') '
            
mysqli_connect_error());
}

echo 
'Success... ' mysqli_get_host_info($link) . "\n";

mysqli_close($link);
?>

上の例の出力は以下となります。

Success... MySQL host info: localhost via TCP/IP

参考

  • mysqli_connect() - 新規に MySQL サーバへの接続をオープンする
  • mysqli_init() - MySQLi を初期化し、mysqli_real_connect() で使用するリソースを返す
  • mysqli_options() - オプションを設定する
  • mysqli_ssl_set() - SSL を使用したセキュアな接続を確立する
  • mysqli_close() - 事前にオープンしているデータベース接続を閉じる



add a note add a note User Contributed Notes
mysqli::real_connect
There are no user contributed notes for this page.

mysqli::real_escape_string> <mysqli::query
Last updated: Fri, 13 Nov 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites