Я использую последнюю версию OS X El Capitan. Мой MAMP 3.5 PRO. Я использую PHP 7.0.0 в нем. Вы можете увидеть информацию о PHP Вот.
Я понял, что SQLite доступен в OS X по умолчанию. Но версия этого SQLite в OS X была 3.8. Расширение JSON1 доступно только в SQLite начиная с версии 3.9.
Итак, сначала я попытался обновить это. Я загрузил предварительно скомпилированные двоичные файлы (3.12.1) для OS X и замените sqlite3
файл в /etc/bin/
папка. Я думал, что это было сделано, потому что я проверял консоль с запуском /usr/bin/sqlite3
непосредственно. Вы можете увидеть результат ниже. Версия обновлена до последней версии.
Затем я попытался проверить версию SQLite в PHP.
<blockquote>
<?php print_r(SQLite3::version()); ?>
</blockquote>
К сожалению сказано;
Array ( [versionString] => 3.8.10.2 [versionNumber] => 3008010 )
Тогда я застрял в этой точке. Где я могу посмотреть дальше?
Я успешно установил SQLite 3.12.1 через homebrew.
brew install sqlite3 --with-json1 --with-ft5
И теперь я могу запускать функции JSON в консоли. Но все еще не могу подключить API через PHP.
<?php
$db = new SQLite3("sqlite");
$sql = "create table user(name,phone);";
//$db->query("SELECT load_extension('myextension.so');");
$sql = 'insert into user (name, phone) values("oz", json(\'{"cell":"+491765", "home":"+498973"}\'));';
$db->exec($sql);
?>
Warning: SQLite3::exec(): no such function: json in /Users/Fehmi/Data/root/sqlite/info.php on line 17
Задача ещё не решена.
Других решений пока нет …