From e31dfb643a2b70b1ae7dc467b379fb2026709341 Mon Sep 17 00:00:00 2001
From: Jörn Friedrich Dreyer <jfd@butonic.de>
Date: Wed, 12 Sep 2012 12:45:20 +0200
Subject: add getErrorMessage to OC_DB

---
 lib/db.php | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

diff --git a/lib/db.php b/lib/db.php
index ee69e5f8299..4317f798484 100644
--- a/lib/db.php
+++ b/lib/db.php
@@ -649,6 +649,30 @@ class OC_DB {
 			return false;
 		}
 	}
+	
+	/**
+	 * returns the error code and message as a string for logging
+	 * works with MDB2 and PDOException
+	 * @param mixed $error
+	 * @return string
+	 */
+	public static function getErrorMessage($error) {
+		if ( self::$backend==self::BACKEND_MDB2 and PEAR::isError($error) ) {
+			$msg = $error->getCode() . ': ' . $error->getMessage();
+			if (defined('DEBUG') && DEBUG) {
+				$msg .= '(' . $error->getDebugInfo() . ')';
+			}
+		} elseif (self::$backend==self::BACKEND_PDO and self::$PDO) {
+			$msg = self::$PDO->errorCode() . ': ';
+			$errorInfo = self::$PDO->errorInfo();
+			if (is_array($errorInfo)) {
+				$msg .= 'SQLSTATE = '.$errorInfo[0] . ', ';
+				$msg .= 'Driver Code = '.$errorInfo[1] . ', ';
+				$msg .= 'Driver Message = '.$errorInfo[2];
+			}
+		}
+		return $msg;
+	}
 }
 
 /**
-- 
cgit v1.2.3