MySQL 改良版拡張モジュール

目次

mysqli クラス

はじめに

PHP と MySQL データベースの間の接続を表します。

クラス概要

mysqli
/* プロパティ */
public readonly intstring $affected_rows;
public readonly string $client_info;
public readonly int $client_version;
public readonly int $connect_errno;
public readonly stringnull $connect_error;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly int $field_count;
public readonly string $host_info;
public readonly stringnull $info;
public readonly intstring $insert_id;
public readonly string $server_info;
public readonly int $server_version;
public readonly string $sqlstate;
public readonly int $protocol_version;
public readonly int $thread_id;
public readonly int $warning_count;
/* メソッド */
public __construct(
    stringnull $hostname = null,
    stringnull $username = null,
    stringnull $password = null,
    stringnull $database = null,
    intnull $port = null,
    stringnull $socket = null
)
public bool autocommit(bool $enable)
public bool begin_transaction(int $flags = 0, stringnull $name = null)
public bool change_user(string $username, string $password, stringnull $database)
public string character_set_name()
public true close()
public bool commit(int $flags = 0, stringnull $name = null)
public bool connect(
    stringnull $hostname = null,
    stringnull $username = null,
    stringnull $password = null,
    stringnull $database = null,
    intnull $port = null,
    stringnull $socket = null
)
public true debug(string $options)
public bool dump_debug_info()
public mysqli_resultbool execute_query(string $query, arraynull $params = null)
public objectnull get_charset()
public string get_client_info()
public array get_connection_stats()
public string get_server_info()
public mysqli_warningfalse get_warnings()
public boolnull init()
public bool kill(int $process_id)
public bool more_results()
public bool multi_query(string $query)
public bool next_result()
public bool options(int $option, stringint $value)
public bool ping()
public static intfalse poll(
    arraynull &$read,
    arraynull &$error,
    array &$reject,
    int $seconds,
    int $microseconds = 0
)
public mysqli_stmtfalse prepare(string $query)
public mysqli_resultbool query(string $query, int $result_mode = MYSQLI_STORE_RESULT)
public bool real_connect(
    stringnull $hostname = null,
    stringnull $username = null,
    stringnull $password = null,
    stringnull $database = null,
    intnull $port = null,
    stringnull $socket = null,
    int $flags = 0
)
public string real_escape_string(string $string)
public bool real_query(string $query)
public mysqli_resultbool reap_async_query()
public bool refresh(int $flags)
public bool release_savepoint(string $name)
public bool rollback(int $flags = 0, stringnull $name = null)
public bool savepoint(string $name)
public bool select_db(string $database)
public bool set_charset(string $charset)
public true ssl_set(
    stringnull $key,
    stringnull $certificate,
    stringnull $ca_certificate,
    stringnull $ca_path,
    stringnull $cipher_algos
)
public stringfalse stat()
public mysqli_stmtfalse stmt_init()
public mysqli_resultfalse store_result(int $mode = 0)
public bool thread_safe()
public mysqli_resultfalse use_result()

mysqli_stmt クラス

はじめに

プリペアドステートメントを表します。

クラス概要

mysqli_stmt
/* プロパティ */
public readonly intstring $affected_rows;
public readonly intstring $insert_id;
public readonly intstring $num_rows;
public readonly int $param_count;
public readonly int $field_count;
public readonly int $errno;
public readonly string $error;
public readonly array $error_list;
public readonly string $sqlstate;
public int $id;
/* メソッド */
public __construct(mysqli $mysql, stringnull $query = null)
public int attr_get(int $attribute)
public bool attr_set(int $attribute, int $value)
public bool bind_param(string $types, mixed &$var, mixed &...$vars)
public bool bind_result(mixed &$var, mixed &...$vars)
public true close()
public void data_seek(int $offset)
public bool execute(arraynull $params = null)
public boolnull fetch()
public void free_result()
public mysqli_resultfalse get_result()
public mysqli_warningfalse get_warnings()
public bool more_results()
public bool next_result()
public intstring num_rows()
public bool prepare(string $query)
public bool reset()
public mysqli_resultfalse result_metadata()
public bool send_long_data(int $param_num, string $data)
public bool store_result()

プロパティ

id

プリペアドステートメントの ID を保持します。

mysqli_result クラス

はじめに

データベースへのクエリにより得られた結果セットを表します。

クラス概要

mysqli_result
implements IteratorAggregate
/* プロパティ */
public readonly int $current_field;
public readonly int $field_count;
public readonly arraynull $lengths;
public readonly intstring $num_rows;
public int $type;
/* メソッド */
public __construct(mysqli $mysql, int $result_mode = MYSQLI_STORE_RESULT)
public bool data_seek(int $offset)
public array fetch_all(int $mode = MYSQLI_NUM)
public arraynullfalse fetch_array(int $mode = MYSQLI_BOTH)
public arraynullfalse fetch_assoc()
public nullintfloatstringfalse fetch_column(int $column = 0)
public objectfalse fetch_field_direct(int $index)
public objectfalse fetch_field()
public array fetch_fields()
public objectnullfalse fetch_object(string $class = "stdClass", array $constructor_args = [])
public arraynullfalse fetch_row()
public true field_seek(int $index)
public void free()
public void close()
public void free_result()
public Iterator getIterator()

プロパティ

type

結果セットをバッファリングするか、しないかを整数で設定します。 (バッファリングする場合は MYSQLI_STORE_RESULT を、 しない場合は MYSQLI_USE_RESULT を それぞれ設定します)

変更履歴

バージョン 説明
8.0.0 mysqli_result は、 IteratorAggregate を実装するようになりました。 これより前のバージョンでは、 Traversable を実装していました。

mysqli_driver クラス

はじめに

mysqli_driver クラスは、monostate パターンのインスタンスです。 つまり、任意の数の mysqli_driver インスタンスからアクセスできるドライバはたったひとつということです。

クラス概要

final mysqli_driver
/* プロパティ */
public readonly string $client_info;
public readonly int $client_version;
public readonly int $driver_version;
public int $report_mode;

プロパティ

client_info

クライアント API ヘッダのバージョン

client_version

クライアントのバージョン

driver_version

MySQLi ドライバのバージョン

警告

このプロパティは、PHP 8.1.0 で 非推奨 になります。このプロパティに頼らないことを強く推奨します。

embedded

MySQLi Embedded のサポートが有効かどうか

警告

このプロパティは、PHP 8.0.0 で 削除 されました。

reconnect

再接続を許可するかどうか (INI 設定 mysqli.reconnect を参照ください)

警告

このプロパティは、INI ディレクティブ mysqli.reconnect と一緒に、PHP 8.2.0 で 削除されました

report_mode

MYSQLI_REPORT_OFFMYSQLI_REPORT_ALL あるいは以下の MYSQLI_REPORT_STRICT (エラー時に例外をスローする)、 MYSQLI_REPORT_ERROR (エラーを報告する) および MYSQLI_REPORT_INDEX (インデックス関連のエラーを報告する) の組み合わせを設定します。 mysqli_report も参照ください。

変更履歴

バージョン 説明
8.2.0 mysqli_driver::$reconnect が削除されました。
8.1.0 mysqli_driver::$driver_version は推奨されなくなりました。
8.0.0 mysqli_driver::$embedded が削除されました。
7.4.0 mysqli_driver::embedded_server_startmysqli_driver:embedded_server_end が削除されました。

mysqli_warning クラス

はじめに

MySQL の警告を表します。

クラス概要

final mysqli_warning
/* プロパティ */
public string $message;
public string $sqlstate;
public int $errno;
/* メソッド */
private __construct()
public bool next()

プロパティ

message

メッセージ文字列

sqlstate

SQL state

errno

エラー番号

mysqli_sql_exception クラス

はじめに

mysqli の例外を処理するクラスです。

クラス概要

final mysqli_sql_exception
extends RuntimeException
/* プロパティ */
protected string $sqlstate = "00000";
/* 継承したプロパティ */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private Throwablenull $previous = null;
/* メソッド */
public string mysqli_sql_exception::getSqlState()
/* 継承したメソッド */
public Exception::__construct(string $message = "", int $code = 0, Throwablenull $previous = null)
final public string Exception::getMessage()
final public Throwablenull Exception::getPrevious()
final public int Exception::getCode()
final public string Exception::getFile()
final public int Exception::getLine()
final public array Exception::getTrace()
final public string Exception::getTraceAsString()
public string Exception::__toString()
private void Exception::__clone()

プロパティ

sqlstate

エラーの SQLSTATE。