Connecting PHP on Linux to Microsoft Access on a Windows Share
Easysoft's Microsoft Access ODBC driver enables you to work with MDB /ACCDB format databases in environments where both Linux and Windows users need to access that database.
For example, you might want to publish a Windows-based Access database on an intranet web site based on a Linux server. This the example covered in this blog.
To do this:
- Download the Access ODBC Driver and install and license it on your Linux web server machine.
- Modify the ACCESS_SAMPLE data source in odbc.ini so that it connect to the database on your Windows share. To do this:
[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
- Test that uou can connect in
isql
. For example:cd /usr/local/easysoft/unixODBC/bin ./isql.sh -v ACCESS_SAMPLE
- Install the PHP PDO-ODBC package and create a PHP page under your web server that connects
to the Access database. For example:
<?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); } ?>
Note You need to set permissions so that the user the web server is running under, e.g. www-data, has write access to the Access database file.