sql >> Base de Datos >  >> RDS >> Access

Conexión de PHP en Linux a Microsoft Access en un recurso compartido de Windows

El controlador ODBC de Microsoft Access de Easysoft le permite trabajar con bases de datos en formato MDB/ACCDB en entornos donde los usuarios de Linux y Windows necesitan acceder a esa base de datos.

Por ejemplo, es posible que desee publicar una base de datos de Access basada en Windows en un sitio web de intranet basado en un servidor Linux. Este es el ejemplo cubierto en este blog.

Para hacer esto:

  1. Descargue el controlador ODBC de Access e instálelo y obtenga la licencia en su máquina servidor web Linux.
  2. Modifique la fuente de datos ACCESS_SAMPLE en odbc.ini para que se conecte a la base de datos en su recurso compartido de Windows. Para hacer esto:
    [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. Pruebe que puede conectarse en isql . Por ejemplo:
    cd /usr/local/easysoft/unixODBC/bin
    ./isql.sh -v ACCESS_SAMPLE
  4. Instale el paquete PHP PDO-ODBC y cree una página PHP en su servidor web que se conecte a la base de datos de Access. Por ejemplo:
    <?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 Debe establecer permisos para que el usuario con el que se ejecuta el servidor web, p. www-data, tiene acceso de escritura al archivo de base de datos de Access.