Elgg\Mocks\Database\RelationshipsTable::addQuerySpecs PHP Method

addQuerySpecs() public method

Add query specs for a relationship data row
public addQuerySpecs ( stdClass $row ) : void
$row stdClass Data row
return void
    public function addQuerySpecs(stdClass $row)
    {
        $this->clearQuerySpecs($row->id);
        $dbprefix = elgg_get_config('dbprefix');
        // Insert a new relationship
        $sql = "\n\t\t\tINSERT INTO {$dbprefix}entity_relationships\n\t\t\t       (guid_one, relationship, guid_two, time_created)\n\t\t\tVALUES (:guid1, :relationship, :guid2, :time)\n\t\t\t\tON DUPLICATE KEY UPDATE time_created = :time\n\t\t";
        $this->query_specs[$row->id][] = $this->db->addQuerySpec(['sql' => $sql, 'params' => [':guid1' => $row->guid_one, ':guid2' => $row->guid_two, ':relationship' => $row->relationship, ':time' => $row->time_created], 'insert_id' => $row->id]);
        // Get relationship by its ID
        $sql = "\n\t\t\tSELECT * FROM {$dbprefix}entity_relationships\n\t\t\tWHERE id = :id\n\t\t";
        $this->query_specs[$row->id][] = $this->db->addQuerySpec(['sql' => $sql, 'params' => [':id' => (int) $row->id], 'results' => function () use($row) {
            if (isset($this->rows[$row->id])) {
                return [$this->rows[$row->id]];
            }
            return [];
        }]);
        // Delete relationship by its ID
        $sql = "\n\t\t\tDELETE FROM {$dbprefix}entity_relationships\n\t\t\tWHERE id = :id\n\t\t";
        $this->query_specs[$row->id][] = $this->db->addQuerySpec(['sql' => $sql, 'params' => [':id' => (int) $row->id], 'results' => function () use($row) {
            if (isset($this->rows[$row->id])) {
                $this->clearQuerySpecs($row->id);
                unset($this->rows[$row->id]);
                return [$row->id];
            }
            return [];
        }, 'times' => 1]);
        // Check relationship between two GUIDs
        $sql = "\n\t\t\tSELECT * FROM {$dbprefix}entity_relationships\n\t\t\tWHERE guid_one = :guid1\n\t\t\t  AND relationship = :relationship\n\t\t\t  AND guid_two = :guid2\n\t\t\tLIMIT 1\n\t\t";
        $this->query_specs[$row->id][] = $this->db->addQuerySpec(['sql' => $sql, 'params' => [':guid1' => (int) $row->guid_one, ':guid2' => (int) $row->guid_two, ':relationship' => $row->relationship], 'results' => function () use($row) {
            if (isset($this->rows[$row->id])) {
                return [$this->rows[$row->id]];
            }
            return [];
        }]);
    }