php - 如何更新与 PHP 捆绑的 SQLite 版本

标签 php windows sqlite pdo

PHP 5.5 与 SQLite 3.7.7.1 捆绑在一起。

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

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

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

最佳答案

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

我关注了nice 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

关于php - 如何更新与 PHP 捆绑的 SQLite 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20327844/

相关文章:

python - 将批处理代码转换为 python 脚本

windows - 如何在 perl 中从当前工作目录后移一级

database - flex 本地数据库 lastInsertId = 0

PHP MYSQL 超时问题

php - 通过链接向 url 添加其他查询

php - 连接表并保留主表中的所有行

NTP 服务器的 php 验证

java - maven-replacer-plugin 和 windows 路径

ios - 计算数据库中的条目

Android SQLite 应用程序崩溃