我正在使用最新的OS X El Capitan。我的MAMP是3.5 PRO。我正在运行PHP 7.0.0。您可以看到PHP here的信息。
我认为SQLite默认在OS X中可用。但是OS X中这个SQLite的版本是3.8。 JSON1 extension仅在版本3.9以后的SQLite中可用。
首先,我尝试升级它。我为OS X下载了precompiled binaries(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