• Модуль: bitrixcloud
  • Путь к файлу: ~/bitrix/modules/bitrixcloud/classes/general/option.php
  • Класс: CBitrixCloudOption
  • Вызов: CBitrixCloudOption::_update_db
private function _update_db($value)
{
	global $DB;
	if (!is_array($value))
		$value = array();

	reset($value);
	$rs = $DB->Query("
		select ID, SORT, PARAM_KEY, PARAM_VALUE
		from b_bitrixcloud_option
		where NAME = '".$DB->ForSQL($this->name)."'
		order by ID
	");

	$sort = 0;
	foreach ($value as $key => $val)
	{
		if ($db_row = $rs->fetch())
		{
			if (
				"".$db_row["PARAM_VALUE"]."" !== "".$val.""
				|| "".$db_row["PARAM_KEY"]."" !== "".$key.""
				|| "".$db_row["SORT"]."" !== "".$sort.""
			)
			{
				$DB->Query("
					UPDATE b_bitrixcloud_option SET
						PARAM_KEY = '".$DB->ForSql($key, 50)."'
						,PARAM_VALUE = '".$DB->ForSql($val, 200)."'
						,SORT = ".$sort."
					WHERE ID = ".$db_row["ID"]."
				");
			}
		}
		else
		{
			$DB->Add("b_bitrixcloud_option", array(
				"NAME" => $this->name,
				"SORT" => (string)$sort,
				"PARAM_KEY" => $key,
				"PARAM_VALUE" => $val,
			));
		}
		$sort++;
	}

	if ($db_row = $rs->fetch())
	{
		$DB->Query("
			DELETE FROM b_bitrixcloud_option
			WHERE NAME = '".$DB->ForSql($this->name, 50)."'
			AND ID >= ".$db_row["ID"]."
		");
	}
}