• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

416
Vistas
No se puede cargar la extensión en el módulo SQLite3, PHP

Necesito usar la extensión example.dll con el objeto SQLite3 en PHP. La extensión tiene un punto de entrada no estándar custom_init . sqlite3.extension_dir en php.ini se especifica correctamente. Probé el siguiente código:

 $dbconn = new SQLite3('test.db'); $dbconn->loadExtension('example.dll'); $dbconn->exec("SELECT load_extension('example.dll');");

Como se puede ver, utilicé dos enfoques para cargarlo.

Primer enfoque: $dbconn->loadExtension('sqldba.dll'); .

  • No funciona en mi XAMPP/Apache con el error Not supported in multithreaded Web servers , aunque se hace especialmente para esto. ¿Qué puede estar mal en la configuración de XAMPP/Apache?
  • En un servidor HTTP no tan conocido, devuelve "No se puede cargar la extensión" debido a un punto de entrada no estándar. ¿Puedo especificar un punto de entrada personalizado de alguna manera?

Segundo enfoque: $dbconn->exec("SELECT load_extension('example.dll', 'custom_init');"); .

  • Falla con error not authorized . ¿Hay alguna forma de llamar a sqlite3_enable_load_extension aquí? No puedo encontrar dicha función en la documentación del módulo "SQLite for PHP".

Upd: de alguna manera relacionado: ¿Cómo cargar la extensión sqlite en PDO?

about 3 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

  • "No compatible con servidores web multiproceso"

De todos modos, esto no funcionará en IIS, lo cual (aparentemente) es preferible para mí. De acuerdo con esto (línea 414) solo está habilitado en ZTS (Zend Thread Safety). Deshabilitarlo se discute aquí . Todavía no tengo idea de qué está mal con la configuración de Apache.

  • "No se puede cargar la extensión" debido a un punto de entrada no estándar. ¿Puedo especificar un punto de entrada personalizado de alguna manera?

Nope. Tal vez alguien debería agregar una solicitud de función de "punto de entrada personalizado" al rastreador de PHP, no parece tan difícil.

  • "SELECT load_extension('example.dll', 'custom_init');" - falla con el error "no autorizado".

Debe llamar a sqlite3_enable_load_extension antes de hacer load_extension desde la consulta, y no hay un análogo de sqlite3_enable_load_extension en php-sqlite. Parchear PDO-Sqlite para esto se describe aquí , pero es muy inseguro. Agregar esto como una nueva característica en php-sqlite sería mucho mejor.

about 3 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda