mirror of
https://git.tt-rss.org/fox/tt-rss.git
synced 2025-09-22 22:10:59 +02:00
rollback current transaction before trying to report SQL query errors, properly save database error messages when logging query errors
This commit is contained in:
parent
edba269b6f
commit
38f439708c
@ -26,9 +26,12 @@ class Db_Mysql implements IDb {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function query($query, $die_on_error = true) {
|
function query($query, $die_on_error = true) {
|
||||||
$result = mysql_query($query, $this->link);
|
$result = @mysql_query($query, $this->link);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
user_error("Query $query failed: " . ($this->link ? mysql_error($this->link) : "No connection"),
|
$error = @mysql_error($this->link);
|
||||||
|
|
||||||
|
@mysql_query("ROLLBACK", $this->link);
|
||||||
|
user_error("Query $query failed: " . ($this->link ? $error : "No connection"),
|
||||||
$die_on_error ? E_USER_ERROR : E_USER_WARNING);
|
$die_on_error ? E_USER_ERROR : E_USER_WARNING);
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
|
@ -24,9 +24,12 @@ class Db_Mysqli implements IDb {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function query($query, $die_on_error = true) {
|
function query($query, $die_on_error = true) {
|
||||||
$result = mysqli_query($this->link, $query);
|
$result = @mysqli_query($this->link, $query);
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
user_error("Query $query failed: " . ($this->link ? mysqli_error($this->link) : "No connection"),
|
$error = @mysqli_error($this->link);
|
||||||
|
|
||||||
|
@mysqli_query($this->link, "ROLLBACK");
|
||||||
|
user_error("Query $query failed: " . ($this->link ? $error : "No connection"),
|
||||||
$die_on_error ? E_USER_ERROR : E_USER_WARNING);
|
$die_on_error ? E_USER_ERROR : E_USER_WARNING);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,11 +35,14 @@ class Db_Pgsql implements IDb {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function query($query, $die_on_error = true) {
|
function query($query, $die_on_error = true) {
|
||||||
$result = pg_query($query);
|
$result = @pg_query($this->link, $query);
|
||||||
|
|
||||||
if (!$result) {
|
if (!$result) {
|
||||||
|
$error = @pg_last_error($this->link);
|
||||||
|
|
||||||
|
@pg_query($this->link, "ROLLBACK");
|
||||||
$query = htmlspecialchars($query); // just in case
|
$query = htmlspecialchars($query); // just in case
|
||||||
user_error("Query $query failed: " . ($this->link ? pg_last_error($this->link) : "No connection"),
|
user_error("Query $query failed: " . ($this->link ? $error : "No connection"),
|
||||||
$die_on_error ? E_USER_ERROR : E_USER_WARNING);
|
$die_on_error ? E_USER_ERROR : E_USER_WARNING);
|
||||||
}
|
}
|
||||||
return $result;
|
return $result;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user