db2_exec
Exécute une requête SQL directement
&reftitle.description;
resourcedb2_exec
resourceconnection
stringstatement
arrayoptions
Exécute une requête SQL directement.
Si vous prévoyez intercaler des variables PHP dans la requête SQL, vous
devez comprendre que c'est l'une des plus communes failles de sécurité.
Considérez qu'il faut appeler la fonction db2_prepare
pour préparer une requête SQL qui contient des marqueurs pour des variables d'entrée.
Ensuite, vous pouvez appeler la fonction db2_execute
pour passer les valeurs d'entrée et ainsi éviter les attaques par
injections SQL.
Si vous prévoyez appeler à plusieurs reprises la même requête SQL avec des
paramètres différents, considérez qu'il est préférable d'appeler la
fonction db2_prepare et
db2_execute pour permettre au serveur de base de
données de réutiliser son plan d'accès et ainsi augmenter l'efficacité de
votre accès à la base de données.
&reftitle.parameters;
connection
Une variable ressource de connexion valide retournée par
db2_connect ou db2_pconnect.
statement
Une requête SQL. La requête ne peut contenir de marqueur.
options
Un tableau associatif contenant les options de la requête. Vous pouvez
utiliser ce paramètre pour demander un curseur flottant sur les
serveurs de base de données qui supportent cette fonctionnalité.
Pour une description des options valides, reportez-vous à la fonction
db2_set_option.
&reftitle.returnvalues;
Retourne une variable ressource si la requête SQL était envoyée
correctement ou &false; si la base de données n'a pas réussi à exécuter la
requête SQL.
&reftitle.examples;
Création d'une table avec db2_exec
L'exemple suivant utilise la fonction db2_exec pour
envoyer un ensemble de requêtes DDL afin de créer une table.
]]>
&example.outputs;
Exécution d'une requête SELECT avec un curseur flottant
L'exemple suivant montre comment demander un curseur flottant pour une
requête SQL envoyée avec la fonction db2_exec.
DB2_SCROLLABLE));
while ($row = db2_fetch_array($stmt)) {
print "$row[0]\n";
}
}
?>
]]>
&example.outputs;
Retourne des données XML en tant que ResultSet SQL
L'exemple suivant démontre comment utiliser des documents enregistrés
dans une colonne XML en utilisant la base de données SAMPLE. En
utilisant un simple SQL/XML, cet exemple retourne quelques nœuds dans un
document XML dans un format ResultSet SQL dont la plupart des
utilisateurs sont familiers.
CID $row->NAME $row->PHONE\n");
}
db2_close($conn);
?>
]]>
&example.outputs;
Exécuter un "JOIN" avec des données XML
L'exemple suivant fonctionne avec des documents enregistrés dans deux
colonnes différentes dans la base de données SAMPLE. Cela crée deux
tables temporaires provenant des documents XML de deux différentes
colonnes XML et retourne un ResultSet SQL avec les informations contenant
le statut de livraison pour un client.
CID $row->NAME $row->PHONE $row->PONUM $row->STATUS\n");
}
db2_close($conn);
?>
]]>
&example.outputs;
Retourne des données SQL faisant partie d'un document XML large
L'exemple suivant utilise une portion des documents de
PRODUCT.DESCRIPTION dans la base de données SAMPLE. Cela crée un document
XML contenant la description du produit (données XML) et les informations
concernant le prix (données SQL).
{
for $prod in $doc/product
where $prod/description/price < 10.00
order by $prod/description/price ascending
return(
{
$prod,
{$start} ,
{$end} ,
{$promo}
}
)
}
\' passing by ref DESCRIPTION AS "doc",
PROMOSTART as "start",
PROMOEND as "end",
PROMOPRICE as "promo"
RETURNING SEQUENCE)
AS CLOB (32000))
AS NEW_PRODUCT_INFO
FROM PRODUCT
WHERE PID = \'100-100-01\'
';
$stmt = db2_exec($conn, $query);
while($row = db2_fetch_array($stmt)){
printf("$row[0]\n");
}
db2_close($conn);
?>
]]>
&example.outputs;
Snow Shovel, Basic 22 inch
Basic Snow Shovel, 22 inches wide, straight handle with D-Grip
9.99
1 kg
2004-11-19
2004-12-19
7.25
]]>
&reftitle.seealso;
db2_execute
db2_prepare