entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Conectar php a una base de datos access 2000

Hola.
Para interactuar con otro sistema, necesito acceder a una tabla en una base de datos access 2000.
Con mi servidor: nginx + php + mysql: No he logrado conectarme sin dsn.
Sin embargo, con quickphp Link puedo conectarme facilmente con el siguiente archivo conecta.php

<?php 
$db_conn = new COM("ADODB.Connection"); 
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("bd1.mdb").";"; 
$db_conn->open($connstr); 

?> 

Podrian darme ejemplos de conexión con distintos drivers? hace mucho encontré un sitio con esos datos, pero ahora no logro encontrarlo nuevamente.
En definitiva, necesito acceder a una base de datos .mdb y mostrar los registros con php.

Desde ya muchas gracias.

0voto

Leonardo-Tadei comentado

En qué Sistema Operativo correrá tu aplicación?

Los métodos de conexión varían de un sistema a otro...

1voto

top21tk comentado

Hola Leonardo.
Utilizaré windows. No sé en que versión porque el "servidor" funcionará en un colegio.
Explico mejor la situación:
Estoy utilizando -NMP server- un pack muy liviano y portable de php+nginx+mysql. Está en softpedia, en ese integrado no puedo conectarme con la base de datos.
Con QuickPHP sí, pero manejo la intranet con NMP server, con el cual no logro conectar.
La intranet deberá mostrar los libros disponibles en biblioteca, la cual se gestiona con access 2000.
Voy a intentar con otro servidor como wamp o easyphp.

Saludos.

0voto

ibon_conesa_agonia comentado

Buenas tardes top21tk,
¿la migración de la base de datos es una opción en el proyecto?

0voto

top21tk comentado

Por ahora no.
EL sistema de biblioteca tiene ciertas funcionalidades que no puedo desarrollarlas en este momento.
Ej. generador y Lector de código de barras.
Muchas gracias por comentar.

1 Respuesta

1voto

Leonardo-Tadei Puntos227320

Hola Top21tk,

PHP es un lenguaje modular, y para conectarte a una base de datos MS Access 2000, tendrás que tener instalado algún módulo que te permita la conexión. Podés partir de cualquier instalación de PHP y luego agregar el módulo; no hace falta que busques una que ya lo tenga.

Adicionalmente, los PDO permiten hacer conexiones via ODBC, pero naturalmente, tenés que tener en el sistema anfitrión el ODBC instalado con soporte para MS Access.

En este artículo tenés un ejemplo de conexión vía PDO: http://www.sitepoint.com/using-an-access-database-with-php/

En este, como se configura el ODBC en MS Windows: http://www.techrepublic.com/article/access-microsoft-sql-server-2000-using-php/

Saludos cordiales!

0voto

top21tk comentado

Gracias Leonardo.
Efectivamente PHP trae por defecto desactivado el la extensión para Access. Si bien no me sirvieron los ejemplos que me diste, logré conectar (en Windows 8 con officce xp - locura!).
El tutorial correcto está en este link

1voto

top21tk comentado

Comparto el código completo de la conexión y consulta SIN DSN!!.

<?php
    // Se especifica la ubicación de la base de datos Access (directorio actual)
    $db = getcwd() . "\\" . 'db1.mdb';
    // Se define la cadena de conexión
    $dsn = "DRIVER={Microsoft Access Driver (*.mdb)};
    DBQ=$db";
    // Se realiza la conexón con los datos especificados anteriormente
    $conn = odbc_connect( $dsn, '', '' );
    if (!$conn) { exit( "Error al conectar: " . $conn);
    }
    // Se define la consulta que va a ejecutarse
    $sql = "SELECT * FROM Tabla1";
    // Se ejecuta la consulta y se guardan los resultados en el recordset rs
    $rs = odbc_exec( $conn, $sql );
    if ( !$rs ) { exit( "Error en la consulta SQL" );
    }
    // Se muestran los resultados
    while ( odbc_fetch_row($rs) ) { 
    $resultado=odbc_result($rs,"nombre"); 
    echo "ok".$resultado; 
    }
    // Se cierra la conexión
    odbc_close( $conn );
    ?>

Muchas gracias a todos los que colaboraron.
EntreDesarrolladores!!

0voto

Leonardo-Tadei comentado

Me alegro que hayas podido!

Por tu código, es similiar al del 2do enlace que te envío, pero en vez de buscarlo como servicio,lo carga como archivo al MDB vía ODBC.

Saludos!

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta