LXXI. Oracle 8
Ces
fonctions
vous
permettront
d
'
accéder
aux
serveurs
Oracle8
et
Oracle7
.
Elles
utilisent
l'
interface
Oracle8
Call-Interface
(oci8
)
.
Vous
aurez
donc
besoin
des
librairies
clientes
Oracle8
pour
pouvoir
les
utiliser
.
Il
faut
noter
que
cette
extension
est
plus
souple
que
l
'
extension
Oracle
officielle
.
Elle
supporte
notamment
les
liaisons
entre
les
variables
globales
et
locales
de
PHP
avec
des
emplacements
Oracle
;
elle
supporte
complètement
les
types
LOB
,
FILE
et
ROWID
et
vous
permet
d
'utiliser
des
variables
de
définitions
personnalisables
.
Avant
d'
utiliser
cette
extension
,
assurez-vous
que
vous
avez
bien
paramétré
vos
variables
d
'environnement
Oracle
,
ainsi
que
votre
démon
utilisateur
.
Les
variables
dont
vous
pouvez
avoir
besoin
sont
:
Après
avoir
configuré
ces
variables
pour
votre
utilisateur
"
serveur
web"
,
assurez-vous
aussi
d'ajouter
cet
utilisateur
(nobody
,
www
)
au
group
Oracle
.
Si
votre
serveur
web
ne
démarre
pas
,
ou
crashe
au
démarrage
:
Vérifiez
que
Apache
a
bien
été
compilé
avec
la
librairie
pthread
:
Si
la
libpthread
n
'
est
pas
listée
,
vous
devez
réinstaller
Apache
:
Exemple
1
.
Aide
oci
?php
/
/
par
sergo@bacup.ru
/
/
Utilisez
l'
option
:
oci_DEFAULT
pour
éxécuter
les
commandes
avec
un
délai
ociExecute($stmt
,
oci_DEFAULT)
;
/
/
pour
lire
les
données
après
lecture
,
utilisez
:
$result
=
ociResult($stmt
,
$n)
;
if
(is_object
($result)
)
$result
=
$result
-
load()
;
/
/
Pour
les
commandes
INSERT
ou
UPDATE
utilisez
:
$sql
=
"insert
into
table
(field1
,
field2
)
values
(field1
=
'value'
,
field2
=
empty_clob()
)
returning
field2
into
:field2"
;
ociparse($conn
,
$sql)
;
$clob
=
ociNewDescriptor($conn
,
oci_D_LOB)
;
ociBindByName
($stmt
,
":field2"
,
$clob
,
-1
,
oci_B_CLOB)
;
ociexecute($stmt
,
oci_DEFAULT)
;
$clob
-
save
("Du
texte")
;
ocicommit($conn)
;
?
|
|
Vous
pouvez
facilement
accéder
aux
procédures
stockées
,
de
la
même
façon
que
vous
le
feriez
par
ligne
de
commande
:
Exemple
2
.
Utilisation
de
procédures
stockées
?php
/
/
par
webmaster@remoterealty.com
$sth
=
ociparse
(
$dbh
,
"begin
sp_newaddress
(
:address_id
,
'$firstname'
,
'$lastname'
,
'$company'
,
'$address1'
,
'$address2'
,
'$city'
,
'$state'
,
'$postalcode'
,
'$country'
,
:error_code
);end
;
"
)
;
/
/
Ce
script
appelle
la
procédure
stockée
sp_newaddress
,
avec
address_id
qui
est
/
/
une
variable
entrante
/
sortante
et
:error_code
une
variable
sortante
.
/
/
Lorsque
vous
les
liez
:
ociBindByName
(
$sth
,
":address_id"
,
$addr_id
,
10
)
;
ociBindByName
(
$sth
,
":error_code"
,
$errorcode
,
10
)
;
ociExecute
(
$sth
)
;
?
|
|