]> git.mxchange.org Git - mailer.git/blobdiff - inc/db/lib-mysql3.php
More bugs resolved, thanks to profi-concept
[mailer.git] / inc / db / lib-mysql3.php
index 3d7f11ca3e9f97e5194904cc4360ee904a6f5a59..ada4e4795f987c93e10cac39cca0930700b5df66 100644 (file)
@@ -41,6 +41,9 @@ if (!defined('__SECURITY')) {
 function SQL_QUERY ($sql_string, $F, $L) {
        global $link, $CSS, $_CONFIG, $OK;
 
+       // Link is up?
+       if (!is_resource($link)) return false;
+
        // Remove \t, \n and \r from queries they may confuse some MySQL version I have heard
        $sql_string = str_replace("\t", " ", str_replace("\n", " ", str_replace("\r", " ", $sql_string)));
 
@@ -49,8 +52,8 @@ function SQL_QUERY ($sql_string, $F, $L) {
 
        // Run SQL command
        //* DEBUG: */ echo $sql_string."<br />\n";
-       $result = @mysql_query($sql_string, $link)
-        or ADD_FATAL($F." (".$L."):".mysql_error()."<br />
+       $result = mysql_query($sql_string, $link)
+        or addFatalMessage($F." (".$L."):".mysql_error()."<br />
 Query string:<br />
 ".$sql_string);
 
@@ -64,11 +67,10 @@ Query string:<br />
        $_CONFIG['db_last_query'] = $sql_string;
 
        // Count this query
-       if (getConfig('sql_count') == null) $_CONFIG['sql_count'] = 0;
-       $_CONFIG['sql_count']++;
+       incrementConfigEntry('sql_count');
 
        // Debug output
-       //* DEBUG: */ print "Query=<pre>".$sql_string."</pre>, affected=<b>".SQL_AFFECTEDROWS()."</b>, numrows=<b>".SQL_NUMROWS($result)."</b><br />\n";
+       //* DEBUG: */ print "Query=<pre>".$sql_string."</pre>, affected=<strong>".SQL_AFFECTEDROWS()."</strong>, numrows=<strong>".SQL_NUMROWS($result)."</strong><br />\n";
 
        if (($CSS != "1") && ($CSS != "-1") && (isBooleanConstantAndTrue('DEBUG_MODE')) && (isBooleanConstantAndTrue('DEBUG_SQL'))) {
                //
@@ -102,7 +104,7 @@ function SQL_NUMROWS($result) {
        // Is the result a valid resource?
        if (is_resource($result)) {
                // Get the count of rows from database
-               $lines = @mysql_num_rows($result);
+               $lines = mysql_num_rows($result);
 
                // Is the result empty? Then we have an error!
                if (empty($lines)) $lines = 0;
@@ -121,7 +123,7 @@ function SQL_AFFECTEDROWS() {
        if (!is_resource($link)) return false;
 
        // Get affected rows
-       $lines = @mysql_affected_rows($link);
+       $lines = mysql_affected_rows($link);
 
        // Return it
        return $lines;
@@ -135,7 +137,7 @@ function SQL_FETCHROW($result) {
        // Is a result resource set?
        if (!is_resource($result)) return false;
 
-       $DATA = @mysql_fetch_row($result);
+       $DATA = mysql_fetch_row($result);
        return $DATA;
 }
 
@@ -148,7 +150,7 @@ function SQL_FETCHARRAY($res, $nr=0, $remove_numerical=true) {
        $row = array();
 
        // Load row from database
-       $row = @mysql_fetch_array($res);
+       $row = mysql_fetch_array($res);
 
        // Return only arrays here
        if (is_array($row)) {
@@ -172,19 +174,19 @@ function SQL_FETCHARRAY($res, $nr=0, $remove_numerical=true) {
 
 // SQL result
 function SQL_RESULT($res, $row, $field) {
-       $result = @mysql_result($res, $row, $field);
+       $result = mysql_result($res, $row, $field);
        return $result;
 }
 // SQL connect
 function SQL_CONNECT($host, $login, $password, $F, $L) {
-       $connect = @mysql_connect($host, $login, $password) or ADD_FATAL($F." (".$L."):".mysql_error());
+       $connect = mysql_connect($host, $login, $password) or addFatalMessage($F." (".$L."):".mysql_error());
        return $connect;
 }
 // SQL select database
 function SQL_SELECT_DB($dbName, $link, $F, $L) {
        $select = false;
        if (is_resource($link)) {
-               $select = @mysql_select_db($dbName, $link) or ADD_FATAL($F." (".$L."):".mysql_error());
+               $select = mysql_select_db($dbName, $link) or addFatalMessage($F." (".$L."):".mysql_error());
        }
        return $select;
 }
@@ -209,31 +211,38 @@ function SQL_CLOSE(&$link, $F, $L) {
        } // END - if
 
        // Close database link and forget the link
-       $close = @mysql_close($link) or ADD_FATAL($F." (".$L."):".mysql_error());
+       $close = mysql_close($link) or addFatalMessage($F." (".$L."):".mysql_error());
        $link = null;
        return $close;
 }
+
 // SQL free result
-function SQL_FREERESULT($result) {
+function SQL_FREERESULT ($result) {
        if (!is_resource($result)) {
                // Abort here
                return false;
        } // END - if
 
-       $res = @mysql_free_result($result);
+       $res = mysql_free_result($result);
        return $res;
 }
+
 // SQL string escaping
-function SQL_QUERY_ESC($qstring, $data, $file, $line, $run=true, $strip=true) {
+function SQL_QUERY_ESC ($qstring, $data, $file, $line, $run=true, $strip=true) {
        global $link;
 
+       // Link is there?
+       if (!is_resource($link)) return false;
+
+       // Init variable
+       $query = "failed";
+
        if ($strip) {
                $strip = "true";
        } else {
                $strip = "false";
        }
 
-       $query = "";
        $eval = "\$query = sprintf(\"".$qstring."\"";
        foreach ($data as $var) {
                if ((!empty($var)) || ($var === 0)) {
@@ -251,10 +260,10 @@ function SQL_QUERY_ESC($qstring, $data, $file, $line, $run=true, $strip=true) {
        //* DEBUG: */ fclose($fp);
 
        // Run the code
-       @eval($eval);
+       eval($eval);
 
        // Was the eval() command fine?
-       if (empty($query)) {
+       if ($query == "failed") {
                // Something went wrong?
                print "eval=".htmlentities($eval)."<pre>";
                debug_print_backtrace();
@@ -269,12 +278,16 @@ function SQL_QUERY_ESC($qstring, $data, $file, $line, $run=true, $strip=true) {
                return $query;
        }
 }
+
 // Get ID from last INSERT command
-function SQL_INSERTID() {
-       return @mysql_insert_id();
+function SQL_INSERTID () {
+       global $link;
+       if (!is_resource($link)) return false;
+       return mysql_insert_id();
 }
+
 // Escape a string for the database
-function SQL_ESCAPE($str, $secureString=true,$strip=true) {
+function SQL_ESCAPE ($str, $secureString=true,$strip=true) {
        global $link;
 
        // Secure string first? (which is the default behaviour!)
@@ -309,9 +322,15 @@ function SQL_RESULT_FROM_ARRAY ($table, $columns, $idRow, $id, $F, $L) {
        return SQL_QUERY_ESC($SQL, array(bigintval($id)), $F, $L);
 }
 // ALTER TABLE wrapper function
-function SQL_ALTER_TABLE($sql, $F, $L) {
-       // Shall we add?
-       if (eregi("ADD", $sql) > 0) {
+function SQL_ALTER_TABLE ($sql, $F, $L) {
+       // This is the default result...
+       $result = false;
+
+       // Determine index/fulltext/unique word
+       $noIndex = ((eregi("INDEX", $sql) == false) && (eregi("FULLTEXT", $sql) == false) && (eregi("UNIQUE", $sql) == false);
+
+       // Shall we add/drop?
+       if (((eregi("ADD", $sql) > 0) || (eregi("DROP", $sql) > 0)) && ($noIndex)) {
                // Extract table name
                $tableArray = explode(" ", $sql);
                $tableName = str_replace("`", "", $tableArray[2]);
@@ -323,15 +342,18 @@ function SQL_ALTER_TABLE($sql, $F, $L) {
                $result = SQL_QUERY_ESC("SHOW COLUMNS FROM %s LIKE '%s'",
                        array($tableName, $columnName), $F, $L);
 
-               // Do we have no entry?
-               if (SQL_NUMROWS($result) == 0) {
+               // Do we have no entry on ADD or an entry on DROP?
+               if (((SQL_NUMROWS($result) == 0) && (eregi("ADD", $sql) > 0)) || ((SQL_NUMROWS($result) == 1) && (eregi("DROP", $sql) > 0))) {
                        // Do the query
-                       return SQL_QUERY($sql, $F, $L, false);
+                       $result = SQL_QUERY($sql, $F, $L, false);
                } // END - if
        } else {
                // Send it to the SQL_QUERY() function
-               return SQL_QUERY($sql, $F, $L, false);
+               $result = SQL_QUERY($sql, $F, $L, false);
        }
+
+       // Return result
+       return $result;
 }
 //
 ?>