xref: /plugin/combo/ComboStrap/SqliteResult.php (revision 04fd306c7c155fa133ebb3669986875d65988276)
1c3437056SNickeau<?php
2c3437056SNickeau
3c3437056SNickeau
4c3437056SNickeaunamespace ComboStrap;
5c3437056SNickeau
6c3437056SNickeau
7c3437056SNickeauclass SqliteResult
8c3437056SNickeau{
9c3437056SNickeau    private $res;
10c3437056SNickeau    /**
11c3437056SNickeau     * @var SqliteRequest
12c3437056SNickeau     */
13c3437056SNickeau    private $sqlite;
14c3437056SNickeau    /**
15c3437056SNickeau     * @var \helper_plugin_sqlite
16c3437056SNickeau     */
17c3437056SNickeau    private $sqlitePlugin;
18c3437056SNickeau
19c3437056SNickeau    /**
20c3437056SNickeau     * SqliteResult constructor.
21c3437056SNickeau     */
22c3437056SNickeau    public function __construct(SqliteRequest $sqlite, $res)
23c3437056SNickeau    {
24c3437056SNickeau        $this->sqlite = $sqlite;
25c3437056SNickeau        $this->res = $res;
26c3437056SNickeau        $this->sqlitePlugin = $this->sqlite->getSqliteConnection()->getSqlitePlugin();
27c3437056SNickeau
28c3437056SNickeau    }
29c3437056SNickeau
30c3437056SNickeau    public function getRows(): array
31c3437056SNickeau    {
32c3437056SNickeau        return $this->sqlitePlugin->res2arr($this->res);
33c3437056SNickeau    }
34c3437056SNickeau
35c3437056SNickeau    public function close(): SqliteResult
36c3437056SNickeau    {
37*04fd306cSNickeau        /**
38*04fd306cSNickeau         * $this->res is a number in CI
39*04fd306cSNickeau         *
40*04fd306cSNickeau         * We get:
41*04fd306cSNickeau         * Error: Call to a member function closeCursor() on int
42*04fd306cSNickeau         * /home/runner/work/combo/combo/lib/plugins/sqlite/classes/adapter_pdosqlite.php:125
43*04fd306cSNickeau         */
44*04fd306cSNickeau        if ($this->res instanceof \PDOStatement) {
45c3437056SNickeau            $this->sqlitePlugin->res_close($this->res);
46*04fd306cSNickeau        }
47c3437056SNickeau        $this->res = null;
48c3437056SNickeau        return $this;
49c3437056SNickeau    }
50c3437056SNickeau
51c3437056SNickeau    public function getInsertId(): string
52c3437056SNickeau    {
53c3437056SNickeau        return $this->sqlitePlugin->getAdapter()->getDb()->lastInsertId();
54c3437056SNickeau    }
55c3437056SNickeau
56c3437056SNickeau    public function getChangeCount()
57c3437056SNickeau    {
58c3437056SNickeau        return $this->sqlitePlugin->countChanges($this->res);
59c3437056SNickeau    }
60c3437056SNickeau
61c3437056SNickeau    public function getFirstCellValue()
62c3437056SNickeau    {
63c3437056SNickeau        return $this->sqlitePlugin->res2single($this->res);
64c3437056SNickeau    }
65c3437056SNickeau
66c3437056SNickeau    public function getFirstCellValueAsInt(): int
67c3437056SNickeau    {
68c3437056SNickeau        return intval($this->getFirstCellValue());
69c3437056SNickeau    }
70c3437056SNickeau
71c3437056SNickeau    public function getFirstRow()
72c3437056SNickeau    {
73c3437056SNickeau        $rows = $this->getRows();
74c3437056SNickeau        if (sizeof($rows) >= 1) {
75c3437056SNickeau            return $rows[0];
76c3437056SNickeau        }
77c3437056SNickeau        return [];
78c3437056SNickeau    }
79c3437056SNickeau
80c3437056SNickeau
81c3437056SNickeau}
82