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.

<?php
// 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.

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

por Jorge Martínez Mauricio :)

¿Algo que comentar?


Populares estos días

    Suscríbete por correo electrónico, recibirás los nuevos escritos antes que nadie y es gratis 😊


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