Документация для разработчиков
Темная тема

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", то метод прерывает выполнение страницы, выполняя перед этим следующие действия:

  1. Вызов функции AddMessage2Log.
  2. Если текущий пользователь является администратором сайта, либо в файле /bitrix/php_interface/dbconn.php была инициализирована переменная $DBDebug=true;, то на экран будет выведен полный текст ошибки, в противном случае будет вызвана функция SendError.
  3. Будет подключен файл /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-2024, «1С-Битрикс», 2024