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

PrepareUpdate

Описание и параметры

array
CDatabase::PrepareUpdate(
 string TableName,
 array fields,
 string FileDir="",
 string lang=false,
 string TableAlias = ""
)

Метод подготавливает строку для SQL запроса изменения записи в базе данных. Возвращает строку вида "имя поля1 = значение1", имя поля2 = значение2[, ...]". При этом метод сам преобразует все значение в SQL вид в зависимости от типа поля. Нестатический метод.

Параметры

ПараметрОписаниеС версии
TableNameИмя таблицы.
fieldsМассив значений полей в формате "имя поля1"=>"значение1", "имя поля2"=>"значение2" [, ...].
Если необходимо изменить значение на NULL, то значение в массиве должно быть равно false.
FileDirНе используется.
langКод сайта для публичной части, либо код языка для административной части. Используется для определения формата даты, для вставки полей типа date или datetime.
Необязательный. По умолчанию false.
TableAliasНеобязательный.12.0.9

Смотрите также

Примеры использования

<?
function UpdateResultField($arFields, $RESULT_ID, $FIELD_ID)
{
	$err_mess = (CForm::err_mess())."<br>Function: UpdateResultField<br>Line: ";
	global $DB;
	$RESULT_ID = intval($RESULT_ID);
	$FIELD_ID = intval($FIELD_ID);
	$strUpdate = $DB->PrepareUpdate("b_form_result_answer", $arFields, "form");
	$strSql = "UPDATE b_form_result_answer SET ".$strUpdate." WHERE RESULT_ID=".$RESULT_ID." and FIELD_ID=".$FIELD_ID;
	$DB->Query($strSql, false, $err_mess.__LINE__);
}
?>


Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Борис Хмелёв
Сообщение непромодерировано, возможны ошибки и неточности.
Чтобы значение поля было NULL, нужно задать null (лоукапс), а не как написано в документации NULL.

В самом методе SqlHelper::convertToDb используется ===
Код
 
if ($value === null)
{
            return "NULL";
}
Поэтому если вы убили полчаса на то, чтобы понять почему НЕ РАБОТАЮТ:

$arFields['SOME_FLD'] = NULL;
$arFields['SOME_FLD'] = Null;
$arFields['SOME_FLD'] = 'NULL';
$arFields['SOME_FLD'] = 'FALSE';
$arFields['SOME_FLD'] = false;
$arFields['SOME_FLD'] = False;

Не переживайте...просто сразу надо смотреть сорсы метода, и пофик на оф доку )
© «Битрикс», 2001-2021, «1С-Битрикс», 2021
Наверх