Access
 sql >> Database >  >> RDS >> Access

Connessione di PHP su Linux a Microsoft Access su una condivisione di Windows

Il driver ODBC di Microsoft Access di Easysoft ti consente di lavorare con database in formato MDB /ACCDB in ambienti in cui sia gli utenti Linux che Windows devono accedere a quel database.

Ad esempio, potresti voler pubblicare un database di Access basato su Windows su un sito Web Intranet basato su un server Linux. Questo è l'esempio trattato in questo blog.

Per fare questo:

  1. Scarica il driver Access ODBC e installalo e acquisisci la licenza sul tuo server Web Linux.
  2. Modifica l'origine dati ACCESS_SAMPLE in odbc.ini in modo che si connetta al database sulla tua condivisione Windows. Per fare ciò:
    [ACCESS_SAMPLE]
    Driver=Easysoft ODBC-ACCESS
    # Path to the database on Linux machine
    mdbfile=/home/samba/ms_access/Northwind.accdb
    # The SMB URL for the database file. Use this syntax for the SMB URL:
    # smb://windows_host/share/path/filename
    smbpath=smb://windows_machine/accounts_share/ms_access/Northwind.accdb
    # The path to the libsmbclient library on the Access ODBC driver machine.
    smblib=/usr/lib/libsmbclient.so
    smbuser=my_windows_user
    smbauth=my_winodws_password
    readonly=yes
    exclusive=no
    ignore_rel=no
  3. Verifica che puoi connetterti in isql . Ad esempio:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v ACCESS_SAMPLE
  4. Installa il pacchetto PHP PDO-ODBC e crea una pagina PHP sotto il tuo server web che si connetta al database di Access. Ad esempio:
    <?php
      $con = odbc_connect("odbc:ACCESS_SAMPLE", "", "");
      $err = odbc_errormsg();
      if (strlen($err) <> 0) {
        echo odbc_errormsg();
      } else {
        $rs2 = odbc_exec($con, "select * from Suppliers");
        odbc_result_all($rs2);
        odbc_close($con);
      }
    ?>

Nota È necessario impostare le autorizzazioni in modo che l'utente con cui è in esecuzione il server Web, ad es. www-data, ha accesso in scrittura al file del database di Access.