Как использовать CodeIgniter querybuilder для вставки данных в MSSQL (newid() )

#sql-server #codeigniter

Вопрос:

Для идентификатора я использую uniqueidentyfier, а в запросах insert я пишу: newid (), но как это сделать в построителе запросов?

 {
$db = ConfigDatabase::connect();

$data = [
 'id'  =>  'newid()',
 'id_zgloszenia'  =>  $idpp,
 'response'  => $response_pp,
 'header_response' => $head_res, 
 'data_datetime' => 'getdate()',   
];

$builder = $db->table('DOM5_PP_LOGI'); 

 $builder->insert($data);     

}  

 

Я стараюсь, как описано выше, а также: $builder->set('id', uniqid());

Но у меня была ошибка: [Microsoft][Драйвер ODBC 17 для SQL Server][SQL Server]Не удалось выполнить преобразование при преобразовании символьной строки в уникальный идентификатор.

Ответ №1:

Вы можете попробовать это, чтобы сгенерировать UUID с помощью MSSQL:

 $builder->set('id', 'NEWID()', FALSE);
 

Объясните: set() также будет принят необязательный третий параметр ( $escape ), который предотвратит экранирование данных, если установлено значение FALSE . Чтобы проиллюстрировать разницу, здесь set() используется как с параметром escape, так и без него.

Вы можете узнать больше здесь: https://codeigniter.com/userguide3/database/query_builder.html#id8

Комментарии:

1. спасибо, (,ЛОЖЬ) работает 😉