cubrid_query
(PECL CUBRID >= 8.3.1)
cubrid_query — Envoi une requête CUBRID
Description
$query
[, resource $conn_identifier
] ) : resource
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
La requête suivante n'est littéralement pas valide, aussi, la fonction
cubrid_query() échouera et retournera FALSE
.
<?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
La requête suivante est valide, aussi, la fonction cubrid_query() retournera une ressource.
<?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
Version en cache
23/12/2024 01:56:44 Cette version de la page est en cache (à la date du 23/12/2024 01:56:44) 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-function.cubrid-query.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.