我正在使用最新的 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 版本后可用。
所以首先,我尝试升级它。我为 OS X 下载了预编译的二进制文件(3.12.1)并替换了sqlite3
文件/etc/bin/
夹中的文件。我认为它已经完成,因为我/usr/bin/sqlite3
直接运行检查控制台。您可以在下面看到结果。版本升级到最新版本。
然后我尝试检查 PHP 中的 SQLite 版本。
<blockquote>
<?php print_r(SQLite3::version()); ?>
</blockquote>
不幸的是它说;
Array ( [versionString] => 3.8.10.2 [versionNumber] => 3008010 )
然后我就卡在了这一点上。接下来我可以在哪里看?
更新
我通过自制软件成功安装了 SQLite 3.12.1。
brew install sqlite3 --with-json1 --with-ft5
现在我可以在控制台中运行 json 函数了。但仍然无法通过 PHP 连接 API。
<?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