PHP MySQL 関数

PHP MySQL 介绍

MySQL 関数は MySQL データベースサーバーにアクセスする許可を提供します。

インストール

このクラス関数を無事に使用できるように、PHP をコンパイルする際に MySQL のサポートを追加する必要があります。

コンパイル時に --with-mysql[=DIR] コンフィギュレーションオプションを使用します。オプションの [DIR] は MySQL のインストールディレクトリを指します。

この MySQL エクステンションライブラリは MySQL 4.1.0 及その後のバージョンと互換性がありますが、これらのバージョンで提供される追加機能をサポートしていません。これらの機能を使用するには、MySQLi エクステンションライブラリを使用してください。

mysql エクステンションライブラリと mysqli エクステンションライブラリを同時にインストールする場合、衝突を避けるために同じクライアントライブラリを使用する必要があります。

Linux システム上でのインストール

PHP 4

デフォルトで --with-mysql オプションが有効化されています。このデフォルトの動作は、--without-mysql コンフィギュレーションオプションを使用して無効化できます。MySQL を有効化し、インストールディレクトリを指定しない場合、PHP はバインドされた MySQL クライアント接続ライブラリを使用します。

MySQL を使用する他のアプリケーション(例:auth-mysql)のユーザーは、バインドされたライブラリを使用せずに MySQL のインストールディレクトリを指定する必要があります。例えば、以下のように指定します:--with-mysql=/path/to/mysql。これにより、PHP は MySQL に従ってインストールされたクライアント接続ライブラリを使用し、衝突を避けることができます。

PHP 5+

MySQL はデフォルトで有効化されていないため、もともと MySQL ライブラリがバインドされていません。--with-mysql[=DIR] コンフィギュレーションオプションを使用して MySQL のサポートを追加します。以下から、MySQL のサポートを追加できます。 MySQL ヘッダーファイルとライブラリをダウンロードします。

Windows システム上でのインストール

PHP 4

PHP MySQL エクステンションは PHP に编译されています。

PHP 5+

MySQL はデフォルトで有効化されていないため、php.ini で php_mysql.dll 动的リンクライブラリを有効化する必要があります。また、PHP は MySQL クライアント接続ライブラリにアクセスする必要があります。PHP の Windows 版には libmysql.dll が含まれており、PHP が MySQL と対話できるように、このファイルは Windows のシステムパス PATH に配置する必要があります。

PHP拡張ライブラリ(例えば php_mysql.dll)を有効にするには、PHPインストラクション extension_dir が PHP拡張ライブラリのディレクトリに設定される必要があります。PHP 5での extension_dir の例は c:\php\ext です。

コメント:ウェブサーバーを起動した際に以下のようなエラーメッセージが表示された場合:"Unable to load dynamic library './php_mysql.dll'"、これはシステムが php_mysql.dll と / または libmysql.dll を見つけていないためです。

ランタイム設定

MySQL 関数の動作は php.ini での設定に影響されます。

MySQL 設定オプション:

名称 デフォルト 定数 変更可能
mysql.allow_persistent "1" MySQLの持続接続を許可するかどうか。 PHP_INI_SYSTEM
mysql.max_persistent "-1" 各プロセスにおける最大の持続接続数。 PHP_INI_SYSTEM
mysql.max_links "-1" 各プロセスにおける最大の接続数、持続接続を含みます。 PHP_INI_SYSTEM
mysql.trace_mode "0" トレースモード。PHP 4.3.0から利用可能です。 PHP_INI_ALL
mysql.default_port NULL デフォルトの接続データベースのTCPポート番号を指定します。 PHP_INI_ALL
mysql.default_socket NULL デフォルトのソケット名。PHP 4.0.1から利用可能です。 PHP_INI_ALL
mysql.default_host NULL デフォルトのサーバー住所。SQLセキュリティモードでは使用されません。 PHP_INI_ALL
mysql.default_user NULL デフォルトで使用されるユーザー名。SQLセキュリティモードでは使用されません。 PHP_INI_ALL
mysql.default_password NULL デフォルトで使用されるパスワード。SQLセキュリティモードでは使用されません。 PHP_INI_ALL
mysql.connect_timeout "60" 接続タイムアウト秒数。 PHP_INI_ALL

リソースタイプ

MySQL モジュールでは、2種類のリソースタイプを使用しています。1つ目はデータベースの接続ハンドルで、2つ目はSQLクエリからの結果セットです。

PHP MySQL 関数

PHP 4.3.0以降のバージョンでは、mysql_connect()関数およびmysql_pconnect()関数で多くのクライアントマークを指定することが許可されます:指示支持该函数的最早的 PHP 版本。

この関数をサポートする最も早い PHP 版本を示します。 定数 説明
関数 mysql_affected_rows() 3
前回の MySQL 操作で影響を受けたレコード行数を取得します。 mysql_change_user() 3
推奨されません。活動中の接続でログインしているユーザーを変更します。 mysql_client_encoding() MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
現在の接続の文字セットの名前を返します。 mysql_close() 3
持続しない MySQL 接続を閉じます。 mysql_connect() 3
持続しない MySQL 接続を開きます。 mysql_create_db() 3
推奨されません。MySQL データベースを作成します。mysql_query() を使用してください。 mysql_data_seek() 3
レコードポインタを移動します。 mysql_db_name() 3
mysql_list_dbs() の呼び出しからデータベース名を返します。

mysql_db_query()

推奨されません。MySQL クエリを送信します。

3
mysql_select_db() と mysql_query() を使用してください。

mysql_drop_db()

使用 mysql_query() 代替。

3
推奨されません。MySQL データベースを削除(削除)します。 mysql_errno() 3
最後の MySQL 操作でのエラーコードの数字エンコーディングを返します。 最後の MySQL 操作で生成されたテキストエラーメッセージを返します。 3
mysql_escape_string()

推奨されません。mysql_query に使用するための文字列をエスケープします。

mysql_real_escape_string() を使用してください。

MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_fetch_array() 結果セットから一行を関連配列またはデジタル配列、またはその両方として取得します。 3
mysql_fetch_assoc() 結果セットから一行を関連配列として取得します。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_fetch_field() 結果セットから列情報を取得し、オブジェクトとして返します。 3
mysql_fetch_lengths() 結果セット中の各フィールドの内容の長さを取得します。 3
mysql_fetch_object() 結果セットから一行をオブジェクトとして取得します。 3
mysql_fetch_row() 結果セットから一行をデジタル配列として取得します。 3
mysql_field_flags() 結果から指定されたフィールドに関連するフラグを取得します。 3
mysql_field_len() 指定字段的長さを返します。 3
mysql_field_name() 取得结果中指定字段的字段名。 3
mysql_field_seek() 将结果集中的指针设定为指定的字段偏移量。 3
mysql_field_table() 取得指定字段所在的表名。 3
mysql_field_type() 取得结果集中指定字段的类型。 3
mysql_free_result() 释放结果内存。 3
mysql_get_client_info() 取得 MySQL 客户端信息。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_get_host_info() 取得 MySQL 主机信息。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_get_proto_info() 取得 MySQL 协议信息。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_get_server_info() 取得 MySQL 服务器信息。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_info() 取得最近一条查询的信息。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_insert_id() 取得上一步 INSERT 操作产生的 ID。 3
mysql_list_dbs() 列出 MySQL 服务器中所有的数据库。 3
mysql_list_fields()

不赞成。列出 MySQL 结果中的字段。

使用 mysql_query() 代替。

3
mysql_list_processes() 列出 MySQL 进程。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_list_tables()

不赞成。列出 MySQL 数据库中的表。

使用Use mysql_query() 代替。

3
mysql_num_fields() 取得结果集中字段的数目。 3
mysql_num_rows() 取得结果集中行的数目。 3
mysql_pconnect() 打开一个到 MySQL 服务器的持久连接。 3
mysql_ping() Ping 一个服务器连接,如果没有连接则重新连接。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_query() 发送一条 MySQL 查询。 3
mysql_real_escape_string() 转义 SQL 语句中使用的字符串中的特殊字符。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_result() 取得结果数据。 3
mysql_select_db() 选择 MySQL 数据库。 3
mysql_stat() 取得当前系统状态。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
mysql_tablename() 不赞成。取得表名。使用 mysql_query() 代替。 3
mysql_thread_id() 返回当前线程的 ID。 MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。
現在のスレッドのIDを返します。 mysql_unbuffered_query() MySQLにSQLクエリを送信(結果を取得 / キャッシュしません)。

4

PHP MySQL 定数

PHP 4.3.0以降のバージョンでは、mysql_connect()関数およびmysql_pconnect()関数で多くのクライアントマークを指定することが許可されます:PHP:

mysql_fetch_array() 関数は、返される配列のタイプを表すために定数を使用します: 定数 説明
この定数をサポートする最も初期のPHPバージョンを示します。 MYSQL_CLIENT_COMPRESS SSL暗号化を使用(MySQLクライアントライブラリバージョン4+でのみ利用可能)。
圧縮された通信プロトコルを使用します。 MYSQL_CLIENT_IGNORE_SPACE SSL暗号化を使用(MySQLクライアントライブラリバージョン4+でのみ利用可能)。
関数名の後にスペースを残すことを許可します。 MYSQL_CLIENT_INTERACTIVE SSL暗号化を使用(MySQLクライアントライブラリバージョン4+でのみ利用可能)。
接続を閉じる前に許可されるインタラクティブタイムアウトの非活動時間。 MYSQL_CLIENT_SSL SSL暗号化を使用(MySQLクライアントライブラリバージョン4+でのみ利用可能)。

4.3

mysql_fetch_array() 関数は、返される配列のタイプを表すために定数を使用します: 定数 説明
PHP MYSQL_ASSOC  
MYSQL_BOTH 返されるデータ列はフィールド名および数字インデックスを使用して配列のインデックス名として使用されます。  
MYSQL_NUM

返されるデータ列は数字インデックスを使用して配列のインデックス名として使用されます。

インデックスは0から始まり、結果の最初のフィールドを表します。