Ama*_*ith 47 php mysql cakephp web-applications
PHP Fatal error: Class 'PDO' not found in /home/bd/public_html/app/webroot/Cake/Model/Datasource/Database/Mysql.php on line 177
Run Code Online (Sandbox Code Playgroud)
PHP信息:
PDO
PDO support => enabled
PDO drivers => sqlite, sqlite2, mysql
pdo_mysql
PDO Driver for MySQL => enabled
Client API version => 5.5.24
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.7.7.1
Run Code Online (Sandbox Code Playgroud)
PHP INI:
extension=pdo.so
extension=pdo_sqlite.so
extension=sqlite.so
extension=pdo_mysql.so
Run Code Online (Sandbox Code Playgroud)
码:
/**
* Check whether the MySQL extension is installed/loaded
*
* @return boolean
*/
public function enabled() {
return in_array('mysql', PDO::getAvailableDrivers());
}
Run Code Online (Sandbox Code Playgroud)
关于为什么我收到这个错误的想法?
PHP 5.3.15 CloudLinux/CentOS 6 CPanel
Bảo*_*Nam 61
尝试
yum install php-pdo
yum install php-pdo_mysql
service httpd restart
Run Code Online (Sandbox Code Playgroud)
Jo *_*Smo 49
尝试use PDO;在命名空间之后或在课程之前或PHP文件顶部添加.
Bru*_*iro 12
确保在php.ini文件中调用它们
如果PDO显示在当前安装的php模块列表中,您将需要检查相关文件夹中的php.ini文件以确保它们被调用.在php.ini文件中的某处,您应该看到以下内容:
extension=pdo.so
extension=pdo_sqlite.so
extension=pdo_mysql.so
extension=sqlite.so
Run Code Online (Sandbox Code Playgroud)
如果它们不存在,只需将上面的行添加到php.ini文件的底部并保存即可.
什么是文件的完整来源Mysql.php.基于php信息列表的输出,听起来您可能正在尝试从命名空间中引用全局类.
如果文件Mysql.php中有一个说法"命名空间",使用\PDO代替PDO-这将告诉PHP来寻找一个全球性的阶级,而不是找当地的命名空间.
此错误是由于PDOPHP 不可用而导致的。
如果您在命令行上收到错误,或者不是通过您的网站使用 PHP 的同一接口收到错误,则您可能会调用不同版本的 PHP,或者php.ini在检查phpinfo().
确保 PDO 已加载,并且数据库的 PDO 驱动程序也已加载。