PHP マニュアル
前のページ |  | 次のページ

# LXVIII. 改良版MySQL拡張サポート(mysqli)

# 導入

mysqli拡張サポートによってMySQL4.1以上で提供される機能を利用することが できるようになります。MySQLデータベースサーバに関する詳細は http://www.mysql.com/をご覧ください。

MySQLに関するドキュメントは http://dev.mysql.com/doc/ にあります。

このドキュメントの一部は、MySQL ABの許可を得てMySQLマニュアルから引用 したものです。

# 要件

これらの関数を有効にするには、mysqli拡張サポートを 有効にしてPHPをコンパイルする必要があります。

> 注意: mysqli拡張サポートはMySQL 4.1.2以上で動作するよう設計されています。 それ以前のバージョンについてはMySQL 拡張サポートのドキュメントをご覧ください。

# インストール手順

PHPにmysqli拡張サポートを追加するには、 --with-mysqli=mysql_config_path オプションを指定してPHPをコンパイルする必要があります。 mysql_config_pathにはMySQL4.1以上に付属する mysql_configプログラムが存在するパスを 指定してください。同時に、--without-mysqlオプションを 使って標準のMySQL拡張 （これはデフォルトでコンパイルされます）をはずしてください。 mysqli拡張サポートと標準のmysql拡張を共存させる形でインストールしたい 場合には、PHPにバンドルされているlibmysqlライブラリは使用できません。 代わりにMySQL4.1未満でインストールされるクライアントライブラリを 使用してください。これにより何ら衝突させることなく MySQLでインストールされるクライアントライブラリをPHPが強制的に 使用するようにできます。

# 実行用の設定

これらの関数の動作は、`php.ini`の設定により変化します。

表 1. MySQLi 設定オプション

名前 | デフォルト | 変更の可否
--- | --- | ---
mysqli.max_links | "-1" | PHP_INI_SYSTEM
mysqli.default_port | NULL | PHP_INI_ALL
mysqli.default_socket | NULL | PHP_INI_ALL
mysqli.default_host | NULL | PHP_INI_ALL
mysqli.default_user | NULL | PHP_INI_ALL
mysqli.default_pw | NULL | PHP_INI_ALL

PHP_INI_* 定数の詳細と定義については、 設定の変更 を参照して下さい。

以下に設定ディレクティブに関す る簡単な説明を示します。

mysqli.max_links integer

  持続的接続を含むプロセス毎の MySQL接続の最大数。

mysqli.default_port string

  他のポートが指定されない場合、データベースサーバ接続時に 使用されるデフォルトのTCPポート番号。デフォルトが指定されない 場合、ポートは、環境変数MYSQL_TCP_PORT、 `/etc/services`の mysql-tcpエントリ、コンパイル時の MYSQL_PORT定数の順番で取得されます。 Win32では、MYSQL_PORT定数のみが使用されます。

mysqli.default_socket string

  他にソケット名が指定されない場合、ローカルな データベースサーバに接続する時のデフォルトのソケット名。

mysqli.default_host string

  他のサーバ名が指定されない場合に、データベースサーバへの接続時に 使用されるデフォルトのサーバ名。 safe modeでは適用されません。

mysqli.default_user string

  他のユーザ名が指定されない場合に、データベースサーバへの接続時に 使用されるデフォルトのユーザ名。 safe modeでは適用されません。

mysqli.default_password string

  他のパスワードが指定されない場合に、データベースサーバへの接続時に 使用されるデフォルトのパスワード。 safe modeでは適用されません。

# 定義済みのクラス

## mysqli

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

### コンストラクタ

- mysqli() - 新たにmysqliオブジェクトを作成します

### メソッド

- autocommit() - データベース変更時のオートコミットをオンまたはオフにします

- change_user() - 指定したデータベース接続のユーザを変更します

- character_set_name - データベース接続のデフォルトの文字セットを返します

- close - オープンされている接続をクローズします

- commit - カレントのトランザクションをコミットします

- connect - MySQLデータベースサーバーへの新規接続をオープンします

- debug - デバッグ処理を行います

- dump_debug_info - デバッグ情報をダンプします

- get_client_info - クライアントのバージョンを返します

- get_host_info - 使用されている接続の型を返します

- get_server_info - MySQLサーバーのバージョンを返します

- init - mysqliオブジェクトを初期化します

- info - 直近に実行されたクエリに関する情報を取得します

- kill - 指定したMySQLスレッドをキルするようサーバーに指示します

- multi_query - 複数のクエリを実行します

- more_results - 実行した複数のクエリについて結果がまだ残ってるかどうかを確認します

- next_result - 実行した複数のクエリから次の結果を読み込みます

- options - オプションを設定します

- ping - 指定したサーバー接続にpingを行い、接続がない場合には再接続します

- prepare - SQLクエリをパースします

- query - クエリを実行します

- real_connect - MySQLデータベースサーバーへの接続をオープンします

- escape_string - 接続に使用する文字セットを考慮してSQL命令が含まれる文字列の中の特殊文字をエスケープします

- rollback - カレントのトランザクションをロールバックします

- select_db - デフォルトのデータベースを選択します

- set_opt - オプションを設定します

- ssl_set - SSLパラメータを設定します

- stat - カレントのシステムステータスを取得します

- store_result - 直近のクエリから結果セットを伝送します

- use_result - 直近のクエリからバッファリングされていない結果セットを伝送します

- thread-safe - スレッドセーフかどうかを返します

### プロパティ

- affected_rows - gets the number of affected rows in a previous MySQL operation

- errno - returns the error code for the most recent function call

- error - returns the error string for the most recent function call

- field_count - returns the number of columns for the most recent query

- host_info - returns a string representing the type of connection used

- info - retrieves information about the most recently executed query

- insert-id - returns the auto generated id used in the last query

- protocol_version - returns the version of the MySQL protocol used

- sqlstate - returns a string containing the SQLSTATE error code for the last error

- thread_id - returns the thread ID for the current connection

- warning-count - returns the number of warnings generated during execution of the previous SQL statement

## stmt

パースされた命令を表します。

### メソッド

- bind_param - Binds variables to a prepared statement

- bind_result - Binds variables to a prepared statement for result storage

- close - Closes a prepared statement

- data-seek - Seeks to an arbitrary row in a statement result set

- execute - Executes a prepared statement

- fetch - Fetches result from a prepared statement into bound variables

- get_metadata - Retrieves a resultset from a prepared statement for metadata information

- send_long_data - Sends data in chunks

- store_result - Buffers complete resultset from a prepared statement

### プロパティ

- affected_rows - Returns affected rows from last statement execution

- field_count - Returns number of fields for a given prepared statement

- errno - Returns errorcode for last statement function

- errno - Returns errormessage for last statement function

- param_count - Returns number of parameter for a given prepare statement

- sqlstate - returns a string containing the SQLSTATE error code for the last statement function

## result

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

### メソッド

- close - closes resultset

- data_seek - moves internal result pointer

- fetch_field - gets column information from a resultset

- fetch_fields - gets information for all columns from a resulset

- fetch_field_direct - gets column information for specified column

- fetch_array - fetches a result row as an associative array, a numeric array, or both.

- fetch_assoc - fetches a result row as an associative array

- fetch_object - fetches a result row as an object

- fetch_row - gets a result row as an enumerated array

- close - frees result memory

- field_seek - set result pointer to a specified field offset

### プロパティ

- current_field - returns offset of current fieldpointer

- field_count - returns number of fields in resultset

- num_rows - returns number of rows in resultset

# 定義済みの定数

表 2. MySQLi 定数

定数名 | 説明
--- | ---
`MYSQLI_READ_DEFAULT_GROUP` (integer) |
`MYSQLI_READ_DEFAULT_FILE` (integer) |
`MYSQLI_OPT_CONNECT_TIMEOUT` (integer) |
`MYSQLI_OPT_LOCAL_INFILE` (integer) |
`MYSQLI_INIT_COMMAND` (integer) |
`MYSQLI_CLIENT_SSL` (integer) |
`MYSQLI_CLIENT_COMPRESS` (integer) |
`MYSQLI_CLIENT_INTERACTIVE` (integer) |
`MYSQLI_CLIENT_IGNORE_SPACE` (integer) |
`MYSQLI_CLIENT_NO_SCHEMA` (integer) |
`MYSQLI_CLIENT_MULTI_QUERIES` (integer) |
`MYSQLI_STORE_RESULT` (integer) |
`MYSQLI_USE_RESULT` (integer) |
`MYSQLI_ASSOC` (integer) |
`MYSQLI_NUM` (integer) |
`MYSQLI_BOTH` (integer) |
`MYSQLI_NOT_NULL_FLAG` (integer) |
`MYSQLI_PRI_KEY_FLAG` (integer) |
`MYSQLI_UNIQUE_KEY_FLAG` (integer) |
`MYSQLI_MULTIPLE_KEY_FLAG` (integer) |
`MYSQLI_BLOB_FLAG` (integer) |
`MYSQLI_UNSIGNED_FLAG` (integer) |
`MYSQLI_ZEROFILL_FLAG` (integer) |
`MYSQLI_AUTO_INCREMENT_FLAG` (integer) |
`MYSQLI_TIMESTAMP_FLAG` (integer) |
`MYSQLI_SET_FLAG` (integer) |
`MYSQLI_NUM_FLAG` (integer) |
`MYSQLI_PART_KEY_FLAG` (integer) |
`MYSQLI_GROUP_FLAG` (integer) |
`MYSQLI_TYPE_DECIMAL` (integer) |
`MYSQLI_TYPE_TINY` (integer) |
`MYSQLI_TYPE_SHORT` (integer) |
`MYSQLI_TYPE_LONG` (integer) |
`MYSQLI_TYPE_FLOAD` (integer) |
`MYSQLI_TYPE_DOUBLE` (integer) |
`MYSQLI_TYPE_NULL` (integer) |
`MYSQLI_TYPE_TIMESTAMP` (integer) |
`MYSQLI_TYPE_LONGLONG` (integer) |
`MYSQLI_TYPE_INT24` (integer) |
`MYSQLI_TYPE_DATE` (integer) |
`MYSQLI_TYPE_TIME` (integer) |
`MYSQLI_TYPE_DATETIME` (integer) |
`MYSQLI_TYPE_YEAR` (integer) |
`MYSQLI_TYPE_NEWDATE` (integer) |
`MYSQLI_TYPE_ENUM` (integer) |
`MYSQLI_TYPE_SET` (integer) |
`MYSQLI_TYPE_TINY_BLOB` (integer) |
`MYSQLI_TYPE_MEDIUM_BLOB` (integer) |
`MYSQLI_TYPE_LONG_BLOB` (integer) |
`MYSQLI_TYPE_BLOB` (integer) |
`MYSQLI_TYPE_VAR_STRING` (integer) |
`MYSQLI_TYPE_STRING` (integer) |
`MYSQLI_TYPE_CHAR` (integer) |
`MYSQLI_TYPE_INTERVAL` (integer) |
`MYSQLI_TYPE_GEOMETRY` (integer) |
`MYSQLI_BIND_STRING` (integer) |
`MYSQLI_BIND_INT` (integer) |
`MYSQLI_BIND_DOUBLE` (integer) |
`MYSQLI_BIND_SEND_DATA` (integer) |
`MYSQLI_RPL_MASTER` (integer) |
`MYSQLI_RPL_SLAVE` (integer) |
`MYSQLI_RPL_ADMIN` (integer) |
`MYSQLI_NEED_DATA` (integer) |
`MYSQLI_NO_DATA` (integer) |
`MYSQLI_PR_REPORT_STDERR` (integer) |
`MYSQLI_PR_REPORT_PORT` (integer) |
`MYSQLI_PR_REPORT_FILE` (integer) |

前のページ | ホーム | 次のページ
mysql_unbuffered_query | 上に戻る | mysqli_affected_rows