cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_queryОтправка запроса CUBRID

Описание

cubrid_query ( string $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() - Выполнение запроса без загрузки результата в память