2011-05-16 195 views
4

我已經工作得很好,直到我重新安裝了系統開發的PHP函數:PHP致命錯誤:類「PDO」未找到

function connectDB($database, $username, $password) { 

    $DSN = "mysql:host=localhost;dbname=$database"; 

    try { 
     $DBH = new PDO($DSN, $username, $password); <--- LINE 10 
     return $DBH; 
    } 
    catch(PDOException $e) { 
     die("Could not connect to the database.\n"); 
    } 
} 

而且我得到的錯誤:

PHP Fatal error: Class 'PDO' not found in /var/www/im/tools.php on line 10 

我檢查的phpinfo()和PDO啓用:

PDO驅動程序:MySQL的

PDO驅動程序的MySQL版本:5 .1.54

有趣的是,與第MYSQL數據庫的交互是好的,但我仍然在調試時出現錯誤。

我對這個錯誤感到困惑!我的系統是Ubuntu 11.04 + NGINX + PHP 5.3

任何提示擺脫它?謝謝!

+0

「與日MYSQL數據庫是正常的互動,但在調試的時候我仍然得到錯誤。」那是什麼意思? – Matthew 2011-05-16 03:21:41

+0

該函數工作正常,我可以查詢數據庫,但在Eclipse調試界面中,我得到了「致命錯誤」。 – 2011-05-16 03:25:23

+3

檢查'/ etc/php5/cli/conf.d/*'並確保'pdo.so'也在那裏啓用。 (似乎只有CGI/mod_php版本才啓用。) – mario 2011-05-16 03:49:32

回答

5

您使用的是名稱空格的代碼嗎?也許你需要使用\ PDO類呢?

+0

該類調用的代碼位於問題中。我不認爲它是命名空間。 – 2011-05-16 03:35:28

2

如果web應用程序的當前工作目錄中有一個php.ini文件,也會發生這種情況。如果已經放置了某個設置來更改某些設置,它將覆蓋全局設置。

爲避免此問題,請勿使用php.ini更改設置;相反,在vhost聲明或帶有'php_flag'的.htaccess文件中執行此操作。

參見PHP Fatal error: Class 'PDO' not found

+0

爲什麼選擇downvoted?我強烈懷疑你的回答可能是對的。我遇到了同樣的問題,但僅限於cronjob運行的腳本,並且在我的根文件夾中安裝了新的php.ini文件後,問題纔開始發生。但既然你的答案是低估的,我想知道你是否有更多的信息,我不想搞亂服務器配置! – ghego1 2013-05-15 10:22:04

+0

PS http://stackoverflow.com/questions/16561937/php-fatal-error-class-pdo-not-found-only-on-cron-job/16562026?noredirect=1#16562026 – ghego1 2013-05-15 10:22:44

+0

我不知道爲什麼我對此感到低落。我懷疑那些認爲他們是專家的人,因此認爲任何給定的問題只能有一個原因。 – 2013-05-16 07:14:02

1

嘗試

yum install php-pdo 

service httpd restart 
相關問題