База данных PHP и Microsoft Access — подключение и CRUD

У меня нет опыта доступа.

Как выполнить оператор update/insert/delete/select с $rs = new com("ADODB.RecordSet"); и без него?


person Mask    schedule 22.10.2009    source источник
comment
Используете ли вы уровень абстракции ADOdb (adodb.sourceforge.net)? Я использовал его в прошлом и нашел его довольно хорошим. Если да, поможет ли эта страница? phplens.com/adodb/code.initialization.html#dsnless   -  person David-W-Fenton    schedule 08.03.2010


Ответы (1)


ЗОП

Если вы хотите взаимодействовать с базой данных MS Access с помощью PHP, доступен 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, благодаря унифицированному интерфейсу для операций с БД, у вас есть возможность сделать ваше приложение более переносимым между различными системами 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);
person sepehr    schedule 22.10.2009
comment
Можете ли вы более конкретно рассказать о том, как выполнять операции CRUD? - person Mask; 22.10.2009
comment
Mask, прямо там есть операция Insert. Используйте соответствующие операции select update и delete SQL. - person Josh Smeaton; 22.10.2009
comment
необходимо включить строку extension=php_pdo_odbc.dll под заголовком Dynamic Extensions в файле php.ini - person zkanoca; 13.12.2016