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に次の設定を追加します.

  
  
  
  
  1. extension=php_mysqli.dll 

プロファイルに上記の設定がある場合は、extensionの前に「;」がないことを確認します.そうでなければ削除します.次にmysqli拡張子を使用してデータベースにアクセスする方法について説明します.
2サーバの接続と切断
mysqliは、データベースとインタラクティブにオブジェクト向けとプロシージャ向けの2つの方法を提供しています.この2つの方法をそれぞれ見てみましょう.
1.オブジェクト向け
オブジェクト向けの方法ではmysqliはクラスにカプセル化され、その構造方法は以下の通りです.

  
  
  
  
  1. __construct ([ string $host [, string $username   
  2. [, string $passwd [, string $dbname 
  3.          [, int $port [, string $socket ]]]]]] ) 

上記の構文におけるパラメータの説明は以下の通りである.
host:接続されたサーバアドレス.
username:データベースに接続されているユーザー名.デフォルトはサーバプロセスの所有者のユーザー名です.
passwd:データベースに接続するパスワードで、デフォルト値は空です.
dbname:接続されたデータベース名.
port:TCPポート番号.
socket:UNIXドメインsocket.
MySQLへの接続を確立するには、以下のコードなど、mysqliクラスを構築方法でインスタンス化します.

  
  
  
  
  1. <?php  
  2. $db_host="localhost";   //  
  3. $db_user="root";    //  
  4. $db_psw="root";     //  
  5. $db_name="sunyang"//  
  6. $mysqli=new mysqli($db_host,$db_user,$db_psw,$db_name);   
  7. ?> 

mysqliはMySQLに接続するメンバーメソッドconnect()も提供しています.コンストラクションメソッドが空のmysqliクラスである場合、mysqliオブジェクト呼び出しconnect()メソッドを使用してMySQLに接続することもできます.たとえば、次のコードです.
 

  
  
  
  
  1. <?php  
  2. $db_host="localhost";   //  
  3. $db_user="root";    //  
  4. $db_psw="root";     //  
  5. $db_name="sunyang"//  
  6. $mysqli=new mysqli();  
  7. $mysqli->connect($db_host,$db_user,$db_psw,$db_name);  
  8. ?> 

MySQLサーバへの接続を閉じmysqliオブジェクトを介してclose()メソッドを呼び出すには、次のようにします.

  
  
  
  
  1. $mysqli->close(); 

2.プロセス向け
プロシージャ向けのアプローチでは、mysqli拡張は関数mysqli_を提供します.接続()はMySQLに接続されます.この関数の構文フォーマットは次のとおりです.

  
  
  
  
  1. mysqli mysqli_connect ([ string $host [, string $username   
  2. [, string $passwd 
  3.                [, string $dbname [, int $port   
  4.                [, string $socket ]]]]]] ) 

mysqli_connect()関数の使い方mysql拡張のmysql_connect()関数の使い方はよく似ています.以下はmysqliです.connect()関数の使用例:
コード23-27 CDcodes23章23.5mysqli_connect.php

  
  
  
  
  1. <?php  
  2. $connection = mysqli_connect("localhost","root","root","sunyang");  
  3. if ( $connection ) {  
  4.     echo " ";  
  5. }else {  
  6.     echo " ";  
  7. }  
  8. ?> 

MySQLサーバへの接続を閉じるmysqli_を使用するclose()関数:

  
  
  
  
  1. mysqli_close();