2010-06-05 34 views
2

Je dois pouvoir me connecter à un fichier MDB dans un environnement LAMP (sous Linux) et finalement insérer des données converties dans un db Mysql.Lire les données binaires d'un fichier MDB fonctionnant sous LAMP

  • Les données dont j'ai besoin d'accéder est stocké comme blob (Long Binary Data selon à Access) dans le fichier MDB. J'ai pas encore pu effectivement avoir un regarder les données mais on m'a dit que le BLOB se compose de chaînes octets . Quelque chose le long des lignes de :

    0x1c 0x10 0x27 0x00 0x00

  • je dois analyser les chaînes d'octets et convertir en un format qui est
    humain lisible. J'ai accès à la documentation qui explique les
    différentes chaînes d'octets.

Donc, ce qui est vraiment deux questions:

  1. Comment un accès get au fichier MDB via PHP * (fonctionnant sous LAMP) et lire le blob (je ne ont accès à une plate-forme Windows)?
  2. Quelle serait la meilleure façon d'analyser les données binaires (en PHP *) une fois que je suis capable de se connecter au fichier MDB?

* Ou existe-t-il d'autres méthodes/langages plus appropriés?

Répondre

3

Il existe une bibliothèque PECL qui se connecte à un outil d'analyse MDB basé sur Linux.

Reading Access Databases with PHP and PECL

Dans cet article, je vais vous présenter l'extension mdbtools de PHP, qui fournit une API pour lire les données de programmation des fichiers de base de données Microsoft Access. Si votre projet implique de travailler avec de tels fichiers, d'extraire des enregistrements de base de données soit pour des calculs ou pour la conversion vers d'autres formats, vous trouverez cette extension inestimable. Entrez, et voyez comment ça marche!

Vous aurez probablement besoin d'un accès administrateur sur le serveur pour installer les bibliothèques nécessaires.

Si vous pouvez utiliser un serveur Windows, vous devriez pouvoir vous connecter directement au fichier en utilisant ODBC en utilisant ADODb ou via le COM Windows comme indiqué dans this blog entry.

+0

Malheureusement, je n'ai pas accès à un serveur Windows. La production se fera dans un environnement hébergé exécutant LAMP. Je viens de vérifier et mon fournisseur n'a pas mdbtools. J'ai regardé à l'aide de PDO comme décrit ici: http://stackoverflow.com/questions/1605473/how-to-operate-access-with-php mais il semblerait que PHP dans l'environnement hébergé est compilé support de débit pour PDO/ODBC. Eh bien ... – BusterX

+0

@Buster Je pense que toute solution basée sur PDO/ADOdb/ODBC aurait toujours besoin d'une source de données en direct lisant le fichier MDB - quelque chose que vous ne pouvez obtenir que sur Windows. Dommage...Vous devrez peut-être faire une conversion en quelque chose de plus facile à lire, par ex. CSV ou Excel. –

+0

@Pekka Je commençais à espérer lire sur PDO (et ADOdb) et utiliser une connexion sans DSN, mais il semble que les deux modèles nécessitent Windows. * soupir * ... Eh bien, nous sommes encore avec la partie 2 de ma question, alors peut-être que nous pourrions nous concentrer sur cela pendant que je vais trouver un fournisseur VPS qui me permettra d'installer Windows? – BusterX