1. 程式人生 > >PDO出現“could not find driver”解決辦法

PDO出現“could not find driver”解決辦法

PDO出現“could not find driver”解決辦法

今天群裡一位朋友用PDO的時候,出現了這種報錯“could not find driver”,這句話的大概意思是: 沒有找到驅動。
could not find driver
在這裡插入圖片描述

原因分析:以上這種問題,也就是大家經常問的PDO drivers沒有mysql或PDO 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裡面依然不會成功顯示。
轉載:本文固定連結 https://www.fujieace.com/php/ould-not-find-driver.html +複製連結