From 42192f2dab2e366e3758b34d1e0c48de6b0db859 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Tue, 22 Jul 2014 20:27:37 +0200 Subject: [PATCH] * Additional checks for database connection errors. * Closes #46. Shows additional info about config directory permissions errors. --- inc/db.class.php | 66 +++++++++++++++------- inc/init.php | 2 +- inc/locales/de_DE/LC_MESSAGES/messages.mo | Bin 49545 -> 49545 bytes inc/locales/en_US/LC_MESSAGES/messages.mo | Bin 48744 -> 48905 bytes inc/locales/hu_HU/LC_MESSAGES/messages.mo | Bin 50392 -> 50392 bytes inc/util.class.php | 2 +- 6 files changed, 47 insertions(+), 23 deletions(-) diff --git a/inc/db.class.php b/inc/db.class.php index 34cb2843..c7df638e 100644 --- a/inc/db.class.php +++ b/inc/db.class.php @@ -81,15 +81,25 @@ class DB return true; } + $isInstalled = SP_Config::getValue('installed'); + $dbhost = SP_Config::getValue("dbhost"); $dbuser = SP_Config::getValue("dbuser"); $dbpass = SP_Config::getValue("dbpass"); $dbname = SP_Config::getValue("dbname"); + if (empty($dbhost) || empty($dbuser) || empty($dbpass) || empty($dbname)) { + if ($isInstalled) { + SP_Init::initError(_('No es posible conectar con la BD'), _('Compruebe los datos de conexión')); + } else { + return false; + } + } + self::$_db = @new mysqli($dbhost, $dbuser, $dbpass, $dbname); if (self::$_db->connect_errno) { - if (SP_Config::getValue("installed")) { + if ($isInstalled) { if (self::$_db->connect_errno === 1049) { SP_Config::setValue('installed', '0'); } @@ -100,7 +110,7 @@ class DB } } - if (!self::$_db->set_charset("utf8")){ + if (!self::$_db->set_charset("utf8")) { SP_Init::initError(_('No es posible conectar con la BD'), 'Error ' . self::$_db->connect_errno . ': ' . self::$_db->connect_error); } @@ -146,12 +156,13 @@ class DB * @param string $query con la consulta a realizar * @param string $querySource con el nombre de la función que realiza la consulta * @param bool $retArray devolver un array si la consulta tiene esultados + * @param bool $unbuffered devolver el resultado registro a registro * @return bool|array devuelve bool si hay un error. Devuelve array con el array de registros devueltos */ - public static function getResults($query, $querySource, $retArray = false) + public static function getResults($query, $querySource, $retArray = false, $unbuffered = false) { if ($query) { - self::doQuery($query, $querySource); + self::doQuery($query, $querySource, $unbuffered); } if (self::$numError || self::$num_rows === 0) { @@ -173,9 +184,10 @@ class DB * @brief Realizar una consulta a la BBDD * @param string $query con la consulta a realizar * @param string $querySource con el nombre de la función que realiza la consulta + * @param bool $unbuffered realizar la consulta para obtener registro a registro * @return bool|int devuelve bool si hay un error. Devuelve int con el número de registros */ - public static function doQuery($query, $querySource) + public static function doQuery($query, $querySource, $unbuffered = false) { if (!self::connection()) { return false; @@ -183,10 +195,17 @@ class DB $isSelect = preg_match("/^.*(select|show)\s/i", $query); - // Limpiar valores de caché + // Limpiar valores de caché y errores self::$last_result = array(); + self::$numError = 0; + self::$txtError = ''; - $queryRes = self::$_db->query($query); + // Comprobamos si la consulta debe de ser devuelta completa o por registro + if (!$unbuffered) { + $queryRes = self::$_db->query($query); + } else { + $queryRes = self::$_db->real_query($query); + } if (!$queryRes) { self::$numError = self::$_db->errno; @@ -201,27 +220,32 @@ class DB } if ($isSelect) { - if ($queryRes->num_rows == 1) { - self::$last_result = @$queryRes->fetch_object(); - } else { - $num_row = 0; + //self::$num_rows = $queryRes->num_rows; + self::$num_rows = self::$_db->affected_rows; - while ($row = @$queryRes->fetch_object()) { - self::$last_result[$num_row] = $row; - $num_row++; + if (!$unbuffered) { + self::$num_fields = self::$_db->field_count; + + if (self::$num_rows === 1) { + self::$last_result = @$queryRes->fetch_object(); + } else { + $num_row = 0; + + while ($row = @$queryRes->fetch_object()) { + self::$last_result[$num_row] = $row; + $num_row++; + } } + + $queryRes->close(); + } else { + self::$last_result = self::$_db->use_result(); } - - self::$num_rows = $queryRes->num_rows; - self::$num_fields = $queryRes->field_count; - - $queryRes->close(); } self::$lastId = self::$_db->insert_id; - $numRows = self::$_db->affected_rows; - return $numRows; + return self::$num_rows; } /** diff --git a/inc/init.php b/inc/init.php index 4e9cd18a..042abcc8 100644 --- a/inc/init.php +++ b/inc/init.php @@ -317,7 +317,7 @@ class SP_Init $configPerms = decoct(fileperms(self::$SERVERROOT . DIRECTORY_SEPARATOR . 'config') & 0777); if (!SP_Util::runningOnWindows() && $configPerms != "750") { - self::initError(_('Los permisos del directorio "/config" son incorrectos'), $configPerms); + self::initError(_('Los permisos del directorio "/config" son incorrectos'), _('Actual:') . ' ' . $configPerms . ' - ' . _('Necesario: 750')); } } diff --git a/inc/locales/de_DE/LC_MESSAGES/messages.mo b/inc/locales/de_DE/LC_MESSAGES/messages.mo index 240437e1d3d6975c9cef1fffa98242c6fa27cd67..71aa1db92b2637ef3f9fa1adcdc48155091c6df0 100644 GIT binary patch delta 65 zcmeBdX6|fe-mtsc$XwURNWsX!%Fs;Pz|g>eE5KhjD77rJI5R&_*Cnwe)e0zSXrgO? LP`CMQ^&D3KcwQ4j delta 65 zcmeBdX6|fe-mtsc$W+(JOu@j=%E(yTz|g>eE5KhjD77rJI5R&_*Cnwe)k?w0z|ch3 O0H)5^aP!;hIj#VBDHA{d diff --git a/inc/locales/en_US/LC_MESSAGES/messages.mo b/inc/locales/en_US/LC_MESSAGES/messages.mo index 533d6e7f1198edd000ff5d37e4bc30c6231aba52..a4c4d7069f18e04e08de571c263801d380284df2 100644 GIT binary patch delta 14611 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 delta 14517 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 diff --git a/inc/util.class.php b/inc/util.class.php index 4787d107..31be7a52 100644 --- a/inc/util.class.php +++ b/inc/util.class.php @@ -254,7 +254,7 @@ class SP_Util */ public static function getVersion($retBuild = false) { - $build = 9; + $build = 10; $version = array(1, 1, 2); if ($retBuild) {