root/dev/common/includes/class.db.php @ 209

Revision 209, 2.5 KB (checked in by exi, 14 years ago)

Added the CombinedKillList?-Object which can be used to combine several killlists into one for the killlisttable-object.
Added counting code for the query cache.
Fixed a sql bug in toplist.

Line 
1<?php
2
3class DBConnection
4{
5    function DBConnection()
6    {
7        static $conn_id;
8
9        if (is_resource($conn_id))
10        {
11            $this->id_ = $conn_id;
12            return;
13        }
14        if (!$this->id_ = mysql_connect(DB_HOST, DB_USER, DB_PASS))
15            die("Unable to connect to mysql database.");
16
17        mysql_select_db(DB_NAME);
18        $conn_id = $this->id_;
19    }
20
21    function id()
22    {
23        return $this->id_;
24    }
25
26    function affectedRows()
27    {
28        return mysql_affected_rows($this->id_);
29    }
30}
31
32class DBQuery
33{
34    function DBQuery()
35    {
36        $this->executed_ = false;
37        $this->dbconn_ = new DBConnection;
38    }
39
40    function queryCount($increase = false)
41    {
42        static $count;
43
44        if ($increase)
45        {
46            $count++;
47        }
48
49        return $count;
50    }
51
52    function execute($sql)
53    {
54        $t1 = strtok(microtime(), ' ') + strtok('');
55
56        $this->resid_ = mysql_query($sql, $this->dbconn_->id());
57
58        if ($this->resid_ == false)
59        {
60            if (defined('DB_HALTONERROR') && DB_HALTONERROR)
61            {
62                echo "Database error: " . mysql_error($this->dbconn_->id()) . "<br>";
63                echo "SQL: " . $sql . "<br>";
64                exit;
65            }
66            else
67            {
68                return false;
69            }
70        }
71
72        $this->exectime_ = strtok(microtime(), ' ') + strtok('') - $t1;
73        $this->executed_ = true;
74
75        if (KB_PROFILE == 2)
76        {
77            file_put_contents('/tmp/profile.lst', $sql . "\nExecution time: " . $this->exectime_ . "\n", FILE_APPEND);
78        }
79
80        $this->queryCount(true);
81
82        return true;
83    }
84
85    function recordCount()
86    {
87        return mysql_num_rows($this->resid_);
88    }
89
90    function getRow()
91    {
92        if ($this->resid_)
93        {
94            return mysql_fetch_assoc($this->resid_);
95        }
96        return false;
97    }
98
99    function rewind()
100    {
101        @mysql_data_seek($this->resid_, 0);
102    }
103
104    function getInsertID()
105    {
106        return mysql_insert_id();
107    }
108
109    function execTime()
110    {
111        return $this->exectime_;
112    }
113
114    function executed()
115    {
116        return $this->executed_;
117    }
118
119    function getErrorMsg()
120    {
121        $msg = $this->sql_ . "<br>";
122        $msg .= "Query failed. " . mysql_error($this->dbconn_->id());
123
124        return $msg;
125    }
126}
127?>
Note: See TracBrowser for help on using the browser.