Hello, ADO(PHP) World!
Posted on 9月 29th, 2012 by cx20
ADO(PHP)
ADO(ActiveX Data Objects)は、マイクロソフト社が開発した COM ベースの DBMS 接続用 API である。
OLE DB プロバイダを介することで様々な DBMS への接続が可能となっている。
OLE DB プロバイダとしては、以下のようなプロバイダがある。いくつかが OS 標準で付属している他、追加インストールが可能である。
プロバイダ名 |
表示名 |
説明 |
MSDASQL |
Microsoft OLE DB Provider for ODBC |
ODBC データベース |
Microsoft.Jet.OLEDB.4.0 |
Microsoft OLE DB Provider for Microsoft Jet |
Microsoft Jet データベース |
Microsoft.ACE.OLEDB.12.0 |
Microsoft Office 12.0 Access Database Engine OLE DB Provider |
Microsoft Access データベース |
SQLOLEDB |
Microsoft OLE DB Provider for SQL Server |
Microsoft SQL Server |
SQLNCLI10 |
SQL Server Native Client 10.0 |
Microsoft SQL Server |
MSDAORA |
Microsoft OLE DB Provider for Oracle |
Oracle データベース |
なお、PHP 5.4.5 / 5.3.15 より、COM サポートは既定では組み込まれていない為、使用するには、以下の設定を追加する必要がある。
PHP 設定
[COM_DOT_NET]
extension = php_com_dotnet.dll |
[COM_DOT_NET]
extension = php_com_dotnet.dll
ソースコード(PHP + ADO + OLEDB + Jet データベース)
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.Hello.mdb");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?> |
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.Hello.mdb");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?>
ソースコード(PHP + ADO + OLEDB + ACE データベース)
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.Hello.accdb");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?> |
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=.Hello.accdb");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?>
ソースコード(PHP + ADO + OLEDB + SQL Server)
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?> |
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=SQLOLEDB;SERVER=(local);DATABASE=master", "sa", "P@ssW0rd");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?>
ソースコード(PHP + ADO + OLEDB + Oracle)
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=MSDAORA;Data Source=ORCL", "scott", "tiger");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message FROM DUAL");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?> |
<?php
$cn = new COM("ADODB.Connection");
$cn->Open("Provider=MSDAORA;Data Source=ORCL", "scott", "tiger");
$rs = $cn->Execute("SELECT 'Hello, ADO World!' AS Message FROM DUAL");
while (!$rs->EOF) {
echo $rs->Fields[0]->name, "n";
echo "-------------------n";
echo $rs->Fields[0]->value, "n";
$rs->MoveNext();
}
$rs->Close();
$cn->Close();
?>
実行方法(Windows)
実行結果
Message
-----------------
Hello, ADO World! |
Message
-----------------
Hello, ADO World!
Tags: ADO
Categories: ADO, PHP