2011-05-10 183 views
8

如何從PHP連接到Oracle數據庫?如何從PHP連接Oracle數據庫

+0

你要買什麼,連接字符串?請看PDO或OCI_,網址是http://www.php.net/manual/en/intro.oci8.php – 2011-05-10 09:14:39

+0

一件重要的事情:如果您想連接到遠程Oracle服務器,那麼您需要安裝Oracle Instant客戶。更多信息和鏈接到OIC在這裏:http://de.php.net/manual/en/oci8.requirements.php – 2011-05-10 09:47:08

回答

8

第四鏈接在谷歌搜索帶來了下面的鏈接您的具體問題後:http://me2learn.wordpress.com/2008/10/18/connect-php-with-oracle-database/

<?php 
    $db = "(DESCRIPTION=(ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.34)(PORT = 1521)))(CONNECT_DATA=(SID=orcl)))" ; 

    if($c = OCILogon("system", "your database password", $db)) 
    { 
     echo 「Successfully connected to Oracle.\n」; 
     OCILogoff($c); 
    } 
    else 
    { 
     $err = OCIError(); 
     echo 「Connection failed.」 . $err[text]; 
    } 
?> 
+0

該博文似乎是特定於Windows。 – 2016-03-16 21:36:35

3

我假設你想PHP與Oracle數據庫的連接。所以,我給你兩個文件,這是代表一個基本的php-oracle供你參考。祝你好運!

form.php的

<form name="form1" method="post" action="login.php"> 
    <label> User Name 
    <input type="text" name="nis" id="nis"> 
    </label> 
    <label> Password 
    <input type="password" name="password" id="password"> 
    </label> 
    <label> 
    <input type="submit" name="submit" id="button" value="Login"> 
    </label> 
</form> 

的login.php

<?php 

//create table users (userid varchar2(10), password varchar2(20), constraint pk_users primary key (userid)); 
//insert into users values('kharis', 'pass123'); 

$nis = isset($_POST['nis']) == true ? $_POST['nis'] : ''; 
$password= isset($_POST['password']) == true ? $_POST['password'] : ''; 

if(empty($nis) or empty($password)){ 
    echo "UserID atau Password kosong";} 
else 
{ 
    $db = "(DESCRIPTION = 
     (ADDRESS = (PROTOCOL = TCP)(HOST = patronus.ad-ins.com)(PORT = 1521)) 
     (CONNECT_DATA = 
      (SERVER = DEDICATED) 
      (SERVICE_NAME = XE) 
     ) 
    )" ; 
    $connect = oci_connect("HR", "hr", "XE"); 
    $query = "SELECT * from users WHERE userid='".$nis."' and password='".$password."'"; 
    $result = oci_parse($connect, $query); 
    oci_execute($result); 
    $tmpcount = oci_fetch($result); 
    if ($tmpcount==1) { 
     echo "Login Success";} 
    else 
    { 
     echo "Login Failed"; 
    } 
} 
?> 
0

它從你的問題還不清楚,如果你想配置PHP安裝到連接到Oracle或者如果你只是想在PHP語法建立連接?

因爲已經有一個Windows具體的答案和連接systax這裏,這些鏈接應該指向你在正確的方向爲基於安裝Oracle客戶端庫的Linux操作系統。

的基本步驟是..

  • 解壓縮Oracle客戶端庫(基本,SDK和SQLPLUS包)
  • 添加到LD_LIBRARY_PATH環境
  • 解決一些符號鏈接的庫
  • 安裝PECL OCI8,這個編譯共享對象,以便您的系統需要一個C編譯器
  • 啓用php.ini文件擴展名。請記住,您的系統可能具有獨立的CLI和Web服務器的php.ini文件,因此請檢查兩者。
  • 重新啓動你的web服務器

這些步驟是在多個博客文章,所以我不會在這裏重新發明輪子。但這裏有一些鏈接,看起來不錯

1

我已經創造了最簡單的方式連接如下:

第1步:確定什麼PHP位您正在運行的版本(32位或64位)。 如果PHP_INT_SIZE的值是4,那麼版本是32位的。如果PHP_INT_SIZE的值爲8,則版本爲64位。使用下面的下面的代碼:

<?php 
    switch(PHP_INT_SIZE) { 
     case 4: 
      echo '32-bit version of PHP'; 
      break; 
     case 8: 
      echo '64-bit version of PHP'; 
      break; 
     default: 
      echo 'PHP_INT_SIZE is ' . PHP_INT_SIZE; 
    } 
?> 

步驟2.下載 「InstantClient套餐 - 基本」 從 的[OTN InstantClient頁]爲Windows [1]。確保你從第1步

步驟3.解壓縮文件InstantClient下載對應位版本C:\instantclient_11_2和 編輯Windows PATH環境包括C:\instantclient_11_2。 例如,在Windows XP上,遵循'開始 - >控制面板>系統>

Advanced > Environment Variables` and edit `PATH` in the `System` 
> variables list. 
Step 3. In your `php.ini` file, enable the following lines: 
extension=php_oci8_11g.dll 
extension=php_openssl.dll 

Finally, restart your Apache server. 

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html