Laravel:找不到PDO类错误

时间:2016-07-05 01:13:39

标签: php laravel pdo

在Centos上部署laravel项目期间,我遇到了这个错误。

PHP Fatal error:  Class 'PDO' not found in /var/www/html/<laravel_project_name>/config/database.php on line 16

我已经通过编辑php.ini文件启用了pdo扩展。

extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so
extension=sqlite.so

当我尝试使用php -v时,我遇到了以下错误。

PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/pdo_mysql.so' - /usr/lib64/php/modules/pdo_mysql.so: undefined symbol: mysqlnd_allocator in Unknown on line 0

我在编辑php.ini文件后重启了httpd服务器。 请帮我修复此错误。 问候。

2 个答案:

答案 0 :(得分:2)

你得到的错误意味着你的php配置文件(通常是php.ini)中有一个extension = ...或zend_extension = ...行试图加载该扩展但它无法加载它的文件,因为它不存在或者没有访问权限。

在这种情况下,您已在dtstart dtend count(*) July, 04 2016 19:13:00 2016-07-04 19:13:29 1 July, 04 2016 19:13:30 2016-07-04 19:14:24 2 July, 04 2016 19:14:25 2016-07-04 19:14:38 1 July, 04 2016 19:14:39 2016-07-04 19:20:05 2 文件中设置了以下所有内容:

php.ini

但实际上他们已经安装了吗?

鉴于您使用的是CentOS,请尝试运行以下命令来安装extension=pdo.so extension=pdo_sqlite.so extension=sqlite.so extension=pdo_mysql.so

PDO

如果已安装,请检查yum install php-pdo php-mysqli的权限是否已正确设置。

答案 1 :(得分:1)

database.php的第16行是这个

'fetch' => PDO::FETCH_CLASS

这意味着PDO类不存在。

如果需要,您可以安装pdo并重新启动

 yum install php-pdo

 service httpd restart

那说检查此链接http://php.net/manual/en/pdo.installation.php

在Unix系统上安装PDO

PDO and the PDO_SQLITE driver is enabled by default as of PHP 5.1.0. You may need to enable the PDO driver for your database of choice; consult the documentation for database-specific PDO drivers to find out more about that.

要在laravel中创建pdo实例,您可以这样做

$pdo = DB::connection()->getPdo();