web-dev-qa-db-ja.com

PHPからOracleデータベースに接続する方法

PHPからOracleデータベースに接続するにはどうすればよいですか?

11
Tharindu

あなたの正確な質問を検索した後のグーグルの4番目のリンクは次のリンクをもたらしました: 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];
    }
?>
14
RobertPitt

PhpをOracleデータベースに接続することを想定しています。だから、私はあなたに2つのファイルを与えます、これはあなたの参照のための基本的な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";
    }
}
?>
3
Kharis

PHPは Oracle OCI8関数 を提供します。他のオプションは Oracle Driver を使用したPDOと(Oracleがサポートしている場合) [〜#〜] odbc [〜#〜] です。

2
Oswald

次のようにして、最も簡単な方法で接続を作成しました。

手順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. [OTN InstantClientページ] [1]からWindows用の「InstantClientパッケージ-基本」をダウンロードします。手順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
1
Pankaj katiyar

PHPインストールをOracleに接続するように設定したい場合、またはphp構文で接続を確立したいだけの場合は、質問からは不明です。

ここにはすでにWindows固有の回答と接続のsystaxがあるので、これらのリンクは、LinuxベースのOracleクライアントライブラリのインストールの正しい方向を示しているはずです。

基本的な手順は次のとおりです。

  • oracleクライアントライブラリ(基本、SDKおよびsqlplusパッケージ)を解凍します。
  • 環境にLD_LIBRARY_PATHを追加します
  • ライブラリのいくつかのシンボリックリンクを修正
  • pECL OCI8をインストールします。これにより共有オブジェクトがコンパイルされるため、システムにはCコンパイラが必要になります
  • php.iniファイルで拡張機能を有効にします。システムにCLIとWebサーバー用の個別のphp.iniファイルがある可能性があるので、両方を確認してください。
  • ウェブサーバーを再起動します

これらのステップは複数のブログ投稿にあるので、ここでホイールを再発明することはしません。しかし、これはかなりよく見えるいくつかのリンクです

0
nick fox