PEAR/MDB2/mysqli
をテンプレートにして作成
開始行:
#setlinebreak(on)
* mysqliをPEAR::MDB2で利用する [#t9604e0e]
#htmlinsert(googleAdsense.html)
#ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,a...
** 概要 [#cbd8480d]
あまり知られていないが、
mysql関数の拡張機能mysqliは、
[[PAER::DB>PEAR/DB]]では利用できない。
いや、正確には使えるのだが、
使うメリットはない。
mysqliは新たに、
関数APIとオブジェクトAPIの両対応
プリペアドクエリとバインド変数
複数のクエリを同時に実行
などが利用できるのですが、
いずれも[[PAER::DB>PEAR/DB]]では実装されてない。(1.7.6現在)
MDB2もPHP5専用ではないので、
例外処理は使用できないのだが、
それ以外はデフォルトでサポートしている。
** PEAR::MDB2でmysqliを使用するときの注意点 [#ia94bab9]
***必ず使用するオプション [#t284f88a]
MDB2のインスタンスを生成するときに、
必ずつけておかなければならないオプションがある
$dbObj = & MDB2::singleton( SGL_DB::getDSN(), array(
'default_table_type'=>'INN...
'use_transactions' => true...
);
すべてのデータベースをMyISAMで構築している人は別にかまわ...
1つ以上InnoDBやBDBなどを利用している人は、
トランザクションオプションを指定しておく。
***デフォルトキャラクターセット [#x83c1786]
MySQL4.1以上の人はdsnにcharsetを指定しておく方が良い。
$dsn = mysqli://hoge@hoge/hoge?charset=utf8
***singletonパターン、factory methodパターン [#vb660adc]
singletonやfactoryを使用した場合、
(当然なのだが)connectメソッドを別途起動する必要がある。
意外と忘れやすい。(っていうかはまった。)
$dbObj = & MDB2::singleton( ~~ );
$dbObj->connect();
***multi_queryオプション [#ud32f08c]
複数のSQLを一度に送信することが出来るmulti_queryオプシ...
mysqli_queryの代わりにmysqli_multi_queryが動き出すのだが、
これを使用するときは複数のクエリを送信する時のみに限定す...
$sql = <<<SQL
SELECT * FROM hoge;SELECT * FROM hoge1;
SQL;
$dbObj->setOption('multi_query', true);
$dbObj->query( $sql );
$dbObj->setOption('multi_query', false );
一度セットすると永続的にmulti_queryが動き出すのだが、
begin, set autocommit, set namesなど、
単一で使用するクエリもmysqli_multi_queryで動作して、
raiseErrorが発動する。
取得したデータはすべて解放しないと次のSQLは送信できな...
#comment
終了行:
#setlinebreak(on)
* mysqliをPEAR::MDB2で利用する [#t9604e0e]
#htmlinsert(googleAdsense.html)
#ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,a...
** 概要 [#cbd8480d]
あまり知られていないが、
mysql関数の拡張機能mysqliは、
[[PAER::DB>PEAR/DB]]では利用できない。
いや、正確には使えるのだが、
使うメリットはない。
mysqliは新たに、
関数APIとオブジェクトAPIの両対応
プリペアドクエリとバインド変数
複数のクエリを同時に実行
などが利用できるのですが、
いずれも[[PAER::DB>PEAR/DB]]では実装されてない。(1.7.6現在)
MDB2もPHP5専用ではないので、
例外処理は使用できないのだが、
それ以外はデフォルトでサポートしている。
** PEAR::MDB2でmysqliを使用するときの注意点 [#ia94bab9]
***必ず使用するオプション [#t284f88a]
MDB2のインスタンスを生成するときに、
必ずつけておかなければならないオプションがある
$dbObj = & MDB2::singleton( SGL_DB::getDSN(), array(
'default_table_type'=>'INN...
'use_transactions' => true...
);
すべてのデータベースをMyISAMで構築している人は別にかまわ...
1つ以上InnoDBやBDBなどを利用している人は、
トランザクションオプションを指定しておく。
***デフォルトキャラクターセット [#x83c1786]
MySQL4.1以上の人はdsnにcharsetを指定しておく方が良い。
$dsn = mysqli://hoge@hoge/hoge?charset=utf8
***singletonパターン、factory methodパターン [#vb660adc]
singletonやfactoryを使用した場合、
(当然なのだが)connectメソッドを別途起動する必要がある。
意外と忘れやすい。(っていうかはまった。)
$dbObj = & MDB2::singleton( ~~ );
$dbObj->connect();
***multi_queryオプション [#ud32f08c]
複数のSQLを一度に送信することが出来るmulti_queryオプシ...
mysqli_queryの代わりにmysqli_multi_queryが動き出すのだが、
これを使用するときは複数のクエリを送信する時のみに限定す...
$sql = <<<SQL
SELECT * FROM hoge;SELECT * FROM hoge1;
SQL;
$dbObj->setOption('multi_query', true);
$dbObj->query( $sql );
$dbObj->setOption('multi_query', false );
一度セットすると永続的にmulti_queryが動き出すのだが、
begin, set autocommit, set namesなど、
単一で使用するクエリもmysqli_multi_queryで動作して、
raiseErrorが発動する。
取得したデータはすべて解放しないと次のSQLは送信できな...
#comment
ページ名:
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
] [
リンク元
]
Third Project
証券会社ランキング比較