Manipulando o MS Access (.mdb) com PHP no FreeBSD
Dica publicada em Linux / Configuração
Manipulando o MS Access (.mdb) com PHP no FreeBSD
Depois de muita pesquisa e testes cheguei a solução para acessar MDB com PHP. Essa solução foi montada em um FreeBSD 8 mais pode ser adaptada facilmente para outra plataforma.
Para ficar perfeita a instalação dos componentes necessários, nos teremos que fazer umas adaptações, principalmente no mdbtools. Isso porque a instalação do mdbtools pelo ports do FreeBSD não compila a biblioteca necessária para o ODBC fazer a conexão com o banco.
Vamos a instalação e configuração dos componentes.
# cd /usr/ports/database/unixODBC/
# make install clean
# cd /usr/ports/databases/php5-odbc/
# make install clean
Agora vamos instalar o mdbtools manualmente.
Nesse site você baixa a versão mais recente do mdbtools:
Documentação pode ser encontrada aqui:
# cd /usr/local
# tar xvzf mdbtools-0.6pre1.tar.gz
# cd mdbtools-0.6pre1
# ./configure -prefix=/usr/local -with-unixodbc=/usr/local
# make all && make install
Caso não acesse o banco com uma mensagem parecida com essa:
Verifique se a instalação do mdbtools e que o caminho da biblioteca (libmdbodbc.so.0) está correta na configuração do driver.
Vamos fazer a configuração do odbcinst.ini:
# vi /usr/local/etc/odbcinst.ini
# vi /usr/local/etc/odbc.ini
Vamos criar uma página para testar o acesso.
# vi teste_mdb.php
Caso não acesse o banco com uma mensagem parecida com essa:
Verifique a instalação do mdbtools e que a biblioteca (libmdbodbc.so.0) está com o caminho correto na configuração do driver.
Para ficar perfeita a instalação dos componentes necessários, nos teremos que fazer umas adaptações, principalmente no mdbtools. Isso porque a instalação do mdbtools pelo ports do FreeBSD não compila a biblioteca necessária para o ODBC fazer a conexão com o banco.
Vamos a instalação e configuração dos componentes.
# cd /usr/ports/database/unixODBC/
# make install clean
# cd /usr/ports/databases/php5-odbc/
# make install clean
Agora vamos instalar o mdbtools manualmente.
Nesse site você baixa a versão mais recente do mdbtools:
Documentação pode ser encontrada aqui:
# cd /usr/local
# tar xvzf mdbtools-0.6pre1.tar.gz
# cd mdbtools-0.6pre1
# ./configure -prefix=/usr/local -with-unixodbc=/usr/local
# make all && make install
Caso não acesse o banco com uma mensagem parecida com essa:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, SQL state S1000 in SQLConnect in ........ on line .......
Não foi possível acessar o banco
Warning: odbc_close(): supplied argument is not a valid ODBC-Link resource in ....... on line .......
Verifique se a instalação do mdbtools e que o caminho da biblioteca (libmdbodbc.so.0) está correta na configuração do driver.
Vamos fazer a configuração do odbcinst.ini:
# vi /usr/local/etc/odbcinst.ini
[MDB]
Description = Driver MDB para ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =
Description = Driver MDB para ODBC
Driver = /usr/lib/libmdbodbc.so.0
Setup =
FileUsage =
CPTimeout =
CPReuse =
# vi /usr/local/etc/odbc.ini
[TESTE]
Description = Microsoft Access Try DB
Driver = MDB
Database = /caminho/fisico/do/bando/teste.mdb
Servername = localhost
Username =
Password =
port = 5432
Description = Microsoft Access Try DB
Driver = MDB
Database = /caminho/fisico/do/bando/teste.mdb
Servername = localhost
Username =
Password =
port = 5432
Vamos criar uma página para testar o acesso.
# vi teste_mdb.php
<?php
//phpinfo();
$db = odbc_connect("TESTE","","");
if($db){
print "Acessando banco";
} else {
print "Não foi possível acessar o banco";
}
odbc_close($db);
?>
//phpinfo();
$db = odbc_connect("TESTE","","");
if($db){
print "Acessando banco";
} else {
print "Não foi possível acessar o banco";
}
odbc_close($db);
?>
Caso não acesse o banco com uma mensagem parecida com essa:
Warning: odbc_connect() [function.odbc-connect]: SQL error: [unixODBC][FreeTDS][SQL Server]Unable to connect to data source, SQL state S1000 in SQLConnect in ........ on line .......
Não foi possível acessar o banco
Warning: odbc_close(): supplied argument is not a valid ODBC-Link resource in ....... on line .......
Verifique a instalação do mdbtools e que a biblioteca (libmdbodbc.so.0) está com o caminho correto na configuração do driver.