Rapide Advanced Adulte
 
 Web|Image|Shop|Video|News|Wmx|Mobile|Wiki|Ajouter ce moteur

     Manuel PHP     
Partager
 
 
Partager
Partager

 

Table :

.OCI-Collection->append
.OCI-Collection->assign
.OCI-Collection->assignElem
.OCI-Collection->free
.OCI-Collection->getElem
.OCI-Collection->max
.OCI-Collection->size
.OCI-Collection->trim
.OCI-Lob->append
.OCI-Lob->close
.OCI-Lob->eof
.OCI-Lob->erase
.OCI-Lob->export
.OCI-Lob->flush
.OCI-Lob->free
.OCI-Lob->getBuffering
.OCI-Lob->import
.OCI-Lob->load
.OCI-Lob->read
.OCI-Lob->rewind
.OCI-Lob->save
.OCI-Lob->saveFile
.oci lob import()
.OCI-Lob->seek
.OCI-Lob->setBuffering
.OCI-Lob->size
.OCI-Lob->tell
.OCI-Lob->truncate
.OCI-Lob->write
.OCI-Lob->writeTemporary
.OCI-Lob->writeToFile
.oci lob export()
.oci bind array by name
.oci bind by name
.oci cancel
.oci close
.oci commit
.oci connect
.oci define by name
.oci error
.oci execute
.oci fetch all
.oci fetch array
.oci fetch assoc
.oci fetch object
.oci fetch row
.oci fetch
.oci field is null
.oci field name
.oci field precision
.oci field scale
.oci field size
.oci field type raw
.oci field type
.oci free statement
.oci internal debug
.oci lob copy
.oci lob is equal
.oci new collection
.oci new connect
.oci new cursor
.oci new descriptor
.oci num fields
.oci num rows
.oci parse
.oci password change
.oci pconnect
.oci result
.oci rollback
.oci server version
.oci set prefetch
.oci statement type
.ocibindbyname
.oci bind by name()
.ocicancel
.oci cancel()
.ocicloselob
.ocicollappend
.ocicollassign
.ocicollassignelem
.ocicollgetelem
.ocicollmax
.ocicollsize
.ocicolltrim
.ocicolumnisnull
.oci field is null()
.ocicolumnname
.oci field name()
.ocicolumnprecision
.oci field precision()
.ocicolumnscale
.oci field scale()
.ocicolumnsize
.oci field size()
.ocicolumntype
.oci field type()
.ocicolumntyperaw
.oci field type raw()
.ocicommit
.oci commit()
.ocidefinebyname
.oci define by name()
.ocierror
.oci error()
.ociexecute
.oci execute()
.ocifetch
.oci fetch()
.ocifetchinto
.ocifetchstatement
.oci fetch all()
.ocifreecollection
.ocifreecursor
.oci free statement()
.ocifreedesc
.ocifreestatement
.ociinternaldebug
.oci internal debug()
.ociloadlob
.ocilogoff
.oci close()
.ocilogon
.oci connect()
.ocinewcollection
.oci new collection()
.ocinewcursor
.oci new cursor()
.ocinewdescriptor
.oci new descriptor()
.ocinlogon
.oci new connect()
.ocinumcols
.oci num fields()
.ociparse
.oci parse()
.ociplogon
.oci pconnect()
.ociresult
.oci result()
.ocirollback
.oci rollback()
.ocirowcount
.oci num rows()
.ocisavelob
.ocisavelobfile
.ociserverversion
.oci server version()
.ocisetprefetch
.oci set prefetch()
.ocistatementtype
.oci statement type()
.ociwritelobtofile
.ociwritetemporarylob
 
   

  oci_bind_by_name  


oci_bind_by_name

(PHP 5)

oci_bind_by_name --  Associe une variable PHP à une variable SQL Oracle

Description

bool oci_bind_by_name ( resource stmt, string ph_name, mixed &variable [, int maxlength [, int type]] )

oci_bind_by_name() relie la variable PHP variable à l'emplacement Oracle ph_name, dans la commande préparée stmt. 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 length de -1, oci_bind_by_name() utilisera la longueur de variable comme maximum maxlength.

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 :

  • SQLT_FILE - Pour BFILEs;

  • SQLT_CFILE - Pour CFILEs;

  • SQLT_CLOB - Pour CLOBs;

  • SQLT_BLOB - Pour BLOBs;

  • SQLT_RDD - Pour ROWIDs;

  • SQLT_NTY - Pour les types de données nommés.

  • SQLT_INT - pour les entiers.

  • SQLT_CHR - pour les VARCHARs.

  • SQLT_BIN - pour les colonnes RAW.

  • SQLT_LNG - pour les colonnes LONG.

  • SQLT_LBI - pour les colonnes LONG RAW.

  • SQLT_RSET - pour les curseurs, qui ont été créés auparavant avec la fonction oci_new_cursor().

Exemple 1. Exemple avec oci_bind_by_name()

<?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 = oci_connect("scott", "tiger");

$stmt = oci_parse($conn, "
                          INSERT INTO
                                     emp (empno, ename)
                                              VALUES
                                     (:empno,:ename)
                            RETURNING
                                     ROWID
                                 INTO
                                     :rid
                                         "
);

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

$rowid = oci_new_descriptor($conn, OCI_D_ROWID);

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

$update = oci_parse($conn, "
                            UPDATE
                                  emp
                               SET
                                  sal = :sal
                             WHERE
                                  ROWID = :rid
                             "
);
oci_bind_by_name($update, ":rid", $rowid, -1, OCI_B_ROWID);
oci_bind_by_name($update, ":sal", $sal,   32);

$sal = 10000;

foreach (
$data as $empno => $ename) {
   
oci_execute($stmt);
   
oci_execute($update);
}

$rowid->free();

oci_free_statement($update);
oci_free_statement($stmt);

$stmt = oci_parse($conn, "
                          SELECT
                                *
                            FROM
                                emp
                           WHERE
                                empno
                              IN
                                (1111,2222,3333)
                              "
);
oci_execute($stmt);

while (
$row = oci_fetch_assoc($stmt)) {
    
var_dump($row);
}

oci_free_statement($stmt);

/* delete our "junk" from the emp table.... */
$stmt = oci_parse($conn, "
                          DELETE FROM
                                     emp
                                WHERE
                                     empno
                                   IN
                                     (1111,2222,3333)
                                   "
);
oci_execute($stmt);
oci_free_statement($stmt);

oci_close($conn);
?>

N'oubliez pas que cette fonction supprime les caractères d'espace terminaux. Par exemple :

Exemple 2. oci_bind_by_name() et les caractères d'espace terminaux

<?php
    $connection
= oci_connect('apelsin','kanistra');
    
$query = "INSERT INTO test_table VALUES(:id, :text)";

    
$statement = oci_parse($query);
    
oci_bind_by_name($statement, ":id", 1);
    
oci_bind_by_name($statement, ":text", "trailing spaces follow     ");
    
oci_execute($statement);
    
/*
     Ce code va insérer la chaîne 'trailing spaces follow',
     sans les espaces terminaux.
    */
?>

Exemple 3. oci_bind_by_name() et les caractères d'espace terminaux (2)

<?php
    $connection
= oci_connect('apelsin','kanistra');
    
$query = "INSERT INTO test_table VALUES(:id, 'trailing spaces follow      ')";

    
$statement = oci_parse($query);
    
oci_bind_by_name($statement, ":id", 1);
    
oci_execute($statement);
    
/*
     Ce code va insérer la chaîne 'trailing spaces follow      ',
     avec les espaces terminaux.
    */
?>

Avertissement

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

Cette fonction retourne TRUE en cas de succès, FALSE en cas d'échec.

Note : Dans les versions de PHP antérieures à la version 5.0.0, vous devez utiliser la fonction ocibindbyname(). Cet ancien nom est toujours utilisable : un alias a été fait vers la fonction oci_bind_by_name(), pour assurer la compatibilité ascendante. Toutefois, il est recommandé de ne plus l'utiliser.


    Annonces       
 

 Retour au chapitre Php

 

Top
 

Ajouter JungleKey.fr à votre Explorateur

 
 

About Us | © 2007 JungleKey




iBlack | Mobile | Wiki | Ajouter ce moteur
.