SQLite execute()通过Apache工作但不通过PHP CLI工作?

时间:2015-11-04 10:50:48

标签: php sqlite pdo command-line-interface

我有一个查询,我在PHP 5.5.26中运行,以访问SQLite数据库中的一些信息:

PHP Fatal error:  Call to a member function execute() 
on a non-object in script.php on line 4

因此,通过Apache,我可以在浏览器中查看脚本并获得结果,它可以正常工作。

如果我尝试从shell使用PHP CLI运行此脚本:

php script.php

我明白了:

$stmt->execute();

第4行是:php --ini

因此,通过浏览器客户端和Apache可以正常工作,但是当我尝试通过CLI执行此操作时,它不会。

通常CLI将使用不同的php.ini文件到Apache正在使用的文件,但在我的情况下,由于使用的设备,CLI使用与Apache相同的php.ini文件。所以,当我通过CLI Configuration File (php.ini) Path: /etc/php/apache2-php5 Loaded Configuration File: /etc/php/apache2-php5/php.ini 时,我得到:

phpinfo

实际上,它与Apache正在使用的php.ini文件相同。当我通过CLI php -i唤起PDO PDO support => enabled PDO drivers => mysql, sqlite pdo_mysql PDO Driver for MySQL => enabled Client API version => 5.5.43-MariaDB Directive => Local Value => Master Value pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock pdo_sqlite PDO Driver for SQLite 3.x => enabled SQLite Library => 3.8.6 sqlite3 SQLite3 support => enabled SQLite3 module version => 0.7-dev SQLite Library => 3.8.6 Directive => Local Value => Master Value sqlite3.extension_dir => no value => no value 时,它给出了以下突出显示的内容:

android:scaleType="scaleXY"

因此安装并启用了SQLite,安装并启用了SQLite的PDO模块。

现在这就是我被困住的地方。为什么它在Apache中工作但不能通过PHP CLI工作?任何想法或建议将不胜感激,谢谢你提前!

0 个答案:

没有答案