php - "could not find driver"命令的 "new PDO()"错误,PHP 7.0.25

标签 php mysql pdo

我无法使用“new PDO()”,因为我不断收到此错误消息“无法找到驱动程序”。我正在使用 Hostgator,并与他们进行了广泛的合作,但无济于事。

我已将我的 PHP 版本更新到 7.0.25,检查了默认的 php.ini 设置(hostgator 为所有客户使用千篇一律的默认 php.ini 文件...除非您创建自己的自定义 php.ini文件,在这种情况下自定义版本将被覆盖)。我查看了 phpinfo() 结果,一切看起来都很好(除非我遗漏了一些东西)。我已经包含了我的脚本以及 php.ini 文件设置和 phpinfo() 结果的片段。

PHP.ini 文件设置:

[Pdo] ;是否池化 ODBC 连接。可以是“严格”、“宽松”或“关闭”之一 ; http://php.net/pdo-odbc.connection-pooling ;pdo_odbc.connection_pooling=严格

;pdo_odbc.db2_instance_name

[Pdo_mysql] ;如果使用mysqlnd:内部结果集缓存的缓存槽数 ; http://php.net/pdo_mysql.cache_size pdo_mysql.cache_size = 2000

;本地 MySQL 连接的默认套接字名称。如果为空,则使用内置的 ; MySQL 默认值。 ; http://php.net/pdo_mysql.default-socket pdo_mysql.default_socket=

phpinfo() 结果:

PDO 驱动程序:mysql、sqlite

客户端API版本:5.6.41-84.1

指令:pdo_mysql.default_socket

本地值:/var/lib/mysql/mysql.sock

主值:/var/lib/mysql/mysql.sock

<?php

$host = "localhost";
$user = "ABC";
$pw = "123";
$dbName = "XYZ";
$dsn = 'msql:host=' . $host . ';dbname=' . $dbName;
$pdo = new PDO($dsn,$user,$pw); // this is the line that the error refers to

$eml = $_POST['data'];
$newPassword = $_POST['data1'];
$cnewPassword = $_POST['data2'];
$query = $pdo->query("SELECT * FROM accounts WHERE email = $eml") or die(mysql_error());
$row = $query->fetch(PDO::FETCH_ASSOC);


            if($row > 0) {
                echo "GOOD";
            } else {
                echo "BAD";
            }; 

?>

我应该得到一个回显“GOOD”,但我一直得到的只是“找不到驱动程序”错误。需要注意的一件重要事情;我确实注意到,hostgator 用于升级的 PHP 版本是非线程安全版本...hostgator 使用 APACHE 服务器,并且我了解到只有线程安全版本才能与 APACHE 服务器一起使用。这可能是问题所在,但不能百分百确定。任何意见/建议将不胜感激!

最佳答案

基本语法错误:

// $dsn = 'msql:host=' . $host . ';dbname=' . $dbName;<br>
   $dsn = 'mysql:host=' . $host . ';dbname=' . $dbName;<br>

(msql 而不是 mysql)。

关于php - "could not find driver"命令的 "new PDO()"错误,PHP 7.0.25,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54499281/

相关文章:

php - laravel - 依赖注入(inject)和 IoC 容器

php返回全局变量

php - 不能在一个查询中运行多个语句

php - 如何处理/优化数千个不同的执行 SELECT 查询?

php - MySQL 和 PHP 日期和时间

php - PDO 与 bindValue 绑定(bind)不起作用

php - 在 cardinalcommerce 中为 Amex 获取 API 错误 [9000] desc [服务 CCA 查找错误]

php - onPostExecute 永远不会被调用,但 doInBackground 返回值

mysql - 如何在具有不同参数和别名的列中执行 SELECT?

MySQL 按频繁更新的列和分页对表进行排序