8.88 Fonctions Oracle
8 Référence des fonctions
Manuel PHP
. Introduction . Pré-requis . Configuration à l'exécution . Constantes pré-définies . Exemples . Gestion de la connexion . Types de données supportées par le driver . oci_bind_by_name . oci_cancel . oci_close . 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_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->append . OCI-Lob->close . oci_lob_copy . OCI-Lob->eof . OCI-Lob->erase . OCI-Lob->export . OCI-Lob->flush . OCI-Lob->free . OCI-Lob->getBuffering . OCI-Lob->import . oci_lob_is_equal . OCI-Lob->load . OCI-Lob->read . OCI-Lob->rewind . OCI-Lob->save . OCI-Lob->saveFile . 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_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 . ocicancel . ocicloselob . ocicollappend . ocicollassign . ocicollassignelem . ocicollgetelem . ocicollmax . ocicollsize . ocicolltrim . ocicolumnisnull . ocicolumnname . ocicolumnprecision . ocicolumnscale . ocicolumnsize . ocicolumntype . ocicolumntyperaw . ocicommit . ocidefinebyname . ocierror . ociexecute . ocifetch . ocifetchinto . ocifetchistatement . ocifreecollection . ocifreecursor . ocifreedesc . ocifreestatement . ociinternaldebug . ociloadlob . ocilogoff . ocilogon . ocinewcollection . ocinewcursor . ocinewscriptor . ocinlogon . ocinumcols . ociparse . ociplogon . ociresult . ocirollback . ocirowcount . ocisavelob . ocisavelobfile . ociserverversion . ocisetprefetch . ocistatementtype . ociwritelobtofile . ociwritetemporarylob
|
8.88.64 oci_new_connect()Etablit une nouvelle connexion à Oracle[ Exemples avec oci_new_connect ] PHP 5
resource
oci_new_connect (
string
username
,
string
password
,
string
db
,
string
charset
,
int
session_mode
)
oci_new_connect
établit une nouvelle connexion sur un serveur
Oracle et s'y identifie. Contrairement aux fonctions
oci_connect
et
oci_pconnect
,
oci_new_connect
ne met pas en cache les connexions et retourne toujours un gestionnaire de connexion
nouvellement ouvert. Ceci est très utile si votre application a besoin d'une isolation
transactionnelle entre deux jeux de requêtes.
Le troisième paramètre, optionnel,
db
peut contenir l'instance
locale d'Oracle ou un nom disponible dans le fichier
tnsnames.ora
. Si le troisième paramètre
n'est pas fourni, PHP va chercher la valeur dans les variables
d'environnement
ORACLE_SID
et
TWO_TASK
pour déterminer le nom de l'instance
locale d'Oracle, et la localisation du fichier
tnsnames.ora
.
Le paramètre
session_mode
est disponible depuis la version 1.1
et accepte les valeurs suivantes :
OCI_DEFAULT
,
OCI_SYSOPER
et
OCI_SYSDBA
.
Si
OCI_SYSOPER
ou
OCI_SYSDBA
est spécifié,
oci_new_connect
tentera d'établir une connexion privilégiée
en utilisant les crédances externes. Les connexions privilégiées sont désactivées par défaut.
Pour les activer, vous devez définir oci8.privileged_connect
à On.
| Note | |
Si vous utilisez PHP avec le client Instant d'Oracle, vous pouvez utiliser
les méthodes de nommage facilitant la connexion décrites ici :
http://download-west.oracle.com/docs/cd/B12037_01/network.101/b10775/naming.htm#i498306 .
Basiquement, cela signifie que vous pouvez spécifier "//db_host[:port]/database_name"
en tant que nom de base de données. Mais si vous voulez utiliser l'ancienne façon de nommage,
vous
devez
définir soit
ORACLE_HOME
, soit
TNS_ADMIN
.
|
Si vous utilisez un serveur Oracle version 9.2 et suivant,
vous pouvez renseigner le paramètre
charset
,
qui peut être utilisé dans la nouvelle connexion.
Si vous utilisez un serveur Oracle inférieur à la version 9.2, ce paramètre sera ignoré
et la variable d'environnement NLS_LANG sera utilisé à la place.
Voici comment séparer des transactions.
| Exemple avec oci_new_connect |
<?php echo '<html><pre>'; $db = '';
$c1 = oci_connect("scott", "tiger", $db); $c2 = oci_new_connect("scott", "tiger", $db);
function create_table($conn) { $stmt = oci_parse($conn, "create table scott.hallo (test varchar2(64))"); oci_execute($stmt); echo $conn . " created table\n\n"; }
function drop_table($conn) { $stmt = oci_parse($conn, "drop table scott.hallo"); oci_execute($stmt); echo $conn . " dropped table\n\n"; }
function insert_data($conn) { $stmt = oci_parse($conn, "insert into scott.hallo values('$conn' || ' ' || to_char(sysdate,'DD-MON-YY HH24:MI:SS'))"); oci_execute($stmt, OCI_DEFAULT); echo $conn . " inserted hallo\n\n"; }
function delete_data($conn) { $stmt = oci_parse($conn, "delete from scott.hallo"); oci_execute($stmt, OCI_DEFAULT); echo $conn . " deleted hallo\n\n"; }
function commit($conn) { oci_commit($conn); echo $conn . " committed\n\n"; }
function rollback($conn) { oci_rollback($conn); echo $conn . " rollback\n\n"; }
function select_data($conn) { $stmt = oci_parse($conn, "select * from scott.hallo"); oci_execute($stmt, OCI_DEFAULT); echo $conn . "----selecting\n\n"; while (oci_fetch($stmt)) { echo $conn . " <" . oci_result($stmt, "TEST") . ">\n\n"; } echo $conn . "----done\n\n"; }
create_table($c1); insert_data($c1);
select_data($c1); select_data($c2);
rollback($c1);
select_data($c1); select_data($c2);
insert_data($c2); commit($c2);
select_data($c1);
delete_data($c1); select_data($c1); select_data($c2); commit($c1);
select_data($c1); select_data($c2);
drop_table($c1); echo '</pre></html>'; ?>
|
oci_new_connect
retourne
FALSE
en cas d'erreur.
| Note | |
Dans les versions de PHP antérieures à la version 5.0.0,
vous devez utiliser la fonction
ocinlogon
.
Cet ancien nom est toujours utilisable : un alias a été fait vers
la fonction
oci_new_connect
, pour assurer
la compatibilité ascendante. Toutefois, il est recommandé de ne
plus l'utiliser.
|
Voir aussi
oci_connect
et
oci_pconnect
.
|