PDO Как отличить вставку и дублирование / обновление lastinsertid

Я использую действительно потрясающий кусок кода, который вставляет И в дубликат ключа, он обновляет дубликат идентификатора и получает последний идентификатор вставки независимо от дубликата или нет. Поэтому я получаю идентификатор последнего обновления или дубликат идентификатора. Но есть ли способ отличить два?

$prepare=$connection->prepare("insert into category(related,text) values(?,?)
on duplicate key update id=last_insert_id(id)");
$prepare->execute([1,"property"]);
print_r($connection->lastinsertid());
// this is both the update id and duplicate update id

Это даст мне идентификатор независимо от дубликата ошибки или нет. Но я хотел бы различить, является ли идентификатор дубликатом или нет. Что-то вроде:

$prepare=$connection->prepare("insert into category(related,text) values(?,?)
on duplicate key select id");
$prepare->execute([1,"property"]);
$fetch=$prepare->fetch();
if(!empty($fetch)){
echo 'DUPLICATE';
$id=$fetch['id'];
// this is the duplicate update id
}
else{
$id=$connection->lastinsertid();
// this is the update id
}

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]