2015-02-23 151 views
0

我嘗試在運行Apache 2.4.10和PHP 5.6.4的腳本的Windows Server 2102 R2上使用PDO進行連接,並得到錯誤「Class」PDO '嘗試連接時找不到'。在Windows Server 2012 R2和PHP 5.6.4上找不到PDO

這裏是代碼調用

ini_set('display_errors', 'On'); 
require_once('c:/path/site_inc.php'); 

switch($_REQUEST['action']){ 
    case 'getList': 
     getList(); 
     break; 
} 
function getList(){ 
    $dbh = dbConnect(); 
    $pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate"); 
    $pstmt->execute(array($_COOKIE['appsuname'])); 
    echo json_encode($pstmt->fetchAll(PD0::FETCH_ASSOC)); 
} 

function dbConnect(){ 
    $DBH = new PDO(ccappConfig::mysqlDSN, ccappConfig::mysql_user, ccappConfig::mysql_pword); 
    return $DBH; 
} 

我已經測試,以確保PDO的連接可用以下方式

if(class_exists('PDO')){ 
    echo "PDO Installed<br />"; 
} else { 
    echo "PDO NOT Installed<br />"; 
} 
phpinfo(); 

這將返回「PDO安裝」和phpinfo()函數確認pdo_mysql與mysql(正在被淘汰)和mysqli一起安裝。

我不知道爲什麼會產生這個錯誤,並且php_pdo.dll已經從5.3版本中刪除了,所以我不相信我錯過了一個驅動程序,我也不相信這是由於phpinfo()在PDO標題下返回mysql和sqlite驅動程序都被啓用。

我在這裏丟失了什麼,或者我的代碼丟失了嗎?

+0

嘗試在Stac上搜索k溢出一些問題,如http://stackoverflow.com/questions/7086859/pdo-drivers-no-value-in-windows – floor 2015-02-23 22:11:08

+0

因爲這是指「沒有驅動程序」我有驅動程序,他們正在按我的問題解釋運行。 – aallord 2015-02-23 22:14:00

+0

對不起,我錯過了最後的部分。我不太瞭解Windows服務器配置,但你有沒有遵循這些指示http://php.net/manual/en/pdo.installation.php?你可能錯過了PDO的特定數據庫選項的部分 - > http://php.net/manual/en/pdo.drivers.php – floor 2015-02-23 22:18:31

回答

0

我發現這裏的誤差

function getList(){ 
$dbh = dbConnect(); 
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate"); 
$pstmt->execute(array($_COOKIE['appsuname'])); 
echo json_encode($pstmt->fetchAll(PD0::FETCH_ASSOC)); 

}

上述代碼應

function getList(){ 
$dbh = dbConnect(); 
$pstmt = $dbh->prepare("SELECT * FROM announcements WHERE user=? ORDER BY startDate"); 
$pstmt->execute(array($_COOKIE['appsuname'])); 
echo json_encode($pstmt->fetchAll(PDO::FETCH_ASSOC)); 

}

第一嵌段爲0(零),而不是O.

相關問題