cubrid_query
(PECL CUBRID >= 8.3.1)
cubrid_query — Envoi une requête CUBRID
Description
$query
[, resource $conn_identifier
] )
La fonction cubrid_query() envoie une seule requête
(l'envoi de plusieurs requête n'est pas supporté) à la base de données
active sur le serveur associé avec le paramètre conn_identifier
fourni.
Liste de paramètres
-
query
-
Une requête SQL
Les données de la requête doivent être proprement échappées.
-
conn_identifier
-
La connexion CUBRID. Si l'identifiant de connexion n'est pas spécifié, la dernière connexion ouverte avec la fonction cubrid_connect() sera utilisée.
Valeurs de retour
Pour les requête de type SELECT, SHOW, DESCRIBE, EXPLAIN et autres requêtes
retournant un jeu de résultats, cubrid_query() retourne
une ressource en cas de succès, ou FALSE
si une erreur survient.
Pour les autres requêtes (INSERT, UPDATE, DELETE, DROP, etc.),
cubrid_query() retourne TRUE
en cas de succès, ou FALSE
si une erreur survient.
La ressource de résultats retournée doit être passée à la fonction cubrid_fetch_array(), et autres fonctions gérants les ressources de résultats, afin d'accéder aux données retournées.
Utilisez la fonction cubrid_num_rows() pour trouver le nombre de lignes retournées par une requête SELECT ou la fonction cubrid_affected_rows() afin de savoir le nombre de lignes affectées par une requête DELETE, INSERT, REPLACE, ou UPDATE.
La fonction cubrid_query() échouera et retournera FALSE
si l'utilisateur n'a pas l'autorisation d'accéder à la table utilisée dans
la requête.
Exemples
Exemple #1 Requête invalide
<?php $conn = cubrid_connect('localhost', 33000, 'demodb'); $result = cubrid_query('SELECT * WHERE 1=1'); if (!$result) { die('Requête invalide : ' . cubrid_error()); } ?>
Exemple #2 Requête valide
<?php
// Ces variables pourraient être fournis par un utilisateur, par exemple
$firstname = 'fred';
$lastname = 'fox';
$conn = cubrid_connect('localhost', 33000, 'demodb');
cubrid_execute($conn,"DROP TABLE if exists friends");
cubrid_execute($conn,"create table friends(firstname varchar,lastname varchar,address char(24),age int)");
cubrid_execute($conn,"insert into friends values('fred','fox','home-1','20')");
cubrid_execute($conn,"insert into friends values('blue','cat','home-2','21')");
// Requête formelle
// C'est la meilleure façon d'exécuter une requête SQL
// Pour plus d'exemples, voir la fonction cubrid_real_escape_string()
$query = sprintf("SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s'",
cubrid_real_escape_string($firstname),
cubrid_real_escape_string($lastname));
// Exécution de la requête
$result = cubrid_query($query);
// Vérifie le résultat
// Montre la requête envoyée à CUBRID, et l'erreur. Utile pour le débogage.
if (!$result) {
$message = 'Requête invalide : ' . cubrid_error() . "\n";
$message .= 'Requête complète : ' . $query;
die($message);
}
// Utilisation du résultat
// Le fait de tenter d'afficher $result ne vous donnera pas accès à l'information de la ressource
// Une des fonctions de traitement des résultats CUBRID doit être utilisée
// Voir aussi cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row(), etc.
while ($row = cubrid_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}
// Libère les ressources associées avec le jeu de résultats
// Ceci est fait automatiquement à la fin du script
cubrid_free_result($result);
?>
Voir aussi
- cubrid_connect() - Ouvre une connexion au serveur CUBRID
- cubrid_error() - Récupère le message de l'erreur
- cubrid_real_escape_string() - Échappe les caractères spéciaux d'une chaîne pour l'utiliser dans une requête SQL
- cubrid_result() - Retourne la valeur d'un champ d'une ligne spécifique
- cubrid_fetch_assoc() - Retourne un tableau associatif correspondant à la ligne récupérée
- cubrid_unbuffered_query() - Exécute une requête sans placer les résultats en mémoire vive