如何在 Apache 2.4 (Windows 7) 上为 PHP 5.6.14 配置 SQLite3?

Posted

技术标签:

【中文标题】如何在 Apache 2.4 (Windows 7) 上为 PHP 5.6.14 配置 SQLite3?【英文标题】:How to configure SQLite3 for PHP 5.6.14 on Apache 2.4 (Windows 7)? 【发布时间】:2016-02-29 15:42:25 【问题描述】:

我在 Windows 7 上,在 Apache 2.4 上使用 php 版本 5.6.14,我正在尝试访问 SQLite3 数据库。

我得到了....

致命错误:找不到类“SQLite3”

这是一个简单的 php 代码...

<?php
  $db = new SQLite3('phpdb');

  if ($db) 
    $db->query("CREATE TABLE dogbreeds (Name VARCHAR(255), MaxAge INT);");
    $db->query("INSERT INTO dogbreeds VALUES ('Doberman', 15)");
    $result = $db->query("SELECT Name FROM dogbreeds");
    var_dump($result->fetchArray(SQLITE3_ASSOC));
   else 
    print "Connection to database failed!\n";
  
?>

目前我在 php.ini 文件中有此配置...

extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll
sqlite3.extension_dir = "D:\Cesare\Lavoro\Utili\Php\5-6-14\ext"

有什么建议吗?非常感谢您提前....

切萨雷

【问题讨论】:

&lt;?php phpinfo(); 在空白网页中的输出是否表明 SQLite3 已启用并正常工作? 我可以看到 PDO 支持 - PDO 驱动程序 (PDO) 和 SQLite 3.x 的 PDO 驱动程序 - SQLite 库 (pdo_sqlite) 已启用,但仅此而已.....谢谢! PDO_SQLite3 实际上是一个不同的扩展,(它是 PDO 驱动程序),您可以重构代码以改用 PDO,或者检查 php 扩展目录中 php_sqlite3.dll 的存在。您可能还想仔细检查您查找的 php.ini 是否正确(phpinfo(); 也可以提供帮助) 我也启用了 PDO_SQLite3 作为最后一次尝试... :-)。我刚刚检查了 php 扩展目录中是否存在 php_sqlite3.dll,而 php.in 是正确的。您认为我启用的配置是我需要启用的所有配置还是还有其他配置? 好吧,如果一切正常,您应该会在 phpinfo() 页面中看到 SQLite3 部分,并且您不会收到您报告的错误消息。如果您最近编辑了 php 配置文件,您可能会重新启动网络服务器并再次检查 phpinfo() 页面。 【参考方案1】:

通过删除“;”启用扩展 php在 php.ini 中的“;extension=php_sqlite3.dll”前面。是否也可以手动检查路径中是否存在扩展名?

`extension=php_pdo_sqlite.dll` AND `extension=php_sqlite3.dll`. 

试试这个

$db = sqlite_open("/absolute/path/my_sqlite.db");

 $db = new SQLiteDatabase('filename')) 

http://php.net/manual/en/book.sqlite.php

【讨论】:

【参考方案2】:

我遇到了同样的问题,我通过使用绝对路径更改“extension_dir”解决了它

extension_dir = "C:/php/php7.0/ext"

其他设置

extension=php_pdo_sqlite.dll
extension=php_sqlite3.dll
sqlite3.extension_dir = "C:/php/php7.0/ext"

【讨论】:

【参考方案3】:

我遇到了同样的问题: - 我正在参加 LinkedIn Learning for SQL Essentials。

-我的操作系统是 windows server 2012 r2

-我从这个网站https://bw.org/ldcsql/下载了xampp,由导师提供。我特地在这个网站上下载了xampp版本,即使有一个较新的版本(我卸载了较新的版本并从网站上安装了那个)。

-从https://www.sqlite.org/download.html 安装 sqlite(为我的计算机下载了 sqlite-dll-win64-x64-3240000.zip 和“sqlite-tools-win32-86-3240000.zip”)。我将它们解压缩并将 DLL 和 def(来自 dll 64)复制到 system32 文件夹,并将“sqlite3”应用程序(来自 sqlite-tools)也复制到 system32。 一个参考网站以防万一https://mislav.net/rails/install-sqlite3/

注意:当我说“安装”时,意思是我将文件粘贴到system32,没有向导安装或其他任何东西。

-在 C:\xampp\php 我寻找类型为“配置设置”的 php.ini,不是 php.ini-production 也不是 php.ini-development。里面的这些应该被取消注释:extension=pdo_mysql、extension=pdo_sqlite 和 extension=sqlite3。

-同样在 C:\xampp\php\ext 中检查您是否有 php_pdo_mysql.dll、php_pdo_sqlite.dll 和 php_pdo_sqlite3.dll

毕竟它起作用了

【讨论】:

【参考方案4】:

如果你使用 XAMPP 点击“config”按钮选择 PHP(php.ini) 然后搜索“sqlite3”取消注释 ;extension=sqlite3 像这样,extension=sqlite3 然后找到 [sqlite3] 并写下你的 php文件和 sqlite 数据库驻留在 [sqlite3] sqlite3.extension_dir ="D:\xampp\htdocs" 然后在浏览器中输入 localhost/yourphpfile.php 你会看到查询结果。

【讨论】:

【参考方案5】:

系统 xuname: Void 4.19.118_1 armv7l Unknown uptodate rF 包:php-7.4.5_1、php-sqlite-7.4.5_1 实际行为 我正在尝试让 PHP SQLite3 扩展在我的 Raspberry PI 上工作。我安装了上述软件包并通过取消注释来启用 /etc/php/php.ini 中的扩展;extension=sqlite3。

执行 php -m 不会将 sqlite 列为 PHP 模块。 执行 php -i 并没有提到任何 SQLite3 支持。

预期行为 安装 php-sqlite-7.4.5_1 并在 /etc/php/php.ini 中启用扩展后,SQLite3 应该可以工作。

重现行为的步骤 安装上述包,启用 SQLite3 扩展并运行 php -r 'new SQLite3("db");':

【讨论】:

以上是关于如何在 Apache 2.4 (Windows 7) 上为 PHP 5.6.14 配置 SQLite3?的主要内容,如果未能解决你的问题,请参考以下文章

2021年最新 apache 2.4 + flask + python3.7 + windows的部署

如何在 Windows 上为 apache 2.4 和 python 3.4 安装 mod_wsgi?

如何使用 Apache Server 2.4 在 PHP 7.4 中启用 openSSL?

在 Win10 / Apache 2.4 / PHP 7.0.10 x64 下未加载 cURL

如何在centos 7上执行html文件(php-fpm和apache 2.4)中的php代码

安装PHP7+Apache 2.4