mysqliの概要
PHP 5のmysqli拡張
通常、PHPを使用して構築されたアプリケーションシステムはMySQLデータベースと組み合わせられており、長い間、mysql拡張はPHPとMySQLを伴い、両者の相互作用にチャネルを提供してきた.mysql拡張ライブラリが提供する関連関数はPHPプログラムがMySQLデータベースにアクセスすることを容易にしたが、MySQLの発展に伴い、mysql拡張はmysql拡張がMySQL 4.1以降の新しい特性をサポートできないため、いくつかの新しい問題が発生し始めた.
mysql拡張機能の不足に直面して、PHPの開発者はPHP 5をサポートするMySQL拡張プログラムを新しいものにすることにしました.これがmysqli拡張です.
23.5.1 mysqliの概要
mysqli拡張により、ユーザーはMySQL 4.1以降の新機能を利用することができ、mysql拡張に比べてmysqli拡張は以下の点で明らかに向上した.
互換性とメンテナンス性:mysqli拡張はMySQLの新機能を簡単に使用できるため、mysqliはMySQLとの互換性が高い.MySQLの新しいバージョンが追加されても、mysqli拡張は簡単にサポートできます.
オブジェクト向け:mysqli拡張子はクラスにカプセル化されており、オブジェクト向けのプログラミングが可能です.オブジェクト向けに理解されていない場合でも、mysqli拡張はプロセス向けのプログラミング方式を提供し、ユーザーが選択できるようにします.
速度とセキュリティ:mysqli拡張は、以前のバージョンのmysql拡張よりも大幅に高速に実行されます.mysqli拡張は、MySQLの新しいバージョンのパスワードのコンパクト化と検証プログラムをサポートし、アプリケーションのセキュリティをさらに向上させます.
準備文:準備文は繰り返し使用する文のパフォーマンスを向上させ、mysqli拡張は準備文のサポートを提供します.
デバッグ機能:mysqli拡張によりデバッグ機能がさらに改善され、開発効率が向上しました.
PHPでmysqli拡張を使用するには、プロファイルphpが必要です.iniに次の設定を追加します.
プロファイルに上記の設定がある場合は、extensionの前に「;」がないことを確認します.そうでなければ削除します.次にmysqli拡張子を使用してデータベースにアクセスする方法について説明します.
2サーバの接続と切断
mysqliは、データベースとインタラクティブにオブジェクト向けとプロシージャ向けの2つの方法を提供しています.この2つの方法をそれぞれ見てみましょう.
1.オブジェクト向け
オブジェクト向けの方法ではmysqliはクラスにカプセル化され、その構造方法は以下の通りです.
上記の構文におけるパラメータの説明は以下の通りである.
host:接続されたサーバアドレス.
username:データベースに接続されているユーザー名.デフォルトはサーバプロセスの所有者のユーザー名です.
passwd:データベースに接続するパスワードで、デフォルト値は空です.
dbname:接続されたデータベース名.
port:TCPポート番号.
socket:UNIXドメインsocket.
MySQLへの接続を確立するには、以下のコードなど、mysqliクラスを構築方法でインスタンス化します.
mysqliはMySQLに接続するメンバーメソッドconnect()も提供しています.コンストラクションメソッドが空のmysqliクラスである場合、mysqliオブジェクト呼び出しconnect()メソッドを使用してMySQLに接続することもできます.たとえば、次のコードです.
MySQLサーバへの接続を閉じmysqliオブジェクトを介してclose()メソッドを呼び出すには、次のようにします.
2.プロセス向け
プロシージャ向けのアプローチでは、mysqli拡張は関数mysqli_を提供します.接続()はMySQLに接続されます.この関数の構文フォーマットは次のとおりです.
mysqli_connect()関数の使い方mysql拡張のmysql_connect()関数の使い方はよく似ています.以下はmysqliです.connect()関数の使用例:
コード23-27 CDcodes23章23.5mysqli_connect.php
MySQLサーバへの接続を閉じるmysqli_を使用するclose()関数:
通常、PHPを使用して構築されたアプリケーションシステムはMySQLデータベースと組み合わせられており、長い間、mysql拡張はPHPとMySQLを伴い、両者の相互作用にチャネルを提供してきた.mysql拡張ライブラリが提供する関連関数はPHPプログラムがMySQLデータベースにアクセスすることを容易にしたが、MySQLの発展に伴い、mysql拡張はmysql拡張がMySQL 4.1以降の新しい特性をサポートできないため、いくつかの新しい問題が発生し始めた.
mysql拡張機能の不足に直面して、PHPの開発者はPHP 5をサポートするMySQL拡張プログラムを新しいものにすることにしました.これがmysqli拡張です.
23.5.1 mysqliの概要
mysqli拡張により、ユーザーはMySQL 4.1以降の新機能を利用することができ、mysql拡張に比べてmysqli拡張は以下の点で明らかに向上した.
互換性とメンテナンス性:mysqli拡張はMySQLの新機能を簡単に使用できるため、mysqliはMySQLとの互換性が高い.MySQLの新しいバージョンが追加されても、mysqli拡張は簡単にサポートできます.
オブジェクト向け:mysqli拡張子はクラスにカプセル化されており、オブジェクト向けのプログラミングが可能です.オブジェクト向けに理解されていない場合でも、mysqli拡張はプロセス向けのプログラミング方式を提供し、ユーザーが選択できるようにします.
速度とセキュリティ:mysqli拡張は、以前のバージョンのmysql拡張よりも大幅に高速に実行されます.mysqli拡張は、MySQLの新しいバージョンのパスワードのコンパクト化と検証プログラムをサポートし、アプリケーションのセキュリティをさらに向上させます.
準備文:準備文は繰り返し使用する文のパフォーマンスを向上させ、mysqli拡張は準備文のサポートを提供します.
デバッグ機能:mysqli拡張によりデバッグ機能がさらに改善され、開発効率が向上しました.
PHPでmysqli拡張を使用するには、プロファイルphpが必要です.iniに次の設定を追加します.
- extension=php_mysqli.dll
プロファイルに上記の設定がある場合は、extensionの前に「;」がないことを確認します.そうでなければ削除します.次にmysqli拡張子を使用してデータベースにアクセスする方法について説明します.
2サーバの接続と切断
mysqliは、データベースとインタラクティブにオブジェクト向けとプロシージャ向けの2つの方法を提供しています.この2つの方法をそれぞれ見てみましょう.
1.オブジェクト向け
オブジェクト向けの方法ではmysqliはクラスにカプセル化され、その構造方法は以下の通りです.
- __construct ([ string $host [, string $username
- [, string $passwd [, string $dbname
- [, int $port [, string $socket ]]]]]] )
上記の構文におけるパラメータの説明は以下の通りである.
host:接続されたサーバアドレス.
username:データベースに接続されているユーザー名.デフォルトはサーバプロセスの所有者のユーザー名です.
passwd:データベースに接続するパスワードで、デフォルト値は空です.
dbname:接続されたデータベース名.
port:TCPポート番号.
socket:UNIXドメインsocket.
MySQLへの接続を確立するには、以下のコードなど、mysqliクラスを構築方法でインスタンス化します.
- <?php
- $db_host="localhost"; //
- $db_user="root"; //
- $db_psw="root"; //
- $db_name="sunyang"; //
- $mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name);
- ?>
mysqliはMySQLに接続するメンバーメソッドconnect()も提供しています.コンストラクションメソッドが空のmysqliクラスである場合、mysqliオブジェクト呼び出しconnect()メソッドを使用してMySQLに接続することもできます.たとえば、次のコードです.
- <?php
- $db_host="localhost"; //
- $db_user="root"; //
- $db_psw="root"; //
- $db_name="sunyang"; //
- $mysqli=new mysqli();
- $mysqli->connect($db_host,$db_user,$db_psw,$db_name);
- ?>
MySQLサーバへの接続を閉じmysqliオブジェクトを介してclose()メソッドを呼び出すには、次のようにします.
- $mysqli->close();
2.プロセス向け
プロシージャ向けのアプローチでは、mysqli拡張は関数mysqli_を提供します.接続()はMySQLに接続されます.この関数の構文フォーマットは次のとおりです.
- mysqli mysqli_connect ([ string $host [, string $username
- [, string $passwd
- [, string $dbname [, int $port
- [, string $socket ]]]]]] )
mysqli_connect()関数の使い方mysql拡張のmysql_connect()関数の使い方はよく似ています.以下はmysqliです.connect()関数の使用例:
コード23-27 CDcodes23章23.5mysqli_connect.php
- <?php
- $connection = mysqli_connect("localhost","root","root","sunyang");
- if ( $connection ) {
- echo " ";
- }else {
- echo " ";
- }
- ?>
MySQLサーバへの接続を閉じるmysqli_を使用するclose()関数:
- mysqli_close();