(PECL CUBRID >= 8.3.1)
cubrid_query — Envoi une requête CUBRID
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.
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.
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.
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);
?>