X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=classes%2Fdb%2Fmysqli.php;h=a05b121fcf694bfa73d3ee89b8ff5d03c66644c6;hb=39f32402b89928816f947de534731abe864ab3da;hp=e82f6630007fed0f211c00c20fff1bbb84e955b1;hpb=ae35bb87ebcf08007a6086f136b98cba2448d34f;p=tt-rss.git diff --git a/classes/db/mysqli.php b/classes/db/mysqli.php index e82f6630..a05b121f 100644 --- a/classes/db/mysqli.php +++ b/classes/db/mysqli.php @@ -1,16 +1,21 @@ link = mysqli_connect($host, $user, $pass, $db, $port); + if ($port) + $this->link = mysqli_connect($host, $user, $pass, $db, $port); + else + $this->link = mysqli_connect($host, $user, $pass, $db); if ($this->link) { $this->init(); return $this->link; } else { - die("Unable to connect to database (as $user to $host, database $db): " . mysqli_error()); + print("Unable to connect to database (as $user to $host, database $db): " . mysqli_connect_error()); + exit(102); } } @@ -21,9 +26,12 @@ class Db_Mysqli implements IDb { } function query($query, $die_on_error = true) { - $result = mysqli_query($this->link, $query); + $result = @mysqli_query($this->link, $query); if (!$result) { - user_error("Query $query failed: " . ($this->link ? mysqli_error($this->link) : "No connection"), + $this->last_error = @mysqli_error($this->link); + + @mysqli_query($this->link, "ROLLBACK"); + user_error("Query $query failed: " . ($this->link ? $this->last_error : "No connection"), $die_on_error ? E_USER_ERROR : E_USER_WARNING); } @@ -57,18 +65,21 @@ class Db_Mysqli implements IDb { } function last_error() { - return mysqli_error(); + return mysqli_error($this->link); + } + + function last_query_error() { + return $this->last_error; } function init() { $this->query("SET time_zone = '+0:0'"); if (defined('MYSQL_CHARSET') && MYSQL_CHARSET) { - $this->query("SET NAMES " . MYSQL_CHARSET); + mysqli_set_charset($this->link, MYSQL_CHARSET); } return true; } } -?>