|
|
1 2 次のページ
|
|
複数のクエリを同時に実行 |
改良版MySQL拡張サポートでは、それぞれのクエリをセミコロン(;)でつなげることで、複数のクエリを同時に実行できます。
通常のクエリの実行にはquery()メソッドやexecute()メソッドを使いますが、複数のクエリを同時に実行する場合はmulti_query()メソッドを使います(リスト10)。
|
リスト10:multiQuery.php |
<?
include( "child.inc" );
try{
$ChildMySQLi = new CihildMySQLi( "localhost", "root", "", "testdb" );
$SQL = "select no1, no2 from hoge where no1 <= 1 order by no1;".
"select no1, no2 from hoge where no1 <= 2 order by no1;".
"select no1, no2 from hoge where no1 <= 3 order by no1;".
"select no1, no2 from hoge where no1 <= 4 order by no1;".
"select no1, no2 from hoge where no1 <= 5 order by no1;";
$ChildMySQLi->multi_query( $SQL );
do
{
$Result = $ChildMySQLi->store_result( );
while( $Array = $Result->fetch_row( ) )
{
print_r( $Array );
}
$Result->close( );
if(
$ChildMySQLi->more_results( ) )
{echo "-----------------------------\n"; }
} while( $ChildMySQLi->next_result( ) );
} catch( Exception $Exception ) {
print_r( $Exception->getMessage( )."\n" );
}
?> |
結果を取得するときも、通常の結果の取得とは少し違います。まず、store_result()メソッドを使って、結果オブジェクトを取得し、データを取り出します。結果オブジェクトの使い方は、query()メソッドやexecute()メソッドの場合と変わりません。
結果オブジェクトから取得できるデータをすべて得られたら、次はmore_results()メソッドを使って、次の結果
オブジェクトが存在するかどうかを調べていきます。存在する場合にはnext_result()メソッドを使って、次の結果オブジェクトへ移動します。移動した後は、最初のstore_result()メソッドを使って結果オブジェクトを取得し、またmore_results()メソッドを使って、……という処理を、すべての結果オブジェクトを取得するまで繰り返します。
|
|
その他の機能(1) |
改良版MySQL拡張サポートでは、さまざまなオプションを明示的に指定してMySQLデータベースに接続できます。
まず、mysqli_init()関数を使ってMySQLiオブジェクトを初期化します。その後、options()メソッドを使ってオプションを定義します。オプションを定義したら、real_connect()メソッドを使ってMySQLデータベースへの接続処理を行います(リスト11)。
|
リスト11:real_connect.php |
<?
$MySQLi = mysqli_init( );
$MySQLi->options( MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=1" );
$MySQLi->real_connect( "localhost", "root", "", "testdb" );
$MySQLi->query( "insert into hoge values( 88, 'test88' )" );
if( $MySQLi->error != "" ) { die( $MySQLi->error ); }
$MySQLi->close( );
$MySQLi = mysqli_init( );
$MySQLi->options( MYSQLI_INIT_COMMAND, "SET AUTOCOMMIT=0" );
$MySQLi->real_connect( "localhost", "root", "", "testdb" );
$MySQLi->query( "insert into hoge values( 99, 'test99' )" );
if( $MySQLi->error != "" ) { die( $MySQLi->error ); }
$MySQLi->close( );
$MySQLi = new mysqli( "localhost", "root", "", "testdb" );
$Result = $MySQLi->query( "select no1, no2 from hoge order by no1" );
if( $MySQLi->error != "" ) { die( $MySQLi->error ); }
while( $Array = $Result->fetch_assoc( ) )
{
print_r( $Array );
}
?> |
|
1 2 次のページ
|
|
|
|
著者プロフィール
桝形 誠二
様々な言語を経験していく中でPHPと出会い、初心者に易しいという魅力に惹かれ続けて早5年。色んな事をPHPで実装しようとしすぎて周囲の反感を買いやすいのが最近の悩み。
|
|
|
|
|
|
|