CakeFest 2024: The Official CakePHP Conference

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

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top