загрузить расширение sqlite из php на ubuntu (15.04)

На моей машине с Ubuntu 15.04 я пытаюсь загрузить расширение sqlite в свой php-код, используя следующий фрагмент:

<?php #content of test.php
$db = new SQLite3(':memory:');
$db->query("SELECT load_extension('/dir/to/sqlite/extension/libsqlitefunctions.so');");
$resultSet = $db->query("SELECT asin(1) as a;");

Но я всегда получаю следующее сообщение об ошибке:

PHP Warning:  SQLite3::query(): not authorized in /my/dir/test.php on line 3
PHP Stack trace:
PHP   1. {main}() /my/dir/test.php:0
PHP   2. SQLite3->query() /my/dir/test.php:3
PHP Warning:  SQLite3::query(): Unable to prepare statement: 1, no such function: asin in /my/dir/test.php on line 4
PHP Stack trace:
PHP   1. {main}() /my/dir/test.php:0
PHP   2. SQLite3->query() /my/dir/test.php:4

Загрузка того же расширения из командной строки работает нормально:

$sqlite3
SQLite version 3.8.7.4 2014-12-09 01:34:36
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> SELECT load_extension('/dir/to/sqlite/extension/libsqlitefunctions.so');
sqlite> SELECT ASIN(1) as a;
1.5707963267949

Увидеть этот вопрос о том, как заставить это работать.

Может кто-нибудь помочь мне получить это работает изнутри php на Ubuntu 15.04.

Большое спасибо заранее.

Ура,
D.

PS: поскольку я использую это при запуске тестов phpunit с sqlite в качестве базы данных, я запускаю его в командной строке, а не в контексте веб-сервера.

0

Решение

Мне не удалось заставить его работать в Ubuntu 15.04. Обновление до Ubuntu 16.04 решило проблему.

PS: версия php по умолчанию в Ubuntu 16.04 — 7.0.x. Возможно, вам придется установить php5.6, если вы хотите его использовать. Увидеть http://www.lornajane.net/posts/2016/php-7-0-and-5-6-on-ubuntu

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]