ocidefinebyname

(PHP 3>= 3.0.7, PHP 4 , PHP 5)

ocidefinebyname --  Utilise une variable PHP pour la phase de définition, dans une commande SELECT Oracle

Description

bool ocidefinebyname ( resource stmt, string column_name, mixed &variable [, int type] )

ocidefinebyname() copie les valeurs issues des colonnes SQL column_name de la commande stmt dans les variables PHP. Méfiez-vous des colonnes Oracle qui sont toutes en majuscule, tandis que dans les SELECT, vous pouvez aussi les écrire en minuscules. ocidefinebyname() s'attend à ce que column-name soit en majuscules. Si vous définissez une variable qui n'existe pas dans la commande SELECT, vous ne serez pas prévenu par une erreur.

Si vous avez besoin de définir un type de données type abstrait, tel (LOB/ROWID/BFILE), vous devez lui allouer la mémoire avec ocinewdescriptor(). Reportez-vous aussi à ocibindbyname().

Exemple 1. Exemple avec ocidefinebyname()

<?php
$conn
= OCILogon("scott","tiger");

$stmt = OCIParse($conn,"select empno, ename from emp");

/* La définition DOIT intervenir AVANT l'exécution! */

OCIDefineByName($stmt,"EMPNO",$empno);
OCIDefineByName($stmt,"ENAME",$ename);

OCIExecute($stmt);

while (
OCIFetch($stmt)) {
    echo
"empno :".$empno."\n";
    echo
"ename :".$ename."\n";
}

OCIFreeStatement($stmt);
OCILogoff($conn);
?>

Note : Cette fonction a été renommée en oci_define_by_name() pour PHP version 5.0.0 et plus récent. Pour la compatibilité ascendante, ocicancel() peut toujours être utilisée. Toutefois, elle est obsolète.