6

アクセスの経験はありません。

の有無にかかわらず更新/挿入/削除/選択ステートメントを実行する方法は$rs = new com("ADODB.RecordSet"); ?

4

1 に答える 1

15

PDO

PHP を使用して MS Access データベースとやり取りしたい場合は、PDOを利用できます。

<?php
    try {
        $pdo = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\accounts.mdb;Uid=Admin");
    }
    catch (PDOException $e) {
        echo $e->getMessage();
    } 

PDO を使用する場合、DB 操作用の統一されたインターフェースにより、さまざまな RDBM システム間でアプリの移植性を高めることができます。PDO の新しいインスタンスに接続文字列を指定し、正しい PDO ドライバーをインストールするだけです。

この統一されたインターフェイスの結果として、アプリケーションを MS Access から MySQL、SQLite、Oracle、Informix、DB2 などに簡単に移植できます。

挿入例を次に示します。

<?php
try {
   // Connect, 
   // Assuming that the DB file is available in `C:\animals.mdb`
   $pdo = new PDO("odbc:Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\animals.mdb;Uid=Admin");

    // INSERT data
    $count = $pdo->exec("INSERT INTO animals(animal_type, animal_name) VALUES ('kiwi', 'troy')");

    // echo the number of affected rows
    echo $count;

    // close the database connection
    // See: http://php.net/manual/en/pdo.connections.php
    $pdo = null;
}
catch (PDOException $e) {
    echo $e->getMessage();
}

ODBC

非常識な理由で PDO を使用したくない場合は、ODBCを調べることができます。

次に例を示します。

<?php

if (! $conn = odbc_connect('northwind', '', '')) {
    exit("Connection Failed: $conn");
}

if (! $rs = odbc_exec($conn, 'SELECT * FROM customers')) {
    exit('Error in SQL');
}

while (odbc_fetch_row($rs)) {
  echo 'Company name: ', odbc_result($rs, 'CompanyName'), PHP_EOL;
  echo 'Contact name: ', odbc_result($rs, 'ContactName'), PHP_EOL;
}

odbc_close($conn);
于 2009-10-22T07:30:53.187 に答える