mirror of
https://github.com/friendica/friendica
synced 2025-04-22 09:10:10 +00:00
Use an insert to avoid duplicates and for analyzing
This commit is contained in:
parent
5bba0e7d39
commit
9ba3ee13a8
2 changed files with 23 additions and 12 deletions
|
@ -1418,13 +1418,22 @@ class Contact extends BaseObject
|
|||
|
||||
$condition = ['nurl' => Strings::normaliseLink($data["url"]), 'uid' => $uid, 'deleted' => false];
|
||||
|
||||
// This does an insert but should most likely prevent duplicates
|
||||
DBA::update('contact', $fields, $condition, true);
|
||||
|
||||
// Before inserting we do check if the entry does exist now.
|
||||
$contact = DBA::selectFirst('contact', ['id'], $condition, ['order' => ['id']]);
|
||||
if (!DBA::isResult($contact)) {
|
||||
// Shouldn't happen
|
||||
return 0;
|
||||
Logger::info('Create new contact', $fields);
|
||||
|
||||
DBA::insert('contact', $fields);
|
||||
|
||||
// We intentionally aren't using lastInsertId here. There is a chance for duplicates.
|
||||
$contact = DBA::selectFirst('contact', ['id'], $condition, ['order' => ['id']]);
|
||||
if (!DBA::isResult($contact)) {
|
||||
Logger::info('Contact creation failed', $fields);
|
||||
// Shouldn't happen
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
Logger::info('Contact had been created before', ['id' => $contact["id"], 'url' => $url, 'contact' => $fields]);
|
||||
}
|
||||
|
||||
$contact_id = $contact["id"];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue