2013-03-20 52 views
1

我試圖破解在一起腳本連接到遠程Oracle數據庫,並執行一個簡單的查詢甲骨文PHP PDO異常:找不到驅動程序

通過廣泛的搜索,我發現下面的腳本:

<? 

$tns = " 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = bogus.com.au)(PORT = 1521)) 
     (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = myDB) 
     ) 
    ) 
"; 


$pdo_string = 'oci:dbname='.$tns; 

try { 
    $dbh = new PDO($pdo_string, 'test', 'fake'); 
} catch (PDOException $e) { 
    echo "Failed to obtain database handle: " . $e->getMessage(); 
    exit; 
} 

$query = "SELECT * FROM someTable"; 

$stmt = $dbh->prepare($query); 

if ($stmt->execute()) { 
    echo "<h4>$query</h4>"; 
    echo "<pre>"; 
    while ($row = $stmt->fetch()) { 
     print_r($row); 
    } 
    echo "</pre>"; 
} 

?> 

但是,我收到錯誤could not find driver。所以我做:

foreach(PDO::getAvailableDrivers() as $driver) 
    echo $driver, '<br>'; 

其中返回:

mysql 
odbc 
sqlite 

這告訴我,我這樣做已經安裝了驅動程序,是嗎?

我在做什麼錯? (誠​​然,我沒有什麼可以與Oracle沒有PHP的知識數據庫,這樣也許我缺少公然明顯..)

回答

2

您必須安裝Oracle適配器PDO:

http://php.net/manual/en/ref.pdo-oci.php

+0

謝謝。我讀了一遍,它說'使用--with-pdo-oci [= DIR]來安裝PDO Oracle OCI擴展'我不知道如何做到這一點。你會說我在這一點上試圖咬掉更多的東西嗎?有沒有更直接的做法呢?連接到MySQL數據庫並沒有那麼複雜。 – kaizenCoder 2013-03-20 09:31:18

0

你必須配置您的服務器以啓用PDO_OCI擴展。

轉到php.ini並找到行extension=php_pdo_oci.dll並從其開始刪除逗號;然後重新啓動您的apache服務。

相關問題