MySQL データベースに接続する

# PDO_MYSQL DSN

(PECL PDO_MYSQL >= 0.1.0)

PDO_MYSQL DSN — MySQL データベースに接続する

### 説明

PDO_MYSQL データソース名 (DSN) は以下の要素で構成されます。

DSN 接頭辞

  DSN 接頭辞は `mysql:` です。

host

  データベースサーバーが存在するホスト名を指定します。

port

  データベースサーバーが待機しているポートを指定します。

dbname

  データベース名を指定します。

unix_socket

  MySQL の unix ソケットを指定します (host あるいは port と同時に使用することはできません)。

charset

  文字セット。詳細は、 文字セットの概念 を参照ください。

  PHP 5.3.6 より前のバージョンでは、この要素は黙って無視されていました。 同じ挙動は、ドライバのオプション `PDO::MYSQL_ATTR_INIT_COMMAND` を使って部分的に複製できます。 その方法は次の例で示します。

  警告

  次の例に示す方法が使えるのは、下位 7 ビットが ASCII と互換性のある文字セット、 つまり ISO-8859-1 や UTF-8 などだけです。それ以外の文字セット (UTF-16 や Big5 など) を使う場合は、必ず PHP 5.3.6 以降の charset オプションを使わなければなりません。

  例1 PHP 5.3.6 より前のバージョンで、文字セットを UTF-8 に設定する例

  `<?php
  $dsn = 'mysql:host=localhost;dbname=testdb';
  $username = 'username';
  $password = 'password';
  $options = array(
  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
  );
  $dbh = new PDO($dsn, $username, $password, $options);
  ?>`

### 変更履歴

バージョン | 説明
--- | ---
5.3.6 | 5.3.6 より前のバージョンでは charset は無視されていました。

### 例

例2 PDO_MYSQL DSN の例

以下の例は、MySQL データベースに接続するための PDO_MYSQL DSN を表します。

    mysql:host=localhost;dbname=testdb

より完全な例は、このようになります。

    mysql:host=localhost;port=3307;dbname=testdb
    mysql:unix_socket=/tmp/mysql.sock;dbname=testdb

### 注意

> 注意: Unix のみ

> ホスト名を "localhost" にすると、 サーバーへの接続はドメインソケットを使って行われます。 libmysqlclient を使って PDO_MYSQL をコンパイルした場合は、 ソケットファイルの場所は libmysqlclient のコンパイル時の場所になります。 mysqlnd を使って PDO_MYSQL をコンパイルした場合は、デフォルトのソケットは pdo_mysql.default_socket の設定を使って作られます。