SommaireTelecharger la documentationChapitre suivantChapitre precedent  

  .: News :.: Edito :.: Scripts :.: Forum :.: Erreurs :.: Jobs :. 
 
Sommaire

Oracle 8

ociDefineByName
ociBindByName
ociLogon
ociPLogon
ociNLogon
ociLogOff
ociexecute
ociCommit
ociRollback
ociNewDescriptor
ociRowCount
ociNumCols
ociResult
ociFetch
ociFetchInto
ociFetchStatement
ociColumnIsNULL
ociColumnName
ociColumnSize
ociColumnType
ociServerVersion
ociStatementType
ociNewCursor
ociFreeStatement
ociFreeCursor
ociFreeDesc
ociparse
ociError
ociinternaldebug
OCICancel
ocisetprefetch
OCIWriteLobToFile
OCISaveLobFile
OCISaveLob
OCILoadLob
OCIColumnScale
OCIColumnPrecision
OCIColumnTypeRaw
OCINewCollection
OCIFreeCollection
OCICollAssign
OCICollAssignElem
OCICollGetElem
OCICollMax
OCICollSize
OCICollTrim

6.68.2 ociBindByName

[ Exemples avec ociBindByName ]  

Description

int ocibindbyname(resource stmt ,string ph_name ,mixed & variable ,int length ,[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 (Fichier binaires), oci_B_CFILE (Fichier texte), oci_B_CLOB (LOB- texte), oci_B_BLOB (LOB binaire) et oci_B_ROWID (ROWID).

ociDefineByName

<?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($update,":sal",&$sal,32);
$sal 10000;
while (list(
$empno,$ename) = each($data)) {
    
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);
?>


Chapitre précédentChapitre suivantAccueil nexen.net