]> git.joonet.de Git - adminer.git/commitdiff
Display error code in SQL query
authorJakub Vrana <jakub@vrana.cz>
Thu, 10 Jan 2013 06:19:38 +0000 (22:19 -0800)
committerJakub Vrana <jakub@vrana.cz>
Thu, 10 Jan 2013 06:19:38 +0000 (22:19 -0800)
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/sqlite.inc.php
adminer/include/pdo.inc.php
adminer/sql.inc.php
changes.txt

index e13a49eb106250c4969c640a833ccd4045b4bfbb..bada009c6cfb43833c74fe7fc857351ae4929443 100644 (file)
@@ -12,11 +12,12 @@ if (isset($_GET["mssql"])) {
        define("DRIVER", "mssql");
        if (extension_loaded("sqlsrv")) {
                class Min_DB {
-                       var $extension = "sqlsrv", $_link, $_result, $server_info, $affected_rows, $error;
+                       var $extension = "sqlsrv", $_link, $_result, $server_info, $affected_rows, $errno, $error;
 
                        function _get_error() {
                                $this->error = "";
                                foreach (sqlsrv_errors() as $error) {
+                                       $this->errno = $error["code"];
                                        $this->error .= "$error[message]\n";
                                }
                                $this->error = rtrim($this->error);
index 066fef705580af2cdda015b7234496f79273e449..9f6392a8bc62efa30d291af11e1cb35526cbd101 100644 (file)
@@ -54,6 +54,7 @@ if (!defined("DRIVER")) {
                                $extension = "MySQL", ///< @var string extension name
                                $server_info, ///< @var string server version
                                $affected_rows, ///< @var int number of affected rows
+                               $errno, ///< @var int last error code
                                $error, ///< @var string last error message
                                $_link, $_result ///< @access private
                        ;
@@ -110,6 +111,7 @@ if (!defined("DRIVER")) {
                                $result = @($unbuffered ? mysql_unbuffered_query($query, $this->_link) : mysql_query($query, $this->_link)); // @ - mute mysql.trace_mode
                                $this->error = "";
                                if (!$result) {
+                                       $this->errrno = mysql_errno($this->_link);
                                        $this->error = mysql_error($this->_link);
                                        return false;
                                }
index c32f2b44d91cf79dcbaf270b8b4ab0588c098a7c..85f0089c397a68ee630d3132f7845df3e05b3d5e 100644 (file)
@@ -6,7 +6,7 @@ if (isset($_GET["oracle"])) {
        define("DRIVER", "oracle");
        if (extension_loaded("oci8")) {
                class Min_DB {
-                       var $extension = "oci8", $_link, $_result, $server_info, $affected_rows, $error;
+                       var $extension = "oci8", $_link, $_result, $server_info, $affected_rows, $errno, $error;
 
                        function _error($errno, $error) {
                                if (ini_bool("html_errors")) {
@@ -40,6 +40,7 @@ if (isset($_GET["oracle"])) {
                                $this->error = "";
                                if (!$result) {
                                        $error = oci_error($this->_link);
+                                       $this->errno = $error["code"];
                                        $this->error = $error["message"];
                                        return false;
                                }
index 769322b4b235ccd1078d9e851c902ac2e9d1a839..dc8092dca35cebf218eb53bbd64598557853627f 100644 (file)
@@ -9,7 +9,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
                if (isset($_GET["sqlite"])) {
                        
                        class Min_SQLite {
-                               var $extension = "SQLite3", $server_info, $affected_rows, $error, $_link;
+                               var $extension = "SQLite3", $server_info, $affected_rows, $errno, $error, $_link;
                                
                                function Min_SQLite($filename) {
                                        $this->_link = new SQLite3($filename);
@@ -21,6 +21,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) {
                                        $result = @$this->_link->query($query);
                                        $this->error = "";
                                        if (!$result) {
+                                               $this->errno = $this->_link->lastErrorCode();
                                                $this->error = $this->_link->lastErrorMsg();
                                                return false;
                                        } elseif ($result->numColumns()) {
index b72d68f99cc63d1c1e6c70ad9cc626a2dd231d11..ebe7c34d35daa51a11b154bfdf8cdaddc6312892 100644 (file)
@@ -2,7 +2,7 @@
 // PDO can be used in several database drivers
 if (extension_loaded('pdo')) {
        /*abstract*/ class Min_PDO extends PDO {
-               var $_result, $server_info, $affected_rows, $error;
+               var $_result, $server_info, $affected_rows, $errno, $error;
                
                function __construct() {
                        global $adminer;
@@ -26,8 +26,7 @@ if (extension_loaded('pdo')) {
                        $result = parent::query($query);
                        $this->error = "";
                        if (!$result) {
-                               $errorInfo = $this->errorInfo();
-                               $this->error = $errorInfo[2];
+                               list(, $this->errno, $this->error) = $this->errorInfo();
                                return false;
                        }
                        $this->store_result($result);
index 1768ded1d729d66da15373734192dd0f06da69a2..b93f9a1e6836df1e4bf9194f22ce91a768476882 100644 (file)
@@ -104,7 +104,7 @@ if (!$error && $_POST) {
                                                        $time = format_time($start, $end) . (strlen($q) < 1000 ? " <a href='" . h(ME) . "sql=" . urlencode(trim($q)) . "'>" . lang('Edit') . "</a>" : ""); // 1000 - maximum length of encoded URL in IE is 2083 characters
                                                        if ($connection->error) {
                                                                echo ($_POST["only_errors"] ? $print : "");
-                                                               echo "<p class='error'>" . lang('Error in query') . ": " . error() . "\n";
+                                                               echo "<p class='error'>" . lang('Error in query') . ($connection->errno ? " ($connection->errno)" : "") . ": " . error() . "\n";
                                                                $errors[] = " <a href='#sql-$commands'>$commands</a>";
                                                                if ($_POST["error_stops"]) {
                                                                        break 2;
index 38fd9a5c86758849851e8ce279a941f58d4c5e65..2420cd76f1a2d4b178719a31a894146905e86e48 100644 (file)
@@ -1,4 +1,5 @@
 Adminer 3.6.3-dev:
+Display error code in SQL query
 Treat Meta key same as Ctrl
 Don't use type="number" for decimal numbers