Мне нужно использовать расширение example.dll
с объектом SQLite3 в PHP. Расширение имеет нестандартную точку входа custom_init
. sqlite3.extension_dir
в php .ini указан правильно. Пробовал следующий код:
$dbconn = new SQLite3('test.db');
$dbconn->loadExtension('example.dll');
$dbconn->exec("SELECT load_extension('example.dll');");
Как видите, я использовал два подхода для его загрузки.
Первый подход: $dbconn->loadExtension('sqldba.dll');
.
- Не работает на моем XAMPP / Apache с ошибкой
Not supported in multithreaded Web servers
, хотя и сделано специально для этого. Что может быть не так в конфигурации XAMPP / Apache? - На одном не очень известном HTTP-сервере он возвращает «Невозможно загрузить расширение» из-за нестандартной точки входа. Могу ли я как-нибудь указать пользовательскую точку входа?
Второй подход: $dbconn->exec("SELECT load_extension('example.dll', 'custom_init');");
.
- Сбой с ошибкой
not authorized
. Есть ли способ вызвать здесь sqlite3_enable_load_extension? Я не могу найти такую функцию в документации модуля «SQLite для PHP».
Upd: как-то связано: Как загрузить расширение sqlite в PDO?