2013-03-21 72 views
4

参数(私人字符串):oci_connect()将不会使用对象的属性作为参数

$this->username = 'app'; 
    $this->password = 'passwd'; 
    $this->service = '//local/DEV'; 

不起作用:

$conn = oci_connect($this->username,$this->password,$this->service); 

是否工作:

$conn = oci_connect('app','passwd','//local/DEV'); 

为什么没有oci_connect像对象属性作为参数?使用对象属性时出现无效登录错误,但在使用字符串时成功。所有这些代码都在对象的__construct()中。

回答

1

你在对象中有//localhost/DEV,但是在字符串中有//local/DEV,所以它们不是同一个服务。

+0

修正了错字,存在同样的问题。 – Chad 2013-03-21 18:32:46

+0

好的,你需要更多的细节,比如在'$ this-> username','$ this-> password'和$ $ this-> service'上使用'var_dump'来确保它们真的是你认为他们是。 – andyhassall 2013-03-21 18:39:13

+0

已经做到了。他们都是字符串。 – Chad 2013-03-21 18:41:59

0

您是否尝试过使用PDO进行连接?我知道他们已经不赞成mysql_ extension在oracle上无法确定。

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

片段与informatiion:

$dbc = new PDO('oci:dbname=local/DEV;charset=CL8MSWIN1251', 'app', 'passwd'); 
+0

我很欣赏这个建议,但它不能回答我的问题。在这个项目中,我无法证明重建数据库处理是正确的。 – Chad 2013-03-25 12:54:55

+0

对不知道你有多远,只是一个建议。 :) – tattooedgeek 2013-03-25 18:22:26