X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModel%2FItemURI.php;h=3194097f31ad0e5bbad4680b1c2580793267db4f;hb=dfcfae6bcca54a27b1bf5099d96d54f2bba997d3;hp=12e8d915df2cfe88ff4ca2e92cc69907e53757a0;hpb=43b8bdea07c2e7f49d2314f909524d154ce9346b;p=friendica.git diff --git a/src/Model/ItemURI.php b/src/Model/ItemURI.php index 12e8d915df..3194097f31 100644 --- a/src/Model/ItemURI.php +++ b/src/Model/ItemURI.php @@ -1,6 +1,6 @@ truncateFieldsForTable('item-uri', $fields); - if (!DBA::exists('item-uri', ['uri' => $uri])) { - DBA::insert('item-uri', $fields, true); + if (!DBA::exists('item-uri', ['uri' => $fields['uri']])) { + DBA::insert('item-uri', $fields, Database::INSERT_IGNORE); } - $itemuri = DBA::selectFirst('item-uri', ['id', 'guid'], ['uri' => $uri]); - + $itemuri = DBA::selectFirst('item-uri', ['id', 'guid'], ['uri' => $fields['uri']]); if (!DBA::isResult($itemuri)) { // This shouldn't happen + Logger::warning('Item-uri not found', $fields); return null; } @@ -60,21 +61,24 @@ class ItemURI * Searched for an id of a given uri. Adds it, if not existing yet. * * @param string $uri + * @param bool $insert * * @return integer item-uri id + * * @throws \Exception */ - public static function getIdByURI($uri) + public static function getIdByURI(string $uri, bool $insert = true): int { - // If the URI gets too long we only take the first parts and hope for best - $uri = substr($uri, 0, 255); + if (empty($uri)) { + return 0; + } $itemuri = DBA::selectFirst('item-uri', ['id'], ['uri' => $uri]); - if (!DBA::isResult($itemuri)) { + if (!DBA::isResult($itemuri) && $insert) { return self::insert(['uri' => $uri]); } - return $itemuri['id']; + return $itemuri['id'] ?? 0; } }