mirror of
https://github.com/friendica/friendica
synced 2025-05-07 15:04:12 +02:00
Mode switch for insert
This commit is contained in:
parent
fa5acb3b21
commit
303aaa00ca
15 changed files with 56 additions and 31 deletions
|
@ -31,6 +31,7 @@ use Friendica\Core\Renderer;
|
|||
use Friendica\Core\Session;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Model\Notify\Type;
|
||||
|
@ -168,13 +169,13 @@ class Contact
|
|||
* Insert a row into the contact table
|
||||
* Important: You can't use DBA::lastInsertId() after this call since it will be set to 0.
|
||||
*
|
||||
* @param array $fields field array
|
||||
* @param bool $on_duplicate_update Do an update on a duplicate entry
|
||||
* @param array $fields field array
|
||||
* @param int $duplicate_mode Do an update on a duplicate entry
|
||||
*
|
||||
* @return boolean was the insert successful?
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function insert(array $fields, bool $on_duplicate_update = false)
|
||||
public static function insert(array $fields, int $duplicate_mode = Database::INSERT_DEFAULT)
|
||||
{
|
||||
if (!empty($fields['baseurl']) && empty($fields['gsid'])) {
|
||||
$fields['gsid'] = GServer::getID($fields['baseurl'], true);
|
||||
|
@ -184,7 +185,7 @@ class Contact
|
|||
$fields['created'] = DateTimeFormat::utcNow();
|
||||
}
|
||||
|
||||
$ret = DBA::insert('contact', $fields, $on_duplicate_update);
|
||||
$ret = DBA::insert('contact', $fields, $duplicate_mode);
|
||||
$contact = DBA::selectFirst('contact', ['nurl', 'uid'], ['id' => DBA::lastInsertId()]);
|
||||
if (!DBA::isResult($contact)) {
|
||||
// Shouldn't happen
|
||||
|
|
|
@ -23,6 +23,7 @@ namespace Friendica\Model;
|
|||
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\Protocol;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\Util\DateTimeFormat;
|
||||
|
||||
|
@ -124,7 +125,7 @@ class Conversation
|
|||
Logger::DEBUG);
|
||||
}
|
||||
} else {
|
||||
if (!DBA::insert('conversation', $conversation, true)) {
|
||||
if (!DBA::insert('conversation', $conversation, Database::INSERT_UPDATE)) {
|
||||
Logger::log('Conversation: insert for ' . $conversation['item-uri'] . ' (protocol ' . $conversation['protocol'] . ') failed',
|
||||
Logger::DEBUG);
|
||||
}
|
||||
|
|
|
@ -27,6 +27,7 @@ use Friendica\Core\Logger;
|
|||
use Friendica\Core\Protocol;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Core\Worker;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Module\Register;
|
||||
|
@ -541,7 +542,7 @@ class GServer
|
|||
}
|
||||
|
||||
foreach ($tags as $tag) {
|
||||
DBA::insert('gserver-tag', ['gserver-id' => $gserver['id'], 'tag' => $tag], true);
|
||||
DBA::insert('gserver-tag', ['gserver-id' => $gserver['id'], 'tag' => $tag], Database::INSERT_IGNORE);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
namespace Friendica\Model;
|
||||
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
|
||||
class ItemURI
|
||||
|
@ -39,7 +40,7 @@ class ItemURI
|
|||
$uri = substr($fields['uri'], 0, 255);
|
||||
|
||||
if (!DBA::exists('item-uri', ['uri' => $uri])) {
|
||||
DBA::insert('item-uri', $fields, true);
|
||||
DBA::insert('item-uri', $fields, Database::INSERT_UPDATE);
|
||||
}
|
||||
|
||||
$itemuri = DBA::selectFirst('item-uri', ['id', 'guid'], ['uri' => $uri]);
|
||||
|
|
|
@ -23,6 +23,7 @@ namespace Friendica\Model\Post;
|
|||
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Util\Images;
|
||||
|
@ -72,14 +73,14 @@ class Media
|
|||
|
||||
// We are storing as fast as possible to avoid duplicated network requests
|
||||
// when fetching additional information for pictures and other content.
|
||||
$result = DBA::insert('post-media', $media, true);
|
||||
$result = DBA::insert('post-media', $media, Database::INSERT_UPDATE);
|
||||
Logger::info('Stored media', ['result' => $result, 'media' => $media, 'callstack' => System::callstack()]);
|
||||
$stored = $media;
|
||||
|
||||
$media = self::fetchAdditionalData($media);
|
||||
|
||||
if (array_diff_assoc($media, $stored)) {
|
||||
$result = DBA::insert('post-media', $media, true);
|
||||
$result = DBA::insert('post-media', $media, Database::INSERT_UPDATE);
|
||||
Logger::info('Updated media', ['result' => $result, 'media' => $media]);
|
||||
} else {
|
||||
Logger::info('Nothing to update', ['media' => $media]);
|
||||
|
|
|
@ -23,7 +23,7 @@ namespace Friendica\Model\Post;
|
|||
|
||||
use Friendica\Database\DBA;
|
||||
use \BadMethodCallException;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBStructure;
|
||||
|
||||
class User
|
||||
|
@ -58,7 +58,7 @@ class User
|
|||
$fields['unseen'] = false;
|
||||
}
|
||||
|
||||
return DBA::insert('post-user', $fields);
|
||||
return DBA::insert('post-user', $fields, Database::INSERT_IGNORE);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -25,6 +25,7 @@ use Friendica\Content\Text\BBCode;
|
|||
use Friendica\Core\Cache\Duration;
|
||||
use Friendica\Core\Logger;
|
||||
use Friendica\Core\System;
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
use Friendica\DI;
|
||||
use Friendica\Util\Strings;
|
||||
|
@ -151,7 +152,7 @@ class Tag
|
|||
}
|
||||
}
|
||||
|
||||
DBA::insert('post-tag', $fields, true);
|
||||
DBA::insert('post-tag', $fields, Database::INSERT_IGNORE);
|
||||
|
||||
Logger::info('Stored tag/mention', ['uri-id' => $uriid, 'tag-id' => $tagid, 'contact-id' => $cid, 'name' => $name, 'type' => $type, 'callstack' => System::callstack(8)]);
|
||||
}
|
||||
|
@ -172,7 +173,7 @@ class Tag
|
|||
return $tag['id'];
|
||||
}
|
||||
|
||||
DBA::insert('tag', $fields, true);
|
||||
DBA::insert('tag', $fields, Database::INSERT_IGNORE);
|
||||
$tid = DBA::lastInsertId();
|
||||
if (!empty($tid)) {
|
||||
return $tid;
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
|
||||
namespace Friendica\Model;
|
||||
|
||||
use Friendica\Database\Database;
|
||||
use Friendica\Database\DBA;
|
||||
|
||||
class Verb
|
||||
|
@ -44,7 +45,7 @@ class Verb
|
|||
return $verb_record['id'];
|
||||
}
|
||||
|
||||
DBA::insert('verb', ['name' => $verb], true);
|
||||
DBA::insert('verb', ['name' => $verb], Database::INSERT_IGNORE);
|
||||
|
||||
return DBA::lastInsertId();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue