L. Oracle 8
Ces fonctions vous permettront d'accéder aux serveurs Oracle8 et
Oracle7. Elles utilisent l'interface Oracle8 Call-Interface (OCI8).
Vous aurez donc besoin des librairies clientes Oracle8 pour pouvoir
les utiliser.
Il faut noter que cette extension est plus souple que l'extension Oracle
officielle. Elle supporte notamment les liaisons entre les variables
globales et locales de PHP avec des emplacements Oracle; elle supporte
complètement les types LOB, FILE et ROWID et vous permet
d'utiliser des variables de définitions personnalisables.
Avant d'utiliser cette extension, assurez vous que vous avez bien
paramétré vos variables d'environnement Oracle, ainsi que votre
démon utilisateur. Les variables dont vous pouvez avoir besoin sont :
ORACLE_HOME
ORACLE_SID
LD_PRELOAD
LD_LIBRARY_PATH
NLS_LANG
ORA_NLS33
Après avoir configuré ces variables pour votre utilisateur "serveur
web", assurez vous aussi d'ajouter cet utilisateur (nobody, www)
au group Oracle.
Si votre serveur web ne démarre pas, ou crashe au démarrage :
Vérifiez que Apache a bien été compilé avec la librairie pthread :
Si la libpthread n'est pas listée, vous devez réinstaller Apache :
Exemple 1. Aide OCI
<?php
// par sergo@bacup.ru
// Utilisez l'option : OCI_DEFAULT pour éxécuter les commandes avec un délai
OCIExecute($stmt, OCI_DEFAULT);
// pour lire les données après lecture, utilisez :
$result = OCIResult($stmt, $n);
if (is_object ($result)) $result = $result->load();
// Pour les commandes INSERT ou UPDATE utilisez:
$sql = "insert into table (field1, field2) values (field1 = 'value',
field2 = empty_clob()) returning field2 into :field2";
OCIParse($conn, $sql);
$clob = OCINewDescriptor($conn, OCI_D_LOB);
OCIBindByName ($stmt, ":field2", &$clob, -1, OCI_B_CLOB);
OCIExecute($stmt, OCI_DEFAULT);
$clob->save ("some text");
?>
|
|
Vous pouvez facilement accéder aux procédures stockées, de la même
façon que vous le feriez par ligne de commande :
Exemple 2. Utilisation de procédures stockées
<?php
// par webmaster@remoterealty.com
$sth = OCIParse ( $dbh, "begin sp_newaddress( :address_id, '$firstname',
'$lastname', '$company', '$address1', '$address2', '$city', '$state',
'$postalcode', '$country', :error_code );end;" );
// Ce script appelle la procédure stockée sp_newaddress, avec address_id qui est
// une variable entrante/sortante et :error_code une variable sortante.
// Lorsque vous les liez :
OCIBindByName ( $sth, ":address_id", $addr_id, 10 );
OCIBindByName ( $sth, ":error_code", $errorcode, 10 );
OCIExecute ( $sth );
?>
|
|
- Table des matières
- OCIDefineByName —
Utilise une variable PHP pour la phase de définition, dans une commande SELECT.
- OCIBindByName — Utilise une variable PHP pour la phase de définition, dans un SELECT.
- OCILogon — Etablit une connexion à un serveur Oracle.
- OCIPLogon — Connection persistante à un serveur Oracle.
- OCINLogon —
Se connecte à un serveur Oracle avec une nouvelle connexion.
- OCILogOff — Déconnection d'un serveur Oracle
- OCIExecute — Exécute une commande
- OCICommit — Valide les transactions en cours.
- OCIRollback — Annule les transactions en cours
- OCINewDescriptor — Initialise un nouveau pointeur vide de LOB/FILE
- OCIRowCount — Retourne le nombre de lignes affectées.
- OCINumCols — Retourne le nombre de colonnes dans un résultat
- OCIResult — Retourne la valeur d'une colonne dans une ligne lue
- OCIFetch —
Modifie la prochaîne ligne dans le pointeur interne de résultat.
- OCIFetchInto — Retourne la ligne suivante dans un tableau.
- OCIFetchStatement — Retourne toutes les lignes d'un résultat.
- OCIColumnIsNULL — Teste si la valeur d'une colonne est NULL
- OCIColumnName — Retourne le nom d'une colonne.
- OCIColumnSize — Retourne la taille de la colonne.
- OCIColumnType — Retourne le type de données d'une colonne.
- OCIServerVersion —
Retourne une chaîne contenant les informations de version du serveur.
- OCIStatementType — Retourne le type de commande OCI.
- OCINewCursor —
Retourne un nouveau pointeur à utiliser pour lier
les pointeurs de références
- OCIFreeStatement —
Libère toutes les ressources occupées par une commande.
- OCIFreeCursor —
Libère toutes les ressources occupées par un pointeur.
- OCIFreeDesc — Supprime un descripteur de LOB
- OCIParse — Analyse une requête.
- OCIError —
Retourne la dernière erreur de stmt|conn|global.
- OCIInternalDebug —
Active ou désactive l'affichage des données de debuggage.