PDO 异常找不到驱动程序
Posted
技术标签:
【中文标题】PDO 异常找不到驱动程序【英文标题】:PDO Exceptions could not find driver 【发布时间】:2017-12-20 06:34:33 【问题描述】:这是我的功能
class Database extends PDO
public function __construct()
try
parent::__construct(DB_TYPE . ':host=' . DB_HOST . ';dbname=' . $DB_NAME, DB_USER, DB_PASS);
catch (Exception $e)
echo '<pre>';
echo 'Message:' .$e->getMessage().'<br>';
echo 'Message:' .$e->getTraceAsString().'<br>';
print_r(get_loaded_extensions());
echo '</pre>';
我得到了
找不到驱动程序
0 /home/dltechi/public_html/dating/libs/Database.php(11): PDO->__construct('DB_TYPE:host=DB...', 'DB_USER', 'DB_PASS') 1 /home/dltechi/public_html/dating/libs/Model.php(6): 数据库->__construct('DB_TYPE', 'DB_HOST', 'DB_NAME', 'DB_USER', 'DB_PASS') 2 /home/dltechi/public_html/dating/libs/Controller.php(22): 模型->__construct() 3 /home/dltechi/public_html/dating/libs/Bootstrap.php(103): 控制器->useModel('test', 'models/') 4 /home/dltechi/public_html/dating/libs/Bootstrap.php(30):
Bootstrap->_loadExistingController()
5 /home/dltechi/public_html/dating/index.php(83): Bootstrap->init()
6 main
【问题讨论】:
$DB_TYPE
的内容是什么?
我在单独的文件中定义了它们,这里是 define('DB_TYPE', 'mysql');定义('DB_HOST', 'localhost');定义('DB_NAME','约会');定义('DB_USER','root');定义('DB_PASS', '');
向我们展示您的完整课程以及完整的异常和堆栈跟踪。
我只是添加了本地主机中的数据库类,它工作正常但在线不工作,我检查了启用的扩展。这里仍然出现错误是链接 [link] (dltech.info/dating/test)
你是否包含了你定义它们的文件?
【参考方案1】:
我正在使用 laragon FOR LARAVEL 并面临同样的问题,但我想通了...而且我的 php 版本是 7.2 对于旧版本,请取消注释 php_pdo_mysql 和 mysql.dll(确保您正在使用 pgsql/pgmysqllite 或任何其他并取消注释它们,对于未使用的,您必须使用';'
检查环境变量中的路径。和版本 >7
撤消 php.ini 中除 THE 之外的所有扩展
extension=pdo_mysql
因为最新版本的编码没有'php_pdo_mysql & other .dll'文件&我猜我已经编译了。特别是 PDO_**** 禁用它们并启用上面的代码..和';'
通过这样做,您可以将您的 utf8mbg 更改为 utf8,分别针对字符集和排序规则:
在 app\config\database.php 中将默认设置为 'mysql'。
-------->>app\config\database.php & 将默认设置为'mysql'
'mysql' => [ **** 其他都一样,改如下]
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
【讨论】:
以上是关于PDO 异常找不到驱动程序的主要内容,如果未能解决你的问题,请参考以下文章
Laravel:PHP Artisan Migrate 抛出 PDO 异常:找不到驱动程序(Postgres)
PHP 7.0 上的 Laravel 5.4:PDO 异常 - 找不到驱动程序 (MySQL)
Symfony3 演示项目不起作用:PDO 异常找不到驱动程序(sqlite 案例)