PDO出现“could not find driver”解决办法

今天群里一位朋友用PDO的时候,出现了这种报错“could not find driver”,这句话的大概意思是:  没有找到驱动

could not find driver

 

原因分析:以上这种问题,也就是大家经常问的PDO drivers没有mysqlPDO drivers 不支持mysql这两个问题。原因其实都是一样的,都是缺少pdo_mysql扩展。

 

解决办法:

其实办法很简单,无非就是检查你是否安装了PDO扩展?如果你已经安装了PDO扩展。再检查你是否安装了支持PDO连接数据库的类型扩展?因为PDO支持很多种数据库类型。例如:mysql、sqlite、pgsql等。

 

谈谈我是如何解决“could not find driver”这个问题的?

 

1、查看PDO扩展是否安装?

直接用phpinfo()函数查看。得到如下结果:

pdo

从上图可以看出,PDO已经安装了,但是PDO驱动只安装了sqlite数据库,意思是PDO这个扩展目前只支持sqlite数据库,但是我朋友用的是mysql数据库,因此报错就很正常了。

 

2、开启pdo支持mysql数据库类型的驱动扩展:pdo_mysql。

如果你是windows服务器,直接修改php.ini,去掉前面“;"即可开启此扩展。php_pdo_mysql.dll

 

如果你是linux服务器,你就要自己安装pdo_mysql这个扩展。

从源码包安装pdo_mysql命令如下:

cd /usr/local/php5.5.28/etx/pdo_mysql
/usr/local/php/bin/phpize
./configure --with-php-config=/fujieace/php/bin/php-config
make && make install

成功后会生成一个pdo_mysql.so的类似路径:

nstalling shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/***

再把pdo_mysql.so加入php.ini:

extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/pdo_mysql.so

 

3、查看是否成功?

重启php后,如果你pdo_mysql安装成功后,phpinfo界面应该是这个样子的,如下图:

pdo支持mysql和sqlite

 

注意:linux下安装的pdo_mysql扩展一定要跟你的PHP版本一致,(建议从源码包安装)不能随便乱安装,否则你会发现就算成功安装这个扩展生成了so,但是phpinfo里面依然不会成功显示。

    A+
发布日期:2018年07月06日 17:49:04  所属分类:PHP
最后更新时间:2018-07-06 21:00:00
评分: (1 票;平均数5.00 ;最高评分 5 ;用户总数1;总得分 5;百分比100.00)
付杰
服务器管理面板/主机控制面板“安装”服务
服务器管理面板/主机控制面板“安装”服务
  • ¥ 9.9元
  • 市场价:49.9元
wordpress站群服务 泛解析二级域名 二级目录站群
wordpress站群服务 泛解析二级域名 二级目录站群
  • ¥ 1999.9元
  • 市场价:4800元
wp discux 帝国 dedecms phpcms等快速建站
wp discux 帝国 dedecms phpcms等快速建站
  • ¥ 99.9元
  • 市场价:499.9元
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
花牛苹果 甘肃天水 李宏恩家自种 1斤 包邮
  • ¥ 6.8元
  • 市场价:8.8元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

 

目前评论:10   其中:访客  6   博主  4

  1. 头像 argor 0
    cd /usr/local/php5.5.28/etx/pdo_mysql
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/fujieace/php/bin/php-config
    make && make install

    这几步在干啥?

    • 付杰 付杰

      @argor 简单说,就是PHP在linux开启pdo_mysql这个扩展啊!windows的话,不用这样麻烦。

  2. 头像 林森 1

    我今天也出现了“could not find driver”这个问题,如下图:
    could not find driver
    但是我想用PDO连接SQL Server数据库,结果没搞出来,还好远程博主帮我解决了!非常感谢!

  3. 头像 让时间说真话 1

    phpinfo界面显示和文章里一样,但还是没好用

    • 付杰 付杰

      @让时间说真话 你的具体情况一定要先说明白,像上次有位朋友一样,他自己把项目数据库连接方式改了,然后却用的PDO去跑,当然不行。后来用的mysqli瞬间OK!
      具体可以Q上联系我!

  4. 头像 wofe 1

    我的已经安装了PDO以及也支持mysql的扩展类型,
    但还是提示找不到驱动?怎么办?

    • 付杰 付杰

      @wofe phpinfo界面显示是什么样子的呢?和文章显示的都是一样的吗?涉及到具体操作问题,最好是Q上直接联系我!

      • 头像 wofe 1

        @付杰 我Q是345******,麻烦加我一下,谢谢!