我正试图破解一个脚本连接到远程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
这告诉我我已经安装了驱动程序,对吗?
我做错了什么?(不可否认,我对PHP和Oracle数据库几乎一无所知,所以可能我错过了显而易见的…)
您必须在PDO中安装Oracle适配器:
http://php.net/manual/en/ref.pdo-oci.php您必须配置您的服务器以启用PDO_OCI扩展。
转到php.ini
,找到extension=php_pdo_oci.dll
行,并从开始处删除逗号;
,然后重新启动apache服务。