“新PDO()”命令的“找不到驱动程序”错误,PHP 7.0.25

时间:2019-02-03 01:56:05

标签: 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 = strict

; 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版本是NON THREAD SAFETY版本... hostgator使用APACHE服务器,并且我了解到只有THREAD SAFE版本才可以与APACHE服务器一起使用。这可能是问题,但不是100%可以肯定。任何意见/建议将不胜感激!

1 个答案:

答案 0 :(得分:1)

基本语法错误:

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

({msql而非mysql)。