PHP 5.5 поставляется в комплекте с SQLite 3.7.7.1.
С тех пор было выпущено более 20 новых версий SQLite, и www.sqlite.org рекомендует обновлять. В моем случае мне нужна функция, доступная только с SQLite 3.8.0.
Насколько я понял, SQLite не динамически связан в PHP 5.5, но исходный код sqlite скомпилирован во встроенный PHP PDO-драйвер для SQLite.
Есть ли способ использовать текущую версию SQLite в PHP без перестройки PHP из исходного кода (например, каким-то образом динамически связывая sqlite.dll)?
Я мог бы создать новую php_pdo_sqlite.dll, чтобы перейти к существующей установке PHP 5.5 Windows, которая включает текущую версию (3.8.1) SQLite:
Я последовал за пошаговым руководством по созданию PHP в Windows с помощью Visual Studio 2012 Express (доступно с http://www.microsoft.com/en-us/download/details.aspx?id=34673 ).
В источниках 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_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