PHP 8.4.2 Released!

Pdo\Mysql クラス

(PHP 8 >= 8.4.0)

はじめに

MySQL PDO ドライバによる接続を示す PDO サブクラスです。

このドライバは MySQL 方言向けに専用の SQL クエリパーサーをサポートしています。 次のものを処理可能です:

  • シングルクオートやダブルクオートで囲まれたリテラルでのクオートの二重化やバックスラッシュによるエスケープ
  • バッククオートで囲まれたリテラルでのクオートの二重化によるエスケープ
  • 2 つのハイフンによるコメント、C 言語形式のコメント、# によるコメント

クラス概要

class Pdo\Mysql extends PDO {
/* 継承した定数 */
public const int PDO::PARAM_NULL;
public const int PDO::PARAM_BOOL = 5;
public const int PDO::PARAM_INT = 1;
public const int PDO::PARAM_STR = 2;
public const int PDO::PARAM_LOB = 3;
public const int PDO::PARAM_STMT = 4;
public const int PDO::PARAM_STR_NATL;
public const int PDO::PARAM_STR_CHAR;
public const int PDO::PARAM_EVT_FREE;
public const int PDO::FETCH_DEFAULT;
public const int PDO::FETCH_LAZY;
public const int PDO::FETCH_ASSOC;
public const int PDO::FETCH_NUM;
public const int PDO::FETCH_BOTH;
public const int PDO::FETCH_OBJ;
public const int PDO::FETCH_BOUND;
public const int PDO::FETCH_COLUMN;
public const int PDO::FETCH_CLASS;
public const int PDO::FETCH_INTO;
public const int PDO::FETCH_FUNC;
public const int PDO::FETCH_GROUP;
public const int PDO::FETCH_UNIQUE;
public const int PDO::FETCH_KEY_PAIR;
public const int PDO::FETCH_NAMED;
public const int PDO::ATTR_PREFETCH;
public const int PDO::ATTR_TIMEOUT;
public const int PDO::ATTR_ERRMODE;
public const int PDO::ATTR_CASE;
public const int PDO::ATTR_CURSOR;
public const int PDO::ERRMODE_SILENT;
public const int PDO::CASE_NATURAL;
public const int PDO::CASE_LOWER;
public const int PDO::CASE_UPPER;
public const int PDO::NULL_NATURAL;
public const int PDO::NULL_TO_STRING;
public const string PDO::ERR_NONE;
public const int PDO::FETCH_ORI_NEXT;
public const int PDO::FETCH_ORI_LAST;
public const int PDO::FETCH_ORI_ABS;
public const int PDO::FETCH_ORI_REL;
public const int PDO::CURSOR_FWDONLY;
public const int PDO::CURSOR_SCROLL;
/* 定数 */
public const int ATTR_LOCAL_INFILE;
public const int ATTR_INIT_COMMAND;
public const int ATTR_COMPRESS;
public const int ATTR_DIRECT_QUERY;
public const int ATTR_FOUND_ROWS;
public const int ATTR_IGNORE_SPACE;
public const int ATTR_SSL_KEY;
public const int ATTR_SSL_CERT;
public const int ATTR_SSL_CA;
public const int ATTR_SSL_CAPATH;
public const int ATTR_SSL_CIPHER;
/* メソッド */
public getWarningCount(): int
/* 継承したメソッド */
public PDO::__construct(
    string $dsn,
    ?string $username = null,
    #[\SensitiveParameter] ?string $password = null,
    ?array $options = null
)
public PDO::commit(): bool
public static PDO::connect(
    string $dsn,
    ?string $username = null,
    #[\SensitiveParameter] ?string $password = null,
    ?array $options = null
): static
public PDO::exec(string $statement): int|false
public PDO::getAttribute(int $attribute): mixed
public PDO::prepare(string $query, array $options = []): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = null): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_COLUMN, int $colno): PDOStatement|false
public PDO::query(
    string $query,
    ?int $fetchMode = PDO::FETCH_CLASS,
    string $classname,
    array $constructorArgs
): PDOStatement|false
public PDO::query(string $query, ?int $fetchMode = PDO::FETCH_INTO, object $object): PDOStatement|false
public PDO::quote(string $string, int $type = PDO::PARAM_STR): string|false
public PDO::setAttribute(int $attribute, mixed $value): bool
}

定義済み定数

Pdo\Mysql::ATTR_USE_BUFFERED_QUERY
デフォルトでは、全てのステートメントが バッファモード で実行されます。 この値を false に設定すると、 Pdo\Mysql オブジェクトの MySQL ドライバは非バッファモードを使います。

例1 MySQL の非バッファモードを使う

<?php
$pdo
= new Pdo\Mysql("mysql:host=localhost;dbname=world", 'my_user', 'my_password');
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);

$unbufferedResult = $pdo->query("SELECT Name FROM City");
foreach (
$unbufferedResult as $row) {
echo
$row['Name'] . PHP_EOL;
}
?>
Pdo\Mysql::ATTR_LOCAL_INFILE
LOAD LOCAL INFILE を有効にします。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_LOCAL_INFILE_DIRECTORY
LOCAL DATA 文によるファイルのロードを、 ここで指定したディレクトリのみに制限します。 PHP 8.1.0 以降で利用可能です。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_INIT_COMMAND
MySQL サーバーへの接続時に実行するコマンドを指定します。 再接続の際には自動的に再実行されます。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_READ_DEFAULT_FILE
my.cnf ではなく、 指定した名前のファイルからオプションを読み込みます。

注意: このオプションは、mysqlnd を使っている場合は利用できません。 mysqlnd は mysql の設定ファイルを読んでいないからです。

Pdo\Mysql::ATTR_READ_DEFAULT_GROUP
my.cnf あるいは 別のファイル (Pdo\Mysql::ATTR_READ_DEFAULT_FILE で指定したもの) の中の、指定した名前のグループからオプションを読み込みます。

注意: このオプションは、mysqlnd を使っている場合は利用できません。 mysqlnd は mysql の設定ファイルを読んでいないからです。

Pdo\Mysql::ATTR_COMPRESS
ネットワーク通信の圧縮を有効にします。
Pdo\Mysql::ATTR_DIRECT_QUERY
PDO::ATTR_EMULATE_PREPARES のエイリアス
Pdo\Mysql::ATTR_FOUND_ROWS
変更された行数ではなく、 見つかった (マッチした) 行数を返します。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_IGNORE_SPACE
関数名の後に続く空白を許可します。 すべての関数名が予約語になります。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_MAX_BUFFER_SIZE
バッファの最大サイズ。デフォルトは 1 MiB です。

注意: mysqlnd を指定してコンパイルした場合は、この定数はサポートされていません。

Pdo\Mysql::ATTR_MULTI_STATEMENTS
false にすると、 PDO::prepare()PDO::query() でのマルチクエリの実行を無効にします。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SERVER_PUBLIC_KEY
SHA-256 ベースの認証で使用する RSA 公開鍵ファイル。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SSL_KEY
SSL キーのファイルパス。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SSL_CERT
SSL 証明書のファイルパス。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SSL_CA
SSL 認証局のファイルパス。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SSL_CAPATH
信頼済みの SSL CA 証明書が入ったディレクトリパス。 証明書は、PEM フォーマットで格納されています。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SSL_CIPHER
SSL 暗号化に使うひとつ以上の暗号の一覧。 OpenSSL で有効なフォーマットで指定します。 例: DHE-RSA-AES256-SHA:AES128-SHA

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

Pdo\Mysql::ATTR_SSL_VERIFY_SERVER_CERT
サーバーの SSL 証明書の検証を無効にする方法を提供します。 PHP 7.0.18 および PHP 7.1.4 以降で使用できます。

注意: このオプションは、mysqlnd でのみ利用可能です。

注意: この定数を使えるのは、新しいデータベースハンドルを作るときの driver_options 配列内に限ります。

目次

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top