【问题标题】:PHP failing, not sure about whyPHP失败,不知道为什么
【发布时间】:2014-04-08 20:43:04
【问题描述】:
<?php
echo "hello";

$db='(DESCRIPTION = ADDRESS = (PROTOCOL = TCP)(HOST = some_ip)(PORT = some_port))(CONNECT_DATA = (SID = xxx.yyy)))';

$conn=oci_connect('user','pass','$db');

if (!$conn){
   echo "No connection";
}
else{
   echo "Connected!";
}
?>

我得到了上面的代码。它会显示hello,但不知道为什么,因为即使连接失败,它也应该显示“No connection”,不是吗?

【问题讨论】:

  • 这可能意味着您的脚本正在抛出错误,但您尚未配置 PHP 以显示错误消息。这是您在更进一步之前需要解决的问题;如果没有错误消息的帮助,就不可能正确编码。这是brief explanation
  • $conn =oci_connect('user', 'pass', $db); 之后添加$e = oci_error(); echo $e['message'];(未引用!)

标签: php function error-handling output oracle-call-interface


【解决方案1】:

单引号下的变量不会被解析!

改变这个

$conn=oci_connect('user','pass','$db');

$conn=oci_connect('user','pass',$db); //<--- Removed the single quotes around the variable!

正如Alvaro G Vicario 提到的......你需要在你的PHP代码上启用错误报告。

将此添加到您的代码之上。

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

您需要启用oci 扩展。转到您的 PHP.ini 并通过删除它们前面的分号来取消注释这些行,保存文件并重新启动您的网络服务器

;extension=php_oci8.dll      
;extension=php_oci8_11g.dll 

【讨论】:

  • 任何变化。仍然只是“你好”。
  • 此信息正确,但并未真正回答问题。我怀疑没有启用OCI8但OP没有启用错误报告。
  • oci_error() 如果您想调试,将是一个受欢迎的补充...... IMO
  • 好的,它没有检测到 oci_connect。 Fatal error: Call to undefined function oci_connect() in /var/www/html... 那是需要安装的库吗?问题出现是因为我的老板要我安装一个没有互联网连接的网络服务器,所以我必须手动安装所有的包 ¬¬
  • @ÁlvaroG.Vicario 我肯定需要这样做,因为我在 php.ini 上没有任何匹配的“oci”。看来问题已经回答了,只需要正确设置即可。
猜你喜欢
  • 1970-01-01
  • 2017-04-24
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-25
  • 2015-06-23
相关资源
最近更新 更多