# cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Envoi une requête CUBRID

### Description

cubrid_query(string `$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 resource 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