Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Leer bd access desde php?

Estas en el tema de Leer bd access desde php? en el foro de Bases de Datos General en Foros del Web. Hola: Tengo un servidor remoto (el cual no puedo configurar personalmente) en el que funciona una web en asp con accesso a una base de ...
  #1 (permalink)  
Antiguo 12/01/2010, 06:50
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Leer bd access desde php?

Hola:

Tengo un servidor remoto (el cual no puedo configurar personalmente) en el que funciona una web en asp con accesso a una base de datos en access.

Necesito acceder a esa base de datos desde php.

He leido que puedo acceder a traver de las funciones odbc de php pero necesito un Data Source Name (DSN), como puedo conseguirlo?

Dispongo de acceso ftp y me he descargado el archivo .mdb, mi equipo es un mac.

Pueden ayudarme?
Salud!
  #2 (permalink)  
Antiguo 12/01/2010, 08:26
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Leer bd access desde php?

Puedes usar una cadena de conexiòn ("DSN less" le llaman por si quieres buscar informaciòn al respecto).

Un tutorial:
http://www.phpfreaks.com/tutorials/104/0.php

Ahí hace un ejemplo con el uso de la capa de abastracción de BD ADOdb .. pero si usas tus funciones odbc_connect() .. tan sólo debes usar $conn en lugar de donde se te pide el DSN en dicha función:


Código PHP:
Código PHP:
<?php 

$connection_string 
'DRIVER={SQL Server};SERVER=<servername>;DATABASE=<databasename>'

$user 'username'
$pass 'password'

$connection odbc_connect$connection_string$user$pass ); 

?>
Ejemplo extraido de la documentaciòn oficial de PHP sobre la funciòn odbc_connect() .. de los comentarios de los usuarios:

http://www.php.net/manual/en/function.odbc-connect.php

Sustituye la cadena de conexión "DSN Less" por la que corresponda a Access.

Pero .. recuerda que sea con DSN o sin el .. tu BD debe estar en una ruta accesible tipo recurso compartido de una red (en otro PC la BD access y sus .mdb en una intranet .. ) o bien està todo (PHP y esa .mdb) en el mismo PC.

Y algo màs para que leas al respecto (sobre funcionalidad y rendimiento de ese tipo de conexiones):
http://www.powerasp.com/content/data...vs_dnsless.asp
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:

Última edición por FNX_NET; 12/01/2010 a las 08:31
  #3 (permalink)  
Antiguo 12/01/2010, 10:03
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Respuesta: Leer bd access desde php?

Gracias FNX!

Toda tu información es muy útil.
El caso es que mi principal problema es que desconozco la cadena 'DSN less', y mi único acceso al server es via ftp.

Puedo conseguir esta cadena de alguna manera?
Debería pedirsela al administrador del server?

Gracias otra vez,
Salud!
  #4 (permalink)  
Antiguo 12/01/2010, 10:10
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Leer bd access desde php?

es que podrias acceder desde el ftp poniendo el ftp en la ruta del archivo

que va hacer lenta la cosa
no te lo niego, pero segun tus requerimientos es asi la cosa.


<?php
$db_connection = new COM("ADODB.Connection", NULL, 1251);
$db_connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=rutaftp\Employee.mdb;DefaultDir=C:\DataDir";

$db_connection->open($db_connstr);
$rs = $db_connection->execute("SELECT EmpNameLocal, EmpPosLocal FROM tbl_Employee WHERE ID='$IDNo'");
$rs_fld0 = $rs->Fields(0);
$rs_fld1 = $rs->Fields(1);
while (!$rs->EOF) {
$empNameLoc = $rs_fld0->value;
$empWPPos = $rs_fld1->value;
$rs->MoveNext();
}

$rs->Close();
$db_connection->Close();
?>

ahora si el ftp tiene user y pass no se como seria :X
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 13/01/2010, 09:26
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Respuesta: Leer bd access desde php?

Gracias pero no me va todavía...

Me sale este error:

Fatal error: Uncaught exception 'com_exception' with message '
<b>Source:</b> Microsoft OLE DB Provider for ODBC Drivers<br/><b>Description:</b> [Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Jet DSN for process 0x1dcc Thread 0x213c DBC 0x1ae6bbc Jet' del Registro.' in C:\Inetpub\vhosts\xxxxxx.com\httpdocs\_private\odb c.php:28
Stack trace: #0 C:\Inetpub\vhosts\xxxxx.com\httpdocs\_private\odbc .php(28): com->open('DRIVER={Microso...') #1 {main} thrown in C:\Inetpub\vhosts\xxxxx.com\httpdocs\_private\odbc .php on line 28

Mi código:

Código PHP:
$db_connection = new COM("ADODB.Connection"NULL1251);
    
$db_connstr "DRIVER={Microsoft Access DRIVER (*.mdb)}; DBQ=C:\Inetpub\vhosts\xxxx.com\httpdocs\_private\xxxx.mdb; DefaultDir=C:\Inetpub\vhosts\movexvial.com\httpdocs\_private";

    
$db_connection->open($db_connstr); 
Alguna idea?

Sigo peleando a ver si lo consigo. Gracias otra vez.
  #6 (permalink)  
Antiguo 13/01/2010, 09:39
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Leer bd access desde php?

C:\Inetpub\vhosts\xxxx.com\httpdocs\_private\xxxx. mdb

esta es la direccion del ftp

creo que esta mal porque en el ftp se conecta por la ip a la makina DX?
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #7 (permalink)  
Antiguo 13/01/2010, 10:04
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Respuesta: Leer bd access desde php?

Esa ruta la obtuve colocando mi scrpti de prueba en el mismo directorio que la base de datos en el ftp. Al probar el script me decía que había un error y me daba esa ruta absoluta, probé entonces a colocarla y obtuve el mismo resultado, aún más obtengo el mismo resultado ponga lo que ponga en esa ruta.

snif..
  #8 (permalink)  
Antiguo 13/01/2010, 10:30
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Respuesta: Leer bd access desde php?

Cita:
Iniciado por lanas Ver Mensaje
Esa ruta la obtuve colocando mi scrpti de prueba en el mismo directorio que la base de datos en el ftp. Al probar el script me decía que había un error y me daba esa ruta absoluta, probé entonces a colocarla y obtuve el mismo resultado, aún más obtengo el mismo resultado ponga lo que ponga en esa ruta.

snif..
es que estas en un error porque quieres hacerder de una ruta absoluta y para que funcione eso debes estar en la maquina, ya que cuando tratas de acceder a una maquina de forma remota siemopre se debe poner la ip =)
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #9 (permalink)  
Antiguo 13/01/2010, 10:44
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Respuesta: Leer bd access desde php?

Umm..
pero mi script de prueba está en la máquina, así que si le escribo la ruta 'C:\Inetpub\vhosts\xxxx.com\httpdocs\_private\xxxx . mdb' debería poder acceder. De todas formas cuando pongo la ruta absoluta tipo http:// pasa lo mismo.

Seguiré peleando.
Gracias mil
  #10 (permalink)  
Antiguo 13/01/2010, 12:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Leer bd access desde php?

Cita:
pero mi script de prueba está en la máquina, así que si le escribo la ruta 'C:\Inetpub\vhosts\xxxx.com\httpdocs\_private\xxxx . mdb' debería poder acceder.
No. Esa ruta tiene sentido solamente en localhost, es decir, en tu máquina. Fuera de ella. desde una LAN o desde Web, ese disco "C:" no existe como tal, porque ese driver es local. Desde otra máquina, incluso en la misma LAN, ese disco podría ser, X, Y o Z, dependiendo de cuál sea el que tu sistema le asignó.
Por ello, para acceder como rutas absolutas en una LAN se usan las IP o bien los nombres de equipos.

La ruta absoluta de una lan debería llevar: \\IP de la máquina\username\ruta en el disco
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #11 (permalink)  
Antiguo 14/01/2010, 02:33
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Respuesta: Leer bd access desde php?

Gracias otra vez!

En mi local esa ruta no tiene sentido ya que trabajo en Mac, no es una ruta que yo haya creado, me la devolvió el server al intentarme concetar desde un script a la misma altura de la bd en el servidor remoto, no en mi localhost.

De acuerdo que tiene formato de ruta local, pero si mi script está a la misma altura que el archivo .mdb en el servidor remoto, ya no se trata de una conexión remota de php a la bd sino de una conexión local iniciada remotamente. Esto implica que las rutas que utilice el script podrán ser locales no?

Por cierto cuando hablo de servidor remoto me refiero a un servidor web típico, yo puedo colocar mis scripts en él a través de ftp y luego probarlos mediante http, no estoy en ninguna LAN.

Salud!

Última edición por lanas; 14/01/2010 a las 02:36 Razón: me olvidé de...
  #12 (permalink)  
Antiguo 14/01/2010, 06:44
 
Fecha de Ingreso: abril-2005
Mensajes: 50
Antigüedad: 19 años
Puntos: 1
Respuesta: Leer bd access desde php?

Lo conseguí!!

Código PHP:
Ver original
  1. $db_connection = new COM("ADODB.Connection", NULL, 1251);
  2.     $db_connstr = "xxxxx";
  3.  
  4.     $db_connection->open($db_connstr);

Solo necesitaba saber el dns y lo acerté de casualidad, yuhuu!!

Gracias por la ayuda, espero que la solución le sirva a alguien más.

Salud!
  #13 (permalink)  
Antiguo 13/07/2011, 07:35
 
Fecha de Ingreso: mayo-2011
Ubicación: Toluca
Mensajes: 115
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Leer bd access desde php?

Hola yo tengo un problema con una consulta en access y php, no se si puedan ayudarme, ya publique un tema pero no me han podido ayudar: http://www.forosdelweb.com/f21/consu...rentes-928668/

Lo que necesito saber es como usar 2 bases diferentes de access con php, espero me puedan ayudar hasta luego y de antemano muchas gracias.

Etiquetas: access, bd, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:56.