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

Update

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

int
CDatabase::Update(
	string table,
	array fields,
	string where = "",
	string error_position = "",
	bool debug = false,
	bool ignore_errors = false,
	string additional_check=true
)

Метод изменяет записи в таблицы table значениями полей fields. Возвращает количество измененных записей. Нестатический метод.

Примечание: все значения полей должны быть подготовлены для SQL запроса, например, при помощи метода CDatabase::ForSql.

Параметры

ПараметрОписание С версии
table Название таблицы.
fields Массив вида значений полей "поле"=>"значение",...
where Ограничение для WHERE в формате SQL
Необязательный. По умолчанию все записи в таблице будут изменены.
error_position Строка идентифицирующая позицию в коде, откуда был вызван метод CDatabase::Update. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос.
debug Если значение - "true", то на экран будет выведен текст SQL запроса.
ignore_errors если значение "true", то в случае ошибки возникшей в результате выполнения SQL запроса, она будет проигнорирована и работа скрипта продолжена.3.2.7
additional_check Необязательный. По умолчанию true.5.1.7

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

<?
if (strlen($save)>0)
{
	if (CheckFields())
	{
		$DB->PrepareFields("b_form");
		$arFields = array(
			"TIMESTAMP_X"             => $DB->GetNowFunction(),
			"NAME"                    => "'".trim($str_NAME)."'",
			"VARNAME"                 => "'".trim($str_VARNAME)."'",
			"C_SORT"                  => "'".intval($str_C_SORT)."'",
			"FIRST_SITE_ID"           => "'".$DB->ForSql($FIRST_SITE_ID,2)."'",
			"BUTTON"                  => "'".$str_BUTTON."'",
			"DESCRIPTION"             => "'".$str_DESCRIPTION."'",
			"DESCRIPTION_TYPE"        => "'".$str_DESCRIPTION_TYPE."'",
			"SHOW_TEMPLATE"           => "'".trim($str_SHOW_TEMPLATE)."'",
			"MAIL_EVENT_TYPE"         => "'".$DB->ForSql("FORM_FILLING_".$str_VARNAME,50)."'",
			"SHOW_RESULT_TEMPLATE"    => "'".trim($str_SHOW_RESULT_TEMPLATE)."'",
			"PRINT_RESULT_TEMPLATE"   => "'".trim($str_PRINT_RESULT_TEMPLATE)."'",
			"EDIT_RESULT_TEMPLATE"    => "'".trim($str_EDIT_RESULT_TEMPLATE)."'",
			"FILTER_RESULT_TEMPLATE"  => "'".trim($str_FILTER_RESULT_TEMPLATE)."'",
			"TABLE_RESULT_TEMPLATE"   => "'".trim($str_TABLE_RESULT_TEMPLATE)."'",
			"STAT_EVENT1"             => "'".trim($str_STAT_EVENT1)."'",
			"STAT_EVENT2"             => "'".trim($str_STAT_EVENT2)."'",
			"STAT_EVENT3"             => "'".trim($str_STAT_EVENT3)."'"
			);
				$DB->StartTransaction();
		if ($ID>0) 
		{
			$DB->Update("b_form", $arFields, "WHERE ID='".$ID."'", $err_mess.__LINE__);
		}
		else 
		{
			$ID = $DB->Insert("b_form", $arFields, $err_mess.__LINE__);
			$new="Y";
		}
		$ID = intval($ID);
		if (strlen($strError)<=0) 
		{
			$DB->Commit();
			if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
			elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
		}
		else $DB->Rollback();
	}
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024