Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP70 PDO错误+;未捕获错误:类';PDO';_Php_Pdo - Fatal编程技术网

PHP70 PDO错误+;未捕获错误:类';PDO';

PHP70 PDO错误+;未捕获错误:类';PDO';,php,pdo,Php,Pdo,我知道之前已经描述过这个错误消息,我也尝试过修复,比如将pdo.so添加到php.ini等 我所拥有的主要区别是PDO对于我运行的服务器上的网站工作良好——对于我用来更新数据库的命令行脚本,它只是失败了。所以从本质上讲,它是有效的,但并非在所有情况下都有效 这在我升级到PHP7.0.8/9之前是有效的 sudo yum list installed php70* Loaded plugins: priorities, replace, update-motd, upgrade-helper 95

我知道之前已经描述过这个错误消息,我也尝试过修复,比如将pdo.so添加到php.ini等

我所拥有的主要区别是PDO对于我运行的服务器上的网站工作良好——对于我用来更新数据库的命令行脚本,它只是失败了。所以从本质上讲,它是有效的,但并非在所有情况下都有效

这在我升级到PHP7.0.8/9之前是有效的

sudo yum list installed php70*
Loaded plugins: priorities, replace, update-motd, upgrade-helper
958 packages excluded due to repository priority protections
Installed Packages
php70.x86_64                 7.0.8-1.13.amzn1                      @amzn-updates
php70-cli.x86_64             7.0.8-1.13.amzn1                      @amzn-updates
php70-common.x86_64          7.0.8-1.13.amzn1                      @amzn-updates
php70-json.x86_64            7.0.8-1.13.amzn1                      @amzn-updates
php70-php-bcmath.x86_64      7.0.9-1.el6.remi                      @remi-safe
php70-php-cli.x86_64         7.0.9-1.el6.remi                      @remi-safe
php70-php-common.x86_64      7.0.9-1.el6.remi                      @remi-safe
php70-php-fpm.x86_64         7.0.9-1.el6.remi                      @remi-safe
php70-php-gd.x86_64          7.0.9-1.el6.remi                      @remi-safe
php70-php-json.x86_64        7.0.9-1.el6.remi                      @remi-safe
php70-php-mbstring.x86_64    7.0.9-1.el6.remi                      @remi-safe
php70-php-mcrypt.x86_64      7.0.9-1.el6.remi                      @remi-safe
php70-php-mysqlnd.x86_64     7.0.9-1.el6.remi                      @remi-safe
php70-php-opcache.x86_64     7.0.9-1.el6.remi                      @remi-safe
php70-php-pdo.x86_64         7.0.9-1.el6.remi                      @remi-safe
php70-php-pear.noarch        1:1.10.1-4.el6.remi                   @remi-safe
php70-php-pecl-igbinary.x86_64
                             1.2.2-0.2.20160715gita87a993.el6.remi @remi-safe
php70-php-pecl-redis.x86_64  3.0.0-1.el6.remi                      @remi-safe
php70-php-process.x86_64     7.0.9-1.el6.remi                      @remi-safe
php70-php-xml.x86_64         7.0.9-1.el6.remi                      @remi-safe
php70-process.x86_64         7.0.8-1.13.amzn1                      @amzn-updates
php70-runtime.x86_64         1.0-5.el6.remi                        @remi-safe
php70-xml.x86_64             7.0.8-1.13.amzn1                      @amzn-updates
有没有办法手动包含PDO类

为什么只有在命令行上才会失败? 注意:我对web和commandline使用的是相同的database.class.php(我已经编写过),相同的类,但结果不同


想法?

您安装了两个不同的PHP堆栈

  • php70-*(来自amzn的7.0.8),这些可能是“基本”包,可能提供/usr/bin/php,但没有PDO扩展(php PDO包)

  • php70 php-*(来自remi的7.0.9),这是一个软件集合,设计用于并行安装,提供php70命令(您也可以使用“scl enable php70 php”命令)


有关SCL的更多信息,请参见

您使用的是红帽还是Centos?tbh也可以是其他风格,但我猜您在bash中的路径指向错误的php可执行文件。老实说,很难说是的,我来看看这条路。。。谢谢可能是PHP.8和.9的混合-安装来自两个不同的位置-remi和amznIt听起来你的脚本中有一个
名称空间
语句,因此,在这种情况下,您需要为根命名空间
$PDO=new\PDO
实例化PDO对象,您可能有两个不同的
php.ini
配置文件;一个用于web,另一个用于CLI。在控制台中运行
php-i
,查看加载了哪些配置文件。CLI one可能没有加载PDO和PDO_mysql扩展。你看,你完全是对的,现在很明显。我已经删除了AWS php包,并通过remi重新安装了php。现在都在同一个版本上,一切正常。非常感谢你的时间。。。谢谢