【发布时间】:2020-05-06 21:30:25
【问题描述】:
我需要在 PHP 中使用扩展 example.dll 和 SQLite3 对象。扩展有非标准入口点custom_init。 php.ini 中的sqlite3.extension_dir 已正确指定。尝试了以下代码:
$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 for PHP”模块文档中找不到这样的功能。
更新:不知何故相关:How to load sqlite extension in PDO?
【问题讨论】: