【问题标题】:How to update the SQLite version bundled with PHP如何更新与 PHP 捆绑的 SQLite 版本
【发布时间】:2013-12-18 03:13:32
【问题描述】:

PHP 5.5 与 SQLite 3.7.7.1 捆绑在一起。

从那时起,已经有大约 20 个新版本的 SQLite,并且 www.sqlite.org 建议升级。就我而言,我需要一个仅从 SQLite 3.8.0 开始可用的功能。

据我了解,SQLite 在 PHP 5.5 中不是动态链接的,而是将 sqlite 源代码编译到 SQLite 的内置 PHP PDO 驱动程序中。

有没有办法在 PHP 中使用当前的 SQLite 版本而无需从源代码重建 PHP(例如,以某种方式动态链接 sqlite.dll)?

【问题讨论】:

  • 在您的 *nix 操作系统中使用最新版本的 libsqlite 重新编译您的 php-sqlite。就是这样。
  • 感谢您的快速回复。所以我会手动将当前的sqlite源代码复制到PHP源代码树中,然后创建一个新版本的'php_sqlite3.dll'和'php_pdo_sqlite.dll'? "with *nix OS" => 你的意思是我应该在 Unix (cygwin?) for windows 上交叉编译?

标签: php windows sqlite pdo


【解决方案1】:

我可以生成一个新的 php_pdo_sqlite.dll 以放入现有的 PHP 5.5 Windows 安装中,其中包括 SQLite 的当前版本 (3.8.1):

我跟着漂亮的step-by-step guide 使用 Visual Studio 2012 Express(可从http://www.microsoft.com/en-us/download/details.aspx?id=34673 获得)在 Windows 上构建 PHP。

在 PHP 5.5 源代码中,我已将过时的 sqlite 合并文件 ext\sqlite3\libsqlite\sqlite.c 替换为来自 http://www.sqlite.org/download.html 的当前文件。

我用configure --enable-pdo=shared --with-pdo-sqlite=shared

这会创建 php_pdo_sqlite.dll,我可以将其放入现有的 PHP 5.5 安装中,替换该文件的先前(捆绑)版本。

<?php
$dbh = new PDO('sqlite:test1.sqlite');
print_r("SQLite version " . $dbh->query('select sqlite_version()')->fetch()[0]);
$dbh = null;
?>

确认:

SQLite version: 3.8.1

【讨论】:

  • 很棒的答案!现在我只需要启用 RTREE 就完成了!
猜你喜欢
  • 2017-08-17
  • 1970-01-01
  • 2019-03-01
  • 2017-07-18
  • 2013-05-14
  • 1970-01-01
  • 2017-06-12
  • 1970-01-01
相关资源
最近更新 更多