Foros del Web » Programando para Internet » PHP »

Conectar a SQLite con PHP5 en WinXP

Estas en el tema de Conectar a SQLite con PHP5 en WinXP en el foro de PHP en Foros del Web. Hola amigos. Tengo un Apache 2.0 corriendo en Windows XP sp1, y he instalado como módulo el Php5 último disponible. Y mi idea era utilizar ...
  #1 (permalink)  
Antiguo 19/04/2006, 18:32
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años
Puntos: 0
Conectar a SQLite con PHP5 en WinXP

Hola amigos.

Tengo un Apache 2.0 corriendo en Windows XP sp1, y he instalado como módulo el Php5 último disponible. Y mi idea era utilizar el SQLite, el cual, según todo lo que he leido, ya viene listo para funcionar. Pero no. Cuando
pongo cualquier función relacionada con él, pues me dice lo típico de "Call to undefined function sqlite_open..." por ejemplo.

He estado mirando y mirando por internet y no he encontrado nada. He toqueteado el php.ini para añadir descomentar la línea
extension=php_sqlite.dll

y además he leído en un foro (francés!) que por si acaso también ponga las líneas

extension=php_pdo.dll
extension=php_pdp_sqlite.dll

pero nada tampoco.

¿Qué puedo hacer?He llegado a pensar que no funciona porque tengo el Php5 como módulo y no como CGI...

Muchas gracias de antemano,, y un saludo
  #2 (permalink)  
Antiguo 20/04/2006, 10:35
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años
Puntos: 0
Holaaa...perdón por molestar demasiado, pero, ¿nadie sabe nada sobre SQLite? (?)
  #3 (permalink)  
Antiguo 20/04/2006, 10:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Supuestamente SQL Lite en PHP 5.x en adelante no requiere nada más que habilites dicha extensión en tu php.ini. La "librería" en sí está incorporada como parte de esa librería/cuerpo de PHP .. (no es como Mysql por ejemplo que requiere de otras .dll por médio que son las "librerías" en sí .. no la "extensión" que son las "funciones" que se añaden a PHP para manejar ese tema concreto).

Consejos ..

1) No habilites más extensiones de las que requieras y hazlo una a una .. Puede que el problema te lo esté dando otra extensión -que sí- que requiera alguna otra .dll extra.
2) Fijate en los comentarios de los usuarios de la extensión en concreto que tengas que instalar ..suelen haber comentarios interesantes con soluciones.

http://www.php.net/manual/en/ref.sqlite.php

No especificas que versión exacta de PHP usas .. pero es necesario que veas la documentación oficial .. por qué hay "detalles" sobre PHP 5.0.x y 5.1.x ..

Cita:
Installation
Read the INSTALL file, which comes with the package. Or just use the PEAR installer with pear install sqlite. SQLite itself is already included, You do not need to install any additional software.

Windows users may download the DLL version of the SQLite extension here: (php_sqlite.dll).

In PHP 5, the SQLite extension and the engine itself are bundled and compiled by default. However, since PHP 5.1.0 you need to manually activate the extension in php.ini (because it is now bundled as shared). Moreover, since PHP 5.1.0 SQLite depends on PDO it must be enabled too, by adding the following lines to php.ini (in order):


extension=php_pdo.dll
extension=php_sqlite.dll



On Linux or Unix operating systems, if you build PDO as a shared extension, you must build SQLite as a shared extension using the --with-sqlite=shared configure option.

SQLite 3 is supported through PDO SQLite.

Windows installation for unprivileged accounts: On Windows operating systems, unprivileged accounts don't have the TMP environment variable set by default. This will make sqlite create temporary files in the windows directory, which is not desirable. So, you should set the TMP environment variable for the web server or the user account the web server is running under. If Apache is your web server, you can accomplish this via a SetEnv directive in your httpd.conf file. For example:


SetEnv TMP c:/temp



If you are unable to establish this setting at the server level, you can implement the setting in your script:

putenv('TMP=C:/temp');


The setting must refer to a directory that the web server has permission to create files in and subsequently write to and delete the files it created. Otherwise, you may receive the following error message: malformed database schema - unable to open a temporary database file for storing temporary tables

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 20/04/2006, 15:09
 
Fecha de Ingreso: abril-2006
Mensajes: 8
Antigüedad: 18 años
Puntos: 0
¡MUCHISIMAS GRACIAS, CLUSTER!

Parece que ya lo he solucionado. En verdad, tengo que dar un mea culpa por no haberme leido en su momento con detenimiento el párrafo que me has pegado en tu post: allí estaba la solución de mi problema

El problema básicamente es que (al tener la última versión del PHP, la 5.1) sí que había añadido, tal como comenté en mi exposición del problema, la extensión php_pdo.dll, pero como no aparecía su linea correspondiente en el apartado de carga de extension dentro del php.ini, la escribí DESPUES
de las demás. Y en el párrafo de la ayuda dice, efectivamente, que

"Moreover, since PHP 5.1.0 SQLite depends on PDO it must be enabled too, by adding the following lines to php.ini (IN ORDER):
extension=php_pdo.dll
extension=php_sqlite.dll"

Osea, que había que poner la línea de carga de la extensión PDO antes que la del SQLite. Y ya está. Vaya tela. En fin...

Reiterar las muchísimas gracias por tu (vuestra) ayuda.

Venga, un saludo.
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 12:46.