2014-07-21 56 views
0

我的服務名稱與我的ADODB連接有問題。
這是我給我的Oracle服務器的連接
enter image description here如何配置ADODB以將Oracle與服務名稱連接

這裏是我的代碼

$dbhostname  = "10.0.4.51"; 
$dbusername  = "user1"; 
$dbpassword  = "user1"; 
$port   = "1521"; 
$db = ADONewConnection('oci8'); 
$cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=$dbhostname)(PORT=$port)) 
     (CONNECT_DATA=(SID=$tnsname)))"; 
$db->Connect($cstr, $dbusername, $dbpassword) or die('db not available'); 

但我仍然不能因這種連接
如果有任何建議,做我的查詢什麼,我完全感謝你:)

回答

0

我不是PHP專家,但我有兩個想法。

  1. 嘗試使用Oracle的EZconnect連接字符串,讓Oracle全力以赴。在你的情況將是:

    10.0.4.51:1521/devoltp

  2. 我注意到您的連接對話框中使用的服務名稱,但在你的連接字符串指定SID。在$cstr爲 「服務名」

EZ Connect Examples

0

更改 「SID」 試試這個簡單的類

class AdoConnection { 

    public $dbh; 

    public function __construct() { 
     include_once '../adoconnection/adodb5/adodb.inc.php'; // include your adodb.inc.php file 

     $server = "127.0.0.1"; 
     $user = "USER/SCHEMA/Database"; 
     $pwd = "password"; 
     $db  = "SID OR Service_Name"; 

     $this->dbh = NewADOConnection('oci8'); 
     $this->dbh->Connect(FALSE, $user, $pwd, '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = ' . $server. ')(PORT = 1521)) (CONNECT_DATA = (SERVICE_NAME = ' . $db . ') (SID = ' . $db . ')))'); 
    } 

    public function select($sql) { 
     $result = $this->dbh->Execute($sql); 
     $result = $result->GetRows(); 
     return $result; 
    } 

    public function insert($sql) { 
     $result = $this->dbh->Execute($sql); 
     return $result; 
    } 
} 

$dbh = new AdoConnection(); 

$dbh->select($sql); 
$dbh->insert($sql); 

只要保持你的error_reporting和display_errors設置在看到錯誤。

相關問題