PDO_MYSQL は、PHP データ オブジェクト (PDO) インターフェイスを実装して、PHP から MySQL データベースへのアクセスを可能にするドライバーです。 7.1.16 より前の PHP バージョン、または 7.2.4 より前の PHP 7.2 を実行している場合、MySQL 8 サーバーのデフォルト パスワード プラグインを mysql_native_password に設定します。使用されません。これは、MySQL 8 が caching_sha2_password にデフォルト設定されているためです。これは、古い PHP (mysqlnd) リリースでは認識されないプラグインです。代わりに、 で設定して変更します。 caching_sha2_password プラグインは、将来の PHP リリースでサポートされる予定です。それまでの間、mysql_xdevapi 拡張機能はそれをサポートしています。警告 注意: 一部の MySQL テーブル タイプ (ストレージ エンジン) はトランザクションをサポートしていません。トランザクションをサポートしないテーブル タイプを使用してトランザクション データベース コードを記述する場合、MySQL はトランザクションが正常に開始されたように装います。さらに、発行された DDL クエリは、暗黙的に保留中のトランザクションをすべて処理します。 MySQL ドライバーは PDOStatement::bindParam を介して適切にサポートしていませんが、そのようなパラメーターは使用できますが、更新されません (つまり、実際の出力は無視されます)。 一般的な Unix ディストリビューションには、インストール可能なバイナリ バージョンの PHP が含まれています。これらのバイナリ バージョンは通常、MySQL 拡張機能をサポートするように構築されていますが、追加のパッケージを使用して拡張ライブラリ自体をインストールする必要がある場合があります。選択したディストリビューションに付属しているパッケージ マネージャーが利用可能かどうかを確認してください。たとえば、Ubuntu では、パッケージは ext/mysql、ext/mysqli、および PDO_MYSQL PHP 拡張機能をインストールします。 CentOS では、パッケージはこれら 3 つの PHP 拡張機能もインストールします。または、この拡張機能を自分でコンパイルすることもできます。ソースから PHP をビルドすると、使用する MySQL 拡張機能と、各拡張機能のクライアント ライブラリの選択を指定できます。コンパイル時に --with-pdo-mysql[=DIR] を使用して PDO MySQL 拡張機能をインストールします。オプションは MySQL ベース ライブラリです。 mysqlnd はデフォルトのライブラリです。ライブラリの選択の詳細については、MySQL ライブラリの選択を参照してください。オプションで、 --with-mysql-sock[=DIR] は、PDO_MYSQL を含むすべての MySQL 拡張機能の MySQL unix ソケット ポインターの場所に設定します。指定しない場合、デフォルトの場所が検索されます。オプションで、 --with-zlib-dir[=DIR] を使用して、libz インストール プレフィックスへのパスを設定します。 SSL サポートは、適切な PDO_MySQL 定数を使用して有効にされます。これは、*MySQL C API 関数 mysql_ssl_set を呼び出すことと同じです。また、接続が既に存在するため、PDO::setAttribute で SSL を有効にすることはできません。 SSL を使用した MySQL への接続については、MySQL のドキュメントも参照してください。 以下の定数はこのドライバーによって定義され、拡張機能が PHP にコンパイルされているか、実行時に動的にロードされている場合にのみ使用できます。さらに、これらのドライバー固有の定数は、このドライバーを使用している場合にのみ使用してください。ドライバー固有の属性を別のドライバーで使用すると、予期しない動作が発生する可能性があります。コードが複数のドライバーに対して実行できる場合は、PDO::getAttribute() を使用して属性を取得し、ドライバーをチェックできます。では、MySQL ドライバーは MySQL API のバッファー バージョンを使用します。移植可能なコードを作成している場合は、代わりに を使用する必要があります。この属性が a に設定されている場合、MySQL ドライバーは MySQL API のバッファー バージョンを使用します。移植可能なコードを作成している場合は、代わりに使用する必要があります。例 #1 クエリを mysql で強制的にバッファリングする 「私のアプリケーションは mysql でしか動作しません。代わりに \$stmt->fetchAll() を使用する必要があります」 注: この定数は、新しいデータベース ハンドルを作成するときに配列内でのみ使用できます。この指定されたディレクトリにあるファイルへの LOCAL DATA ロードを制限できます。 PHP 8.1.0 以降で利用可能です。この定数は、新しいデータベース ハンドルを作成するときにのみ配列で使用できることに注意してください。 MySQL サーバーへの接続時に実行するコマンド。再接続時に自動的に再実行されます。この定数は、新しいデータベース ハンドルを作成するときにのみ配列で使用できることに注意してください。からではなく、指定されたオプション ファイルからオプションを読み取ります。 mysqlnd は mysql 構成ファイルを読み取らないため、mysqlnd が使用されている場合、このオプションは使用できません。指定されたグループまたは で指定されたファイルからオプションを読み取ります。 mysqlnd は mysql 構成ファイルを読み取らないため、mysqlnd が使用されている場合、このオプションは使用できません。最大バッファ サイズ。デフォルトは 1 MiB です。この定数は、mysqlnd に対してコンパイルされた場合はサポートされません。変更された行の数ではなく、見つかった (一致した) 行の数を返します。 SSL 認証局へのファイル パス。 PEM 形式で保存されている、信頼できる SSL CA 証明書を含むディレクトリへのファイル パス。 SSL 証明書へのファイル パス。 OpenSSL が理解できる形式で、SSL 暗号化に使用できる 1 つ以上の許可された暗号のリスト。例: SSL キーへのファイル パス。サーバー SSL 証明書の検証を無効にする方法を提供します。これは、PHP 7.0.18 および PHP 7.1.4 の時点で存在します。に設定すると、PDO::prepare() と PDO::query() の両方でマルチクエリの実行が無効になります。この定数は、新しいデータベース ハンドルを構築するときに配列でのみ使用できることに注意してください。 これらの機能の動作は、 の設定の影響を受けます。 PHP_INI_* モードの詳細と定義については、PHP_INI_* モードの詳細と定義を参照してください。構成設定を設定できる場所を参照してください。Unix ドメイン ソケットを設定します。構成時にドメインソケットが見つかった場合、この値はコンパイル時に設定できます。この ini 設定は Unix のみです。 PDO_MYSQL のデバッグを有効にします。この設定は、PDO_MYSQL が mysqlnd に対してコンパイルされ、PDO デバッグ モードである場合にのみ使用できます。