Php 在微PACHE中运行SQLite 3
我正在Windows XP上运行microPache(),希望使用SQLite 3数据库 PHP版本是5.2.9-2 我的MicroApache版本通过php.ini中的两行代码支持SQLite 2:Php 在微PACHE中运行SQLite 3,php,windows,apache,sqlite,Php,Windows,Apache,Sqlite,我正在Windows XP上运行microPache(),希望使用SQLite 3数据库 PHP版本是5.2.9-2 我的MicroApache版本通过php.ini中的两行代码支持SQLite 2: extension=php_pdo.dll extension=php_sqlite.dll 我测试扩展是否以3种方式工作: 1.phpinfo() 2.扩展加载()和获取加载的扩展() 3.使用var_dump()s常量SQLITE3_NUM(应该是整数2)的示例代码 并尝试创建数据库(错误:类
extension=php_pdo.dll
extension=php_sqlite.dll 我测试扩展是否以3种方式工作:
1.phpinfo()
2.扩展加载()和获取加载的扩展() 3.使用var_dump()s常量SQLITE3_NUM(应该是整数2)的示例代码 并尝试创建数据库(错误:类“SQLite3”不存在)
我尝试过的事情(如果我都记得的话):
1.从php的完整安装中复制了php_sqlite3.dll,并在php.ini中添加了“extension=php_sqlite3.dll”
->错误“在php5ts.dll中找不到过程入口点gc_remove_zval_from_buffer”
2.用UPX压缩DLL(就像Micropache的其他DLL一样)
->启动时不显示错误,也不在日志文件中显示错误,但不起作用
3.使用php.ini尝试了各种方法
-创建了一个节“[sqlite3]”
-前缀为“sqlite3.”到“extension\u dir=”和“extension=php\u sqlite3.dll”
-…
4.试图使用PDO时,它说“找不到驱动程序”
谁能帮我让SQLite 3正常工作?请注意,我确实有支持SQLite的发行版。但是,它只支持版本2,不支持版本3 我的MicroApache版本支持SQLite 2[…]
我想使用SQLite 3,因为它速度更快,我可以与我在Delphi中为一个项目创建的数据库进行交互,我可以使用Firefox扩展SQLite Manager访问新创建的数据库。连接SQLite 3 DBs的问题和类似问题在一篇题为,这可能会回答您的一些问题 SQLite的最新版本编译到PHP5中,并通过PDO启用 它在PHPINFO.PHP中显示为 2.0-dev“$Id:sqlite.c,v1.166.2.13.2.12 2008/12/31 11:17:44 sebastian Exp$” 听起来更像是测试代码的问题。您是否在使用标准Apache和相同版本的PHP的SQLite系统上运行过交叉检查?
phpinfo()
等的结果是什么
最近的MicroApache发行版附带了一个PHP/SQLite留言簿作为演示/测试。这不管用吗
仔细想想,您可能还没有发现SQLite发行版。为什么不重新访问该站点并检查其他版本(只需解压缩并运行)
我不太依赖
phpinfo()
报告的内容
也许您可以更新您的信息,以确认报告的版本是否准确
更新
我有更多的时间研究和讨论你的问题的答案
PHP实现是局部的,没有很好的文档记录。某些SQLite3过程函数调用仅由基于对象的层次结构公开。过程API只提供了打开SQLite 2数据库的功能,因此从外观上看,您只能使用对象
还有一个PECL扩展php-sqlite3,它是
2008年开发,目前位于
版本0.6。这就是
php5-sqlite3端口安装。但是它
不提供sqlite3\u打开
你正在寻找的功能。相反,它
为您提供了一个面向对象的接口
基于三个类:SQLite3,
SQLite3Stmt和SQLite3Result。它是
这里描述得相当不完整,
尤其是安装说明完全缺失:
这是我不久前看过的一个单独的项目。这是通过编辑原始源代码在MSVC中生成的。此DLL与PHP/PDO不兼容,但可以通过CGI接口使用。或者,可以通过Delphi等获得并使用原始的SQLite 3 DLL。我已经进一步解决了这个问题,但仍然无法创建/访问SQLite 3数据库 有趣的是,您在第1部分中提供的链接提到了一个类“SQLiteDatabase”,它在PHP文档中找不到,也不是SQLite3扩展的一部分(它是面向对象的,正如您在上一篇文章Mad Max中提到的) “SQLiteDatabase”创建了一个数据库,但是当您打开它时,您可以看到它在版本2.1中 谢谢你的帮助 编辑:
PDO只在我使用DSN前缀“sqlite2”时起作用,这并不奇怪,因为phpinfo()只在“PDO”部分下列出驱动程序“sqlite2”。主持人注意:这个答案