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-2024, «1С-Битрикс», 2024