Obtener datos de Microsoft Access en PHP

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.

+ fotos / videos

https://tar.mx/tar.svg

Almacenado en Base de Datos, PHP, Microsoft Access, MySQL

por Jorge Martínez Mauricio :)

blog / fotos / archivo

Obtener datos de Microsoft Access en PHP

tar.mx es un blog sobre fotografía, tecnología y otras chunches

modificado viernes 16 de julio de 2021, 14:14

cuentame