cubrid_query
(PECL CUBRID >= 8.3.1)
cubrid_query — Отправка запроса CUBRID
Описание
$query
, resource $conn_identifier
= ?
) : resource
Функция cubrid_query() посылает уникальный запрос (множественные
запросы не поддерживаются) текущей активной базе данных, заданной идентификатором
соединения conn_identifier
.
Список параметров
-
query
-
SQL-запрос
Данные в запросе должны быть корректно экранированы.
-
conn_identifier
-
Идентификатор соединения. Если не задано, то будет использовано последнее, открытое с помощью cubrid_connect() соединение.
Возвращаемые значения
Для SELECT, SHOW, DESCRIBE, EXPLAIN и прочих запросах, возвращающих результирующий
набор, cubrid_query() возвращает resource в случае
успешного выполнения и false
в случае возникновения ошибки.
Для прочих типов SQL-запросов, INSERT, UPDATE, DELETE, DROP и т.д,
cubrid_query() возвращает true
или false
в зависимости от
успешности выполнения.
Возвращенный результат можно передавать в функцию cubrid_fetch_array() и ей подобные для работы с полученными данными.
Используйте cubrid_num_rows() для определения количества возвращенных оператором SELECT строк или cubrid_affected_rows() для определения количества затронутых строк, для запросов изменяющих данные, таких как DELETE, INSERT, REPLACE и UPDATE.
cubrid_query() также может завершиться с ошибкой и вернуть false
,
если пользоватиль не имеет прав на доступ к таблице, используемой в запросе.
Примеры
Пример #1 Некорректный запрос
Следующий запрос содержит синтаксическую ошибку, так что
cubrid_query() вернет false
.
<?php
$conn = cubrid_connect('localhost', 33000, 'demodb');
$result = cubrid_query('SELECT * WHERE 1=1');
if (!$result) {
die('Некорректный запрос: ' . cubrid_error());
}
?>
Пример #2 Корректный запрос
Следующий запрос корректен, так что cubrid_query() вернет resource.
<?php
// Какие нибудь значения
$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')");
// Сформулируем запрос
// Это лучший путь для выполнения запроса
// Другие примеры смотрите 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));
// Выполняем запрос
$result = cubrid_query($query);
// Проверяем результат
// Показывает сам запрос и ошибку. полезно при отладке.
if (!$result) {
$message = 'Некорректный запрос: ' . cubrid_error() . "\n";
$message .= 'Всего запросов: ' . $query;
die($message);
}
// Используем результат
// Попытка распечатать $result не позволит получить доступ к информации в ресурсе
// Должна быть использована одна из функций cubrid
// Смотрите cubrid_result(), cubrid_fetch_array(), cubrid_fetch_row() и т.д.
while ($row = cubrid_fetch_assoc($result)) {
echo $row['firstname'];
echo $row['lastname'];
echo $row['address'];
echo $row['age'];
}
// Освобождаем ресурсы. В принципе можно и не делать, так как
// они будут автоматически освобождены после завершения работы скрипта
cubrid_free_result($result);
?>
Смотрите также
- cubrid_connect() - Открывает соединение к серверу CUBRID
- cubrid_error() - Возвращает текст последней произошедшей ошибки
- cubrid_real_escape_string() - Экранирование специальных символов в SQL-запросе
- cubrid_result() - Получить значение из заданного столбца заданной строки
- cubrid_fetch_assoc() - Извлечь строку из результирующего набора в виде ассоциативного массива
- cubrid_unbuffered_query() - Выполнение запроса без загрузки результата в память