Esempio n. 1
0
function db_field_set_create($table_name, $field_set)
{
    !sn_db_field_set_is_safe($field_set) ? $field_set = sn_db_field_set_make_safe($field_set) : false;
    sn_db_field_set_safe_flag_clear($field_set);
    $values = implode(',', $field_set);
    $fields = implode(',', array_keys($field_set));
    return classSupernova::db_query("INSERT INTO `{{{$table_name}}}` ({$fields}) VALUES ({$values});");
}
Esempio n. 2
0
 public static function db_ins_field_set($location_type, $field_set, $serialize = false)
 {
     // TODO multiinsert ?
     !sn_db_field_set_is_safe($field_set) ? $field_set = sn_db_field_set_make_safe($field_set, $serialize) : false;
     sn_db_field_set_safe_flag_clear($field_set);
     $values = implode(',', $field_set);
     $fields = implode(',', array_keys($field_set));
     $table_name = static::$location_info[$location_type][P_TABLE_NAME];
     if ($result = static::db_query("INSERT INTO `{{{$table_name}}}` ({$fields}) VALUES ({$values});")) {
         if (db_affected_rows()) {
             // Обновляем данные только если ряд был затронут
             $record_id = db_insert_id();
             // Вытаскиваем запись целиком, потому что в $set могли быть "данные по умолчанию"
             $result = static::db_get_record_by_id($location_type, $record_id);
             // Очищаем второстепенные кэши - потому что вставленная запись могла повлиять на результаты запросов или локация или еще чего
             // TODO - когда будет поддержка изменения индексов и локаций - можно будет вызывать её
             static::cache_clear($location_type, false);
             // Мягкий сброс - только $queries
         }
     }
     return $result;
 }