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

PrepareFields

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

CDatabase::PrepareFields(
 string TableName,
 string prefix = "str_",
 string Suffix = ""
)

Метод подготавливает глобальные переменные, соответствующие именам полей таблицы table для записи в БД. Нестатический метод.

Создает глобальные переменные ${prefix.имя_поля.postfix} и устанавливает их значениями глобальных переменных, соответствующих именам полей из таблицы table, предварительно преобразовав их в зависимости от типа поля.

Например, для поля типа int будет выполнено:

${prefix.имя_поля.postfix} = intval(${имя_поля});
Для поля типа varchar:

${prefix.имя_поля.postfix} = CDatabase::ForSql(${имя_поля}, размер_поля);

Примечание. Метод работает с переменными из глобальной области видимости, это необходимо учитывать при создании основных файлов компонентов.

Параметры

ПараметрОписание
TableName Имя таблицы.
prefix Префикс переменных.
Необязательный. По умолчанию "str_".
Suffix Постфикс переменных.
Необязательный. По умолчанию пустая строка.

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

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

<?
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)."'"
            );
        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) 
        {
            if (strlen($save)>0) LocalRedirect("form_list.php?lang=".LANGUAGE_ID);
            elseif ($new=="Y") LocalRedirect("form_edit.php?lang=".LANGUAGE_ID."&ID=".$ID);
        }
    }
}
?>


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