2

リモートのOracleデータベースに接続して簡単なクエリを実行するスクリプトをハックしようとしています

広範な検索を通じて、次のスクリプトを見つけました。

<?

$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の知識がほとんどまたはまったくないので、あからさまに明らかなことを見逃しているかもしれません..)

4

2 に答える 2

2

Oracle アダプターを PDO にインストールする必要があります。

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

于 2013-03-20T03:24:28.807 に答える
0

PDO_OCI 拡張機能を有効にするようにサーバーを構成する必要があります。

行に移動しphp.iniて見つけ、先頭からextension=php_pdo_oci.dllコンマを削除して;から、Apache サービスを再起動します。

于 2014-07-13T07:00:13.117 に答える