Отправляет запрос CUBRID

# cubrid_query

(PECL CUBRID >= 8.3.1)

cubrid_query — Отправляет запрос CUBRID

### Описание

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open