Php PDO连接到Oracle
我正在尝试连接到Oracle。 这是我的代码:Php PDO连接到Oracle,php,oracle,pdo,Php,Oracle,Pdo,我正在尝试连接到Oracle。 这是我的代码: $dsn="oci:dbname=//oracleserver:1521/xe;charset=AL32UTF8"; $user="portal2"; $password="portal2"; try{ $arrConnectOptions = array(PDO::ATTR_PERSISTENT => true); $arrConnectOptions += array(PDO::ATTR_CASE => PDO::
$dsn="oci:dbname=//oracleserver:1521/xe;charset=AL32UTF8";
$user="portal2";
$password="portal2";
try{
$arrConnectOptions = array(PDO::ATTR_PERSISTENT => true);
$arrConnectOptions += array(PDO::ATTR_CASE => PDO::CASE_UPPER);
$arrConnectOptions += array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
$arrConnectOptions += array(PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING);
$dbh = new PDO($dsn, $user, $password, $arrConnectOptions);
$sql = "select count(*) from tbl_message";
foreach ($dbh->query($sql) as $row) {
var_dump($row);
}
unset($dbh);
echo "OK";
}catch (PDOException $e){
print("Error:".$e->getMessage());
echo "NG";
header("HTTP/1.1 500 NG");
die();
}catch (Exception $ex){
print("Error: ".$ex->getMessage());
}
$dbh = null;
当我在Linux命令行上执行:php check.php时,一切正常
但当我尝试在web浏览器上打开时。我收到了错误信息
“无法加载网页,因为服务器未发送任何数据。
错误代码:ERR\u EMPTY\u响应“
p/S:服务器正在运行。(第七世纪)
请帮助我您是否将dispaly\u errors设置为1,将error\u reporting设置为E\u ALL?我的最佳猜测是,由于PHP CLI和web服务器使用不同的PHP.ini文件是很常见的,因此您在CLI ini中启用了OCI驱动程序,而不是在web服务器ini中启用了OCI驱动程序。如果您的web服务器ini未设置为显示错误,则可能会出现上述错误。谢谢Fred,我们仅使用带字符串的“.”,关于数组添加,我们需要使用“+”-如果您不发送
500
标题会发生什么情况?我修复了:有时,有时Oracle没有在web浏览器上连接,我在我的服务器上运行此代码,它正在运行:setsebool-P httpd_can_network_connect on tanks Aronkerr,我使用了您的建议,但我仍然收到此错误,没有更多信息。我用phpinfo()检查了我的配置,我发现在Web浏览器上启用了OCI驱动程序。你还有什么想法吗?使用上面相同的代码,并将其切换到本地oracle db,效果很好。您的CLI配置中必须存在其他配置中不存在的内容。您是否已启用错误显示?我已修复:有时Oracle未在web浏览器上连接我在服务器上运行此代码,它正在运行:setsebool-P httpd_can_network_connect on