我有一个查询,我在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工作?任何想法或建议将不胜感激,谢谢你提前!