ホームページ >データベース >mysql チュートリアル >php 拡張機能 MySQLi
mysqli 拡張機能を使用すると、MySQL 4.1 以降で提供される機能にアクセスできます。
mysqli 拡張機能と永続的接続
mysqli 拡張機能の永続的接続は PHP5.3 で導入されました。 PDO MYSQL および ext/mysql ではすでにサポートが存在します。永続的な接続の背後にある考え方は、クライアント プロセスとデータベース間の接続が、何度も作成され破棄されるのではなく、クライアント プロセスを通じて維持および再利用できるということです。これにより、毎回新しい接続を作成する必要があるオーバーヘッドが軽減され、未使用の接続はキャッシュされ、再利用できるようになります。
mysql 拡張機能とは異なり、mysqli は永続的な接続を開くための特別なメソッドを提供しません。永続的な接続を開く必要がある場合は、接続時にホスト名の前に p: を追加する必要があります。
永続的な接続を使用する場合の問題は、クライアント側で予期しない状態になる可能性があることです。たとえば、クライアントが予期せず終了する前に、テーブル ロックがアクティブになる可能性があります。 永続的な接続を再利用する新しいクライアント プロセスは、接続を「そのまま」取得します。このように、新しいクライアント プロセスは、永続的な接続をより適切に使用するために、可能なクリーンアップ作業を実行する必要があり、プログラマの負担が増加します。
mysqli 拡張機能の永続的接続は、組み込みのクリーンアップ処理コードを提供します。 mysqli によって行われるクリーンアップ作業には以下が含まれます:
アクティブなトランザクションのロールバック
一時テーブルを閉じて削除
テーブルのロックを解除、
セッション変数をリセット
準備されたステートメントを閉じる (PHP でよく発生します)
処理を閉じる プログラム
GET_LOCK() で取得したロックを解放します
これにより、接続プールから返された永続接続が、クライアント プロセスが使用する前にクリーンな状態になることが保証されます。
mysqli 拡張機能は、C-API 関数 mysql_change_user() を自動的に呼び出すことで、このクリーンアップ作業を完了します。
自動クリーニングの機能には長所と短所があります。利点は、クリーンアップ コードが自動的に呼び出されるため、プログラマが追加のクリーンアップ コードについて心配する必要がなくなることです。ただし、接続が接続プールから返されるたびにクリーンアップ コードを実行する必要があるため、コードが遅くなる可能性があるという欠点があります。
この自動クリーニング コードは、php のコンパイル時に MYSQLI_NO_CHANGE_USER_ON_PCONNECT を定義することでオフにできます。
mysqli 拡張機能は、Mysql ネイティブ ドライバーまたは Mysql クライアント ライブラリ (libmysql) を使用する場合の永続的な接続をサポートします。
MySQLi クラス
は、PHP と Mysql データベース間の接続を表します。
mysqli::$affected_rows — 以前の MySQL 操作で影響を受けた行の数を取得します
mysqli::autocommit — このデータベース接続の自動コマンドコミットトランザクションモードをオンまたはオフにします
mysqli::begin_transaction — トランザクションを開始します
mysqli::change_user — 指定されたデータベース接続のユーザーを変更します
mysqli::character_set_name — 現在のデータベース接続のデフォルトの文字エンコーディングを返します
mysqli::$client_info — MySQL クライアント情報を取得します
mysqli::$ client_version — MySQL クライアントのバージョンを文字列として返す
mysqli::close — 以前に開かれたデータベース接続を閉じる
mysqli::commit — トランザクションをコミットする
mysqli::$connect_errno — 最後の接続呼び出しからのエラー コードを返す
mysqli: :$connect_error — 最後の接続エラーの文字列説明を返します
mysqli::__construct — MySQL サーバーへの新しい接続を開きます
mysqli::debug — デバッグ操作を実行します
mysqli::dump_debug_info — デバッグを出力します情報をログに記録します
mysqli::errno — 最新の関数呼び出しのエラー コードを返します
mysqli::$error_list — 最後に実行されたコマンドからのエラーのリストを返します
mysqli::$error — 文字列の説明を返します最後のエラーの
mysqli::$field_count — 最新のクエリの列数を返します
mysqli::get_charset — 文字セット オブジェクトを返します
mysqli::get_client_info — MySQL クライアント情報を取得します
mysqli_get_client_stats — 戻り値クライアントのプロセスごとの統計
mysqli_get_client_version — MySQL クライアントのバージョンを整数として返します
mysqli::get_connection_stats — クライアント接続に関する統計を返します
mysqli::$host_info — 使用される接続のタイプを表す文字列を返します
mysqli ::$protocol_version — 使用される MySQL プロトコルのバージョンを返します
mysqli::$server_info — MySQL サーバーのバージョンを返します
mysqli::$server_version — MySQL サーバーのバージョンを整数として返します
mysqli: :get_warnings — SHOW WARNINGS の結果を取得します
mysqli::$info — 最後に実行されたクエリに関する情報を取得します
mysqli::init — MySQLi を初期化し、mysqli_real_connect() で使用するリソースを返します
mysqli::$insert_id — 最後のクエリで使用された自動生成された ID を返します
mysqli::kill — サーバーに MySQL スレッドを強制終了するように要求します
mysqli::more_results — マルチクエリからのクエリ結果がさらにあるかどうかを確認しますquery
mysqli::multi_query — データベースに対してクエリを実行します
mysqli::next_result — multi_query からの次の結果を準備します
mysqli::options — オプションを設定します
mysqli::ping — サーバー接続に ping を実行するか、接続がダウンした場合は再接続します
mysqli::poll — 接続をポーリングします
mysqli::prepare — SQL ステートメントを実行する準備をします
mysqli::query — 对数据库执行一次查询
mysqli::real_connect— mysql サーバーへの接続
mysqli::real_escape_string — 接続の現在の文字セットを考慮して、SQL ステートメントで使用する文字列内の特殊文字をエスケープします
mysqli::real_query — 実行一个mysql查询
mysqli:: reap_async_query - asyncquery
mysqli::更新の結果を取得します - リフレッシュ
mysqli:: release_savepoinクエリタイプ
mysqli::savepoint — 名前付きトランザクションセーブポイントを設定します
mysqli::select_db — データベース库蟥询の默认データベース库
mysqli::send_query — 送信要求并返结結果
mysqli::set_charset — 設定默认文字コード
mysqli::set_local_infile_default — ローカル infile の読み込みコマンドのユーザー定義ハンドラーの設定を解除します
mysqli::set_local_infile_handler — LOAD DATA LOCAL INFILE コマンドのコールバック関数を設定します
mysqli::$sqlstate — 以前の MySQL 操作から SQLSTATE エラーを返します
mysqli::ssl_set — SSL を使用して安全な接続を確立するために使用されます
mysqli::stat — 現在のシステムステータスを取得します
mysqli::stmt_init — 初歩化一条语句并mysqli_stmt_prepare(调用) のオブジェクトを返します
mysqli ::store_result — 最後のクエリからの結果セットを転送します
mysqli::$thread_id — 現在の接続のスレッド ID を返します
mysqli::thread_safe — 返されるかどうかが線程安全的
mysqli::use_result — を開始します結果セットの取得
mysqli::$warning_count — 指定されたリンクに対する最後のクエリからの警告の数を返します
MySQLi_STMT 类
は準備された句を表します。
mysqli_stmt::$affected_rows — 変更された行の合計数を返します、削除された、または最後に実行されたステートメントによって挿入されました
mysqli_stmt::attr_get — ステートメント属性の現在の値を取得するために使用されます
mysqli_stmt::attr_set — 準備されたステートメントの動作を変更するために使用されます
mysqli_stmt::bind_param —変数をパラメータとして準備されたステートメントにバインドします
mysqli_stmt::bind_result — 結果を保存するために変数を準備されたステートメントにバインドします
mysqli_stmt::close — 準備されたステートメントを閉じます
mysqli_stmt::data_seek — ステートメントの結果の任意の行をシークしますset
mysqli_stmt::$errno — 最新のステートメント呼び出しのエラー コードを返します
mysqli_stmt::$error_list — 最後に実行されたステートメントからのエラーのリストを返します
mysqli_stmt::$error — 文字列の説明を返します最後のステートメントエラー
mysqli_stmt::execute — 準備されたクエリを実行します
mysqli_stmt::fetch — 準備されたステートメントからバインドされた変数に結果をフェッチします
mysqli_stmt::$field_count — 指定されたステートメント内のフィールドの数を返します
mysqli_stmt::free_result — 指定されたステートメント ハンドルの保存された結果メモリを解放します
mysqli_stmt::get_result — 準備されたステートメントから結果セットを取得します
mysqli_stmt::get_warnings — SHOW WARNINGS の結果を取得します
mysqli_stmt::$insert_id — 取得前の INSERT 操作から生成された ID
mysqli_stmt::more_results — 複数のクエリからさらにクエリ結果があるかどうかを確認します
mysqli_stmt::next_result — 複数のクエリから次の結果を読み取ります
mysqli_stmt::$num_rows — Returnステートメントの結果セット内の行数
mysqli_stmt::$param_count — 指定されたステートメントのパラメーターの数を返します
mysqli_stmt::prepare — SQL ステートメントを実行用に準備します
mysqli_stmt::reset — 準備されたステートメントをリセットします
mysqli_stmt::result_metadata — 準備されたステートメントから結果セットのメタデータを返します
mysqli_stmt::send_long_data — データをブロックで送信します
mysqli_stmt::$sqlstate — 前のステートメント操作からの SQLSTATE エラーを返します
mysqli_stmt::store_result — 転送結果です準備されたステートメントから設定します
mysqli_result类
代表一データシート库查询中取得結果集
mysqli_result::$current_field — 結果ポインターの現在のフィールド オフセットを取得します
mysqli_result::data_seek — 結果ポインターを任意の行に調整します結果として
mysqli_result::fetch_all — すべての結果行を連想配列、数値配列、またはその両方としてフェッチします
mysqli_result::fetch_array — 結果行を連想配列、数値配列、またはその両方としてフェッチします
mysqli_result::fetch_assoc — フェッチ結果行を連想配列として返します
mysqli_result::fetch_field_direct — 単一フィールドのメタデータをフェッチします
mysqli_result::fetch_field — 結果セット内の次のフィールドを返します
mysqli_result::fetch_fields — を表すオブジェクトの配列を返します結果セット内のフィールド
mysqli_result::fetch_object — 結果セットの現在の行をオブジェクトとして返します
mysqli_result::fetch_row — 結果行を列挙型配列として取得します
mysqli_result::$field_count — 数値を取得します結果内のフィールドの数
mysqli_result::field_seek — 指定されたフィールドのオフセットへの結果ポインターを設定します
mysqli_result::free — 結果に関連付けられたメモリを解放します
mysqli_result::$lengths — の列の長さを返します結果セットの現在の行
mysqli_result::$num_rows — 結果の行数を取得します
MySQLi_Driver类
MySQLi 驱动.
client_info
客户端API头バージョン(比例:(string)"5.1. 49")
client_version
客户端バージョン本(比如:(int)50149)
driver_version
Mysqli驱动バージョン本(比如:(int)101009)
埋め込み
かどうか
再接続
許可または再接続を禁止します (INI 命令内の mysqli.reconnect を参照) , MYSQLI_REPORT_ALL または MYSQLI_REPORT_STRICT (错误抛出注意: MYSQLI_REPORT_ERROR と組み合わせて使用する必要があります)、MYSQLI_REPORT_ERROR (MYSQL の報告) および MYSQLI_REPORT_INDEX (インデックスに関連する報告) の組み合わせ。 embedded_server_end — 組み込みサーバーを停止します
mysqli_driver::embedded_server_start —組み込みサーバーを初期化して起動します
message
メッセージ文字列
sqlstate SQL状態errno
错误编号mysqli_warning::__construct — __construct の目的
mysqli异常処理类
mysqli_sql_exception extends RuntimeException { /* 属性 */ protected string $sqlstate ; /* 继承的属性 */ protected string $message ; protected int $code ; protected string $file ; protected int $line ; }
mysqli_bind_param — mysqli_stmt_bind_param の名前
mysqli_bind_result — mysqli_stmt_bind_result の名前
mysqli_client_encoding — mysqli_character_set_name の名前
mysqli_connect — mysqli::__con struct
mysqli::disable_reads_from_master — マスターからの読み取りを無効にする
mysqli_disable_rpl_parse — RPL 解析を禁止する
mysqli_enable_reads_from_master — 开启主机读取
mysqli_enable_rpl_parse — 开启RPL解析
mysqli_escape_string — 别名mysqli_real_escape_string
mysqli_execute — mysqli_stmt_executeの别名
mysqli _fetch — mysqli_stmt_fetch の変数名。
mysqli_master_query — 主/从机制中强制で主机内で実行します
mysqli_param_count — mysqli_stmt_param_count の名前
mysqli_report — 开启または禁止(Mysql)内部(错误)报告関数数
mysqli_rpl_parse_enabled — 检查否か开启了RPL解析
mysqli_rpl_probe — RPL 探査
mysqli_send_long_data — mysqli_stmt_send_long_data の名前
mysqli_set_opt — mysqli_options の名前
mysqli_slave_query —主/从机制中强制在从机上执行一查询