如何在MAMP中升级SQLite以使用JSON1扩展?

时间:2016-04-11 21:46:34

标签: php sqlite mamp sqlite-json1

我正在使用最新的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。您可以在下面看到结果。该版本已升级到最新版本。

enter image description here

然后我尝试用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

0 个答案:

没有答案