oci_parse
(PHP 5, PHP 7, PECL OCI8 >= 1.1.0)
oci_parse — Prépare une requête SQL avec Oracle
Description
$connection
, string $sql_text
)
Prépare la requête sql_text
en utilisant la connexion
connection
et retourne l'identifiant de requête
qui pourra être utilisé avec les fonctions oci_bind_by_name(),
oci_execute(), etc..
Les identifiants de requête peuvent être libérés
en utilisant la fonction oci_free_statement()
ou en définissant la variable correspondante à la valeur
NULL
.
Liste de paramètres
-
connection
-
Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou oci_new_connect().
-
sql_text
-
La requête SQL ou PL/SQL.
Les requêtes SQL ne doivent pas se terminer par un point-virgule (";"). Les requêtes PL/SQL doivent se terminer par un point-virgule (";").
Valeurs de retour
Retourne un gestionnaire de requête en cas de succès, ou FALSE
si une erreur survient.
Exemples
Exemple #1 Exemple avec oci_parse()
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
// Analyse de la requête. Notez qu'il n'y a pas de point-virgule à la fin de la requête SQL
$stid = oci_parse($conn, 'SELECT * FROM employees');
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : "") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
Exemple #2 Exemple avec oci_parse() et une requête PL/SQL
<?php
/*
Avant d'exécuter ce code PHP, vous devez créer une procédure stockée en
SQL*Plus ou SQL Developer:
CREATE OR REPLACE PROCEDURE myproc(p1 IN NUMBER, p2 OUT NUMBER) AS
BEGIN
p2 := p1 * 2;
END;
*/
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$p1 = 8;
// Lors de l'analyse PL/SQL, il doit y avoir un point-virgule à la fin de la chaîne
$stid = oci_parse($conn, 'begin myproc(:p1, :p2); end;');
oci_bind_by_name($stid, ':p1', $p1);
oci_bind_by_name($stid, ':p2', $p2, 40);
oci_execute($stid);
print "$p2\n"; // affiche 16
oci_free_statement($stid);
oci_close($conn);
?>
Notes
Note:
Cette fonction ne valide pas la requête
sql_text
. La seule façon de savoir si la requêtesql_text
est valide est de l'exécuter.
Voir aussi
- oci_execute() - Exécute une commande SQL Oracle
- oci_free_statement() - Libère toutes les ressources réservées par un résultat Oracle
Version en cache
15/11/2024 07:54:36 Cette version de la page est en cache (à la date du 15/11/2024 07:54:36) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-oci-parse.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.