Services webmasters
Partenaires
Jeux concours gratuits
 
Exemples
<<<
ocibindbyname ocicancel
>>>

7.72 Oracle 8
7 Index des fonctions
 Manuel PHP

Introduction
Pré-requis
Installation
Configuration à l'exécution
Types de ressources
Constantes prédefinies
Exemples
->ocibindbyname
ocicancel
ocicloselob
ocicollappend
ocicollassign
ocicollassignelem
ocicollgetelem
ocicollmax
ocicollsize
ocicolltrim
ocicolumnisnull
ocicolumname
ocicolumnprecision
ocicolumnscale
ocicolumnsize
ocicolumntype
ocicolumntyperaw
ocicommit
ocidefinebyname
ocierror
ociexecute
ocifetch
ocifetchinto
ocifetchstatement
ocifreecollection
ocifreecursor
ocifreedesc
ocifreestatement
ociinternaldebug
ociloadlob
ocilogoff
ocilogon
ocinewcollection
ocinewcursor
ocinewdescriptor
ocinlogon
ocinumcols
ociparse
ociplogon
ociresult
ocirollback
ocirowcount
ocisavelob
ocisavelobfile
ociserverversion
ocisetprefetch
ocistatementtype
ociwritelobtofile
ociwritetemporarylob

7.72.8 ocibindbyname() Lie une variable PHP à une variable SQL d'Oracle

[ Exemples avec ocibindbyname ]   PHP 3>= 3.0.4, PHP 4

bool  ocibindbyname ( resource   stmt , string   ph_name , mixed   &variable , int   maxlength , int   type )

ocibindbyname relie la variable PHP variable à l'emplacement Oracle ph_name . Son utilisation (comme entrée ou comme sortie) sera définie à l'exécution, et l'espace nécessaire sera alloué. Le paramètre de longueur length fixe la taille maximum pour la liaison. Si vous affectez une longueur de -1, ocibindbyname utilisera la longueur de variable comme maximum.

Si vous devez lier des types abstraits de données (LOB/ROWID/BFILE), vous devrez l'allouer dans un premier temps, avec ocinewdescriptor . La longueur length ne sert pas pour ces types et devrait être fixée à -1. La variable type indique au serveur Oracle, quel type de pointeur va être utilisé. Les valeurs possibles sont : OCI_B_FILE (Fichiers binaires), OCI_B_CFILE (Fichiers texte), OCI_B_CLOB (LOB de texte), OCI_B_BLOB (LOB binaire) et OCI_B_ROWID (ROWID).

Exemple avec ocibindbyname

<?php
/* Exemple ociBindByPos par thies@thieso.net (980221)
  Insère 3 lignes dans emp, et utilise ROWID pour mettre à jour
  les lignes, juste après l'insertion.
*/

$conn = OCILogon("scott","tiger");

$stmt = OCIParse($conn,"insert into emp (empno, ename) ".
                       
"values (:empno,:ename) ".
                       
"returning ROWID into :rid");

$data = array(1111 => "Larry", 2222 => "Bill", 3333 => "Jim");

$rowid = OCINewDescriptor($conn,OCI_D_ROWID);

OCIBindByName($stmt,":empno",&$empno,32);
OCIBindByName($stmt,":ename",&$ename,32);
OCIBindByName($stmt,":rid",&$rowid,-1,OCI_B_ROWID);

$update = OCIParse($conn,"update emp set sal = :sal where ROWID = :rid");
OCIBindByName($update,":rid",&$rowid,-1,OCI_B_ROWID);
OCIBindByName($ )) {
    
OCIExecute($stmt);
    
OCIExecute($update);
}

$rowid->free();

OCIFreeStatement($update);
OCIFreeStatement($stmt);

$stmt = OCIParse($conn,"select * from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
while (
OCIFetchInto($stmt,&$arr,OCI_ASSOC)) {
    
var_dump($arr);
}
OCIFreeStatement($stmt);

/* Effacement des lignes inutiles dans la table emp */
$stmt = OCIParse($conn,"delete from emp where empno in (1111,2222,3333)");
OCIExecute($stmt);
OCIFreeStatement($stmt);

OCILogoff($conn);
?>
Attention

C'est une mauvaise idée que d'utiliser les magic quotes et la fonction ocibindbyname simultanément, car aucun ajout de guillemets n'est nécessaire sur les variables citées, et tout guillemets magiques sera inscrit dans votre base de données car ocibindbyname n'est pas capable de faire la différence entre les guillemets et ceux qui ont été ajoutés dynamiquement.

<< ocibindbyname >>
Exemples Oracle 8 ocicancel
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -