web-dev-qa-db-fra.com

Comment connecter une base de données Oracle à partir de PHP

Comment se connecter à une base de données Oracle à partir de PHP?

11
Tharindu

Un lien Forth dans Google après avoir recherché vos questions exactes a mis en place le lien suivant: 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];
    }
?>
10
RobertPitt

J'ai supposé que vous vouliez connecter php avec les bases de données Oracle. donc, je vous en donne deux, cela représente un php-Oracle de base pour votre référence. bonne chance!

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";
    }
}
?>
4
Kharis

PHP fournit Fonctions Oracle OCI8 . PDO avec le pilote Oracle Driver et (si Oracle le prend en charge) ODBC

2
Oswald

J'ai créé une connexion de la manière la plus simple comme suit:

Étape 1. Déterminez quelle version de PHP bits (32 bits ou 64 bits) vous utilisez. Si PHP_INT_SIZE a la valeur 4, la version est 32 bits. Si PHP_INT_SIZE a la valeur 8, la version est 64 bits. Utilisez le code suivant ci-dessous:

<?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;
    } 
?>

Étape 2. Téléchargez le "Package InstantClient - Basic" pour Windows à partir de la [page OTN InstantClient] [1]. Assurez-vous de télécharger la version de bit correspondante à l'étape 1.

Étape 3. Décompressez les fichiers InstantClient en C:\instantclient_11_2 et éditez l'environnement Windows PATH pour inclure C:\instantclient_11_2. Par exemple, sous Windows XP, suivez la commande `Démarrer> Panneau de configuration> Système>.

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

Votre question ne vous permet pas de savoir si vous souhaitez configurer votre installation PHP pour se connecter à Oracle ou si vous souhaitez simplement que la syntaxe php établisse la connexion?

Comme il existe déjà une réponse spécifique à Windows et le système de connexion ici, ces liens doivent vous orienter dans la bonne direction pour une installation sous Linux des bibliothèques client Oracle.

Les étapes de base sont ..

  • décompresser les bibliothèques client Oracle (packages de base, SDK et sqlplus)
  • ajoutez LD_LIBRARY_PATH à votre environnement
  • corriger des liens symboliques pour les bibliothèques
  • installer PECL OCI8, ceci compile l’objet partagé pour que votre système ait besoin d’un compilateur C
  • activer l'extension dans le fichier php.ini. N'oubliez pas que votre système peut avoir des fichiers php.ini distincts pour la CLI et le serveur Web, aussi vérifiez les deux. 
  • redémarrez votre serveur web

Ces étapes figurent dans plusieurs articles de blog, je ne réinvente donc pas la roue ici. mais voici quelques liens qui ont l'air bien

0
nick fox