Hoy se me presentó la oportunidad de abrir un archivo de access... pero como requerimos la información en una base de datos más decente (MySQL) para explotar los datos desde web, entonces nos dimos a la tarea de buscar cómo hacerlo. Esto funcionó en un servidor con Ubuntu Linux 8.04 LTS pero debería funcionar en cualquier distribución de Linux.
Lo primero, es instalar mdbtools:
sudo apt-get install mdbtools
Después, hacemos un script que es el que leerá la información de base de datos y luego la exportará a MySQL. Este script es un ejemplo, se debería adaptar según las necesidades.
// convierte a mysql una base de datos de Microsoft Access // Jorge M. http://tar.mx/ // $sql = new MySQLi("localhost","user","pass","database"); //conexión MySQL $file = "05oct12.mdb"; //base de datos en access // // obtenemos las tablas de access $tables = "/usr/bin/mdb-tables $file"; $tables = `$tables`; $tables = explode(" ",$tables); if(!empty($tables)) { foreach($tables aS $t) { $t = trim($t); if(empty($t)) continue; echo "Procesando tabla $t...n"; $cmd = '/usr/bin/mdb-export -H -D %s -Q -d "t" -R "n" '.$file.' '.$t; $data = `$cmd`; $data = explode("n",$data); if(!empty($data)) { foreach($data AS $d) { $d = explode("t",$d); if(empty($d)) continue; $q = "INSERT INTO registros values ( null,'".addslashes($d[0])."', '".addslashes($d[1])."', '".addslashes($d[n])."')"; $sql->Query($q); } } } }
En la parte donde inserto datos (variable $q), obviamente deberán ser de acuerdo a los datos que previamente conozcas de tu estructura en Access.
https://tar.mx/tar.svg