#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. спасибо, (,ЛОЖЬ) работает 😉