Insert
Описание и параметры
mixed CDatabase::Insert( string table, array fields, string error_position = "", bool debug = false, int exist_id = "", bool ignore_errors = false )
Метод вставляет запись в таблицу table с значениями полей fields. Необходимые условия использования данной метода:
- Необходимо наличие поля "ID" в таблице, представляющее из себя Primary Key для данной таблицы.
- Для MySQL поле "ID" должно быть auto increment (если при вызове метода явно не задается параметр exist_id).
- Для Oracle обязательно наличие sequence (последовательности) с именем вида "SQ_.table".
Примечание. Если необходимо вставить запись с определенным ID и при этом указать его в параметре fields, то метод возвращает 0, при этом запись вставляется. Если необходимо, чтобы метод вернул ID, который вы указывали, то его необходимо указывать в параметре exist_id.
Примечание: все значения полей должны быть подготовлены для SQL запроса, например, при помощи метода
CDatabase::ForSql.
Нестатический метод.
Параметры
Параметр | Описание | С версии |
---|---|---|
table | Название таблицы. | |
fields | Массив вида значений полей "поле"=>"значение",... | |
error_position | Строка идентифицирующая позицию в коде, откуда была вызвана данная функция CDatabase::Insert. Если в SQL запросе будет ошибка и если в файле /bitrix/php_interface/dbconn.php установлена переменная $DBDebug=true;, то на экране будет выведена данная информация и сам SQL запрос. | |
debug | Если значение - "true", то на экран будет выведен текст SQL запроса. | |
exist_id | Если данный параметр задан в виде положительного числа, то при вставке записи в таблицу, будет добавлено поле с именем "ID" и значением exist_id. Если данный параметр явно не задан, то для Oracle таблицы будет добавлено поле "ID", со значением SQ_table.nextval(). | |
ignore_errors | если значение "true", то в случае ошибки возникшей в результате выполнения SQL запроса, она будет проигнорирована и работа скрипта продолжена. | 3.2.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