単純な接続方法だが、意外にハマったのでメモを残す。
1.COMを使った方法(ADO)
mb_language( "ja" );
mb_internal_encoding("UTF-8");
$cn = new COM( "ADODB.Connection" );
$cn->CursorLocation = 3;
$rs = new COM( "ADODB.Recordset" );
$ConnectionString = "Provider=MSDASQL;" .
"Driver={Microsoft ODBC for Oracle}" .
";SERVER=srv001" .
";UID=test" .
";PWD=test" .
";";
$cn->Open( $ConnectionString );
$query = "select * from M_STAFF";
$rs->Open( $query, $cn );
while( !$rs->EOF ) {
echo "{$ret['staffcode']}";
//ワークテーブルへインサート
$query = "update W_STAFF set staffcode = '{$ret['staffcode']}'";
$cn->Execute( $query );
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
ちなみにoracleドライバを使用するときは下記のように文字列を変更する。
$ConnectionString = "Provider=MSDASQL;" .
";Driver={Oracle in OraClient11g_home1}" .
";DBQ=test" .
";UID=test" .
";PWD=test" .
";";
接続文字列の指定方法
- Provider : OLEDBプロバイダ名
- Data Source : 接続するデータベース
- User ID : ユーザー名
- Password : パスワード
OLEDBプロバイダの指定方法
- Jet4.0 (Access2000以降) : Provider=Microsoft.Jet.OLEDB.4.0
- SQL Server : Provider=SQLOLEDB
- Oracle : Provider=MSDAORA
- ODBC 経由 : Provider=MSDASQL
ちなみに今回、上記のMicrosoftODBCforOracleの方法を試したところ、ページを表示した段階でPCがフリーズを繰り返した。
原因がわからなかったため、接続方法を下記のように変更することに。
2.odbc_connectを使った方法
$db=odbc_connect("Driver={Microsoft ODBC for Oracle};Server=test;UID=test;PWD=test;","test","test");
$query="select * from M_STAFF";
$result=odbc_exec($db,$query);
while(odbc_fetch_row($result)){
echo odbc_result($result,2)."<br>";
}
odbc_close($db);
正常に接続できた。
基礎からのOracle (DVD付) (プログラマの種シリーズ)
- 作者: 西沢夢路
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2010/05/28
- メディア: 大型本
- 購入: 2人 クリック: 15回
- この商品を含むブログ (10件) を見る
新・門外不出のOracle現場ワザ エキスパートが明かす運用・管理の極意 (DB Selection)
- 作者: 小田圭二,大塚信男,五十嵐建平,谷敦雄,宮崎博之,神田達成,村方仁
- 出版社/メーカー: 翔泳社
- 発売日: 2012/08/17
- メディア: 単行本(ソフトカバー)
- 購入: 2人 クリック: 5回
- この商品を含むブログ (1件) を見る