Php PDO连接到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::

我正在尝试连接到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::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