]> git.wh0rd.org - tt-rss.git/blob - classes/db/mysqli.php
Merge branch 'master' into css-feedtree-counter
[tt-rss.git] / classes / db / mysqli.php
1 <?php
2 class Db_Mysqli implements IDb {
3 private $link;
4
5 function connect($host, $user, $pass, $db, $port) {
6 if ($port)
7 $this->link = mysqli_connect($host, $user, $pass, $db, $port);
8 else
9 $this->link = mysqli_connect($host, $user, $pass, $db);
10
11 if ($this->link) {
12 $this->init();
13
14 return $this->link;
15 } else {
16 die("Unable to connect to database (as $user to $host, database $db): " . mysqli_error());
17 }
18 }
19
20 function escape_string($s, $strip_tags = true) {
21 if ($strip_tags) $s = strip_tags($s);
22
23 return mysqli_real_escape_string($this->link, $s);
24 }
25
26 function query($query, $die_on_error = true) {
27 $result = mysqli_query($this->link, $query);
28 if (!$result) {
29 user_error("Query $query failed: " . ($this->link ? mysqli_error($this->link) : "No connection"),
30 $die_on_error ? E_USER_ERROR : E_USER_WARNING);
31 }
32
33 return $result;
34 }
35
36 function fetch_assoc($result) {
37 return mysqli_fetch_assoc($result);
38 }
39
40
41 function num_rows($result) {
42 return mysqli_num_rows($result);
43 }
44
45 function fetch_result($result, $row, $param) {
46 if (mysqli_data_seek($result, $row)) {
47 $line = mysqli_fetch_assoc($result);
48 return $line[$param];
49 } else {
50 return false;
51 }
52 }
53
54 function close() {
55 return mysqli_close($this->link);
56 }
57
58 function affected_rows($result) {
59 return mysqli_affected_rows($this->link);
60 }
61
62 function last_error() {
63 return mysqli_error();
64 }
65
66 function init() {
67 $this->query("SET time_zone = '+0:0'");
68
69 if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) {
70 $this->query("SET NAMES " . MYSQL_CHARSET);
71 }
72
73 return true;
74 }
75
76 }
77 ?>