QueryBind
Описание и параметры
Только для Oracle версии!
mixed CDatabase::QueryBind( string sql, array binds, bool ignore_errors=false, string error_position="" )
Выполняет SQL-запросы типа "UPDATE", "INSERT", в которых есть необходимость связывания переменных (как правило для полей типа BLOB, CLOB, LONG и т.п.). Нестатический метод.
В случае успешного выполнения метод возвращает объект класса CDBResult.
Если произошла ошибка и параметр ignore_errors равен "true", то метод вернет "false".
Если произошла ошибка и параметр ignore_errors равен "false", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:
- Вызов функции AddMessage2Log.
- Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
- Будет подключен файл /bitrix/php_interface/dbquery_error.php, если он не существует, то будет подключен файл /bitrix/modules/main/include/dbquery_error.php
Параметры
| Параметр | Описание |
|---|---|
| sql | SQL запрос. |
| binds | Массив полей типа BLOB, CLOB, LONG и т.п. в формате array("имя поля" => "значение" [, ...]). |
| ignore_errors | Игнорировать ошибки. Если true, то в случае ошибки метод возвращает "false".
Если параметр ignore_errors равен "false", то в случае ошибки метод прекращает выполнение всей страницы. Необязательный. По умолчанию - "false". |
| error_position | Строка идентифицирующая позицию в коде, откуда был вызван данный метод CDatabase::QueryBind. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос. |
Пример использования
<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("TEST CLOB");
require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_admin_before.php");
// обновление поля
$MY_FIELD_VALUE = "123";
// обновим поле MY_FIELD типа CLOB
$strError = "";
$arFields["NEWS_TEXT_FCK"] = $MY_FIELD_VALUE;
$strUpdate = $DB->PrepareUpdate("aa_abc", $arFields);
if($strUpdate != "")
{
$strSql = "UPDATE aa_abc SET ".$strUpdate." WHERE ID=15";
// в переменной $MY_FIELD_VALUE содержится текст длиной более 4000 символов
$arBinds = array("NEWS_TEXT_FCK" => $MY_FIELD_VALUE);
// выполним запрос со связыванием :MY_FIELD с реальным значением
if(!$DB->QueryBind($strSql, $arBinds))
$strError = "Query Error!";
}
if($strError=="")
echo "all Ok!";
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");
?>
© «Битрикс», 2001-2025, «1С-Битрикс», 2025