]> git.mxchange.org Git - mailer.git/blobdiff - inc/sql-functions.php
Fixed bug 'sprintf() too few arguments':
[mailer.git] / inc / sql-functions.php
index 052c6cdb65fea7944ae9edeb3df2a1fa74f4b855..8e64bc0df012e5c1d258e29f92badb7f0fae0acd 100644 (file)
@@ -69,7 +69,7 @@ function getSqls () {
 
 // Add an SQL to the list
 function addSql ($sql) {
-       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("sql=%s, count=%d", $sql, countSqls()));
+       //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('sql=%s, count=%d', $sql, countSqls()));
        array_push($GLOBALS['sqls']['generic'], $sql);
 }
 
@@ -106,7 +106,7 @@ function countSqls () {
        if (isSqlsInitialized()) {
                // Then count it
                $count = count($GLOBALS['sqls']);
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("count=%d", $count));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('count=%d', $count));
        } // END - if
 
        // Return it
@@ -114,7 +114,7 @@ function countSqls () {
 }
 
 // Checks whether the SQLs array is filled
-function isSqlsValid () {
+function ifSqlsRegistered () {
        //* DEBUG: */ debugOutput(__FUNCTION__ . ':' . intval(isSqlsInitialized()) . '/' . countSqls() . '/' . getCurrentExtensionName());
        return (
                (
@@ -222,10 +222,10 @@ function getInsertSqlFromArray ($array, $tableName) {
 }
 
 // Function to unset __is_sql_link_up
-function unsetSqlLinkUp ($F, $L) {
+function unsetSqlLinkUp ($file, $line) {
        // Unset it
-       //* DEBUG: */ logDebugMessage($F, $L, __FUNCTION__ . ': Called!');
-       setSqlLink($F, $L, NULL);
+       //* DEBUG: */ logDebugMessage($file, $line, __FUNCTION__ . ': Called!');
+       setSqlLink($file, $line, NULL);
 }
 
 // Initializes the SQL link by bringing it up if set
@@ -233,9 +233,6 @@ function initSqlLink () {
        // "Unset" the link
        unsetSqlLinkUp(__FUNCTION__, __LINE__);
 
-       // Do this only if link is down
-       assert(!isSqlLinkUp());
-
        // Is the configuration data set?
        if ((!empty($GLOBALS['mysql']['host'])) && (!empty($GLOBALS['mysql']['login'])) && (!empty($GLOBALS['mysql']['dbase']))) {
                // Remove cache
@@ -281,7 +278,7 @@ function importSqlDump ($path, $dumpName, $sqlPool) {
        // Is the file readable?
        if (!isFileReadable($FQFN)) {
                // Not found, which is bad
-               reportBug(__FUNCTION__, __LINE__, sprintf("SQL dump %s/%s.sql is not readable.", $path, $dumpName));
+               reportBug(__FUNCTION__, __LINE__, sprintf('SQL dump %s/%s.sql is not readable.', $path, $dumpName));
        } // END - if
 
        // Then read it
@@ -292,11 +289,11 @@ function importSqlDump ($path, $dumpName, $sqlPool) {
 }
 
 // SQL string escaping
-function sqlQueryEscaped ($sqlString, $data, $F, $L, $run = TRUE, $strip = TRUE, $secure = TRUE) {
+function sqlQueryEscaped ($sqlString, $data, $file, $line, $run = TRUE, $strip = TRUE, $secure = TRUE) {
        // Link is there?
        if ((!isSqlLinkUp()) || (!is_array($data))) {
                // Link is down or data is not an array
-               //* DEBUG: */ logDebugMessage($F, $L, 'isSqlLinkUp()=' . intval(isSqlLinkUp()) . ',data[]=' . gettype($data) . ',sqlString=' . $sqlString . ': ABORTING!');
+               //* DEBUG: */ logDebugMessage($file, $line, 'isSqlLinkUp()=' . intval(isSqlLinkUp()) . ',data[]=' . gettype($data) . ',sqlString=' . $sqlString . ': ABORTING!');
                return FALSE;
        } // END - if
 
@@ -315,7 +312,7 @@ function sqlQueryEscaped ($sqlString, $data, $F, $L, $run = TRUE, $strip = TRUE,
 
        if ($run === TRUE) {
                // Run SQL query (default)
-               return sqlQuery($query, $F, $L);
+               return sqlQuery($query, $file, $line);
        } else {
                // Return secured string
                return $query;
@@ -323,14 +320,14 @@ function sqlQueryEscaped ($sqlString, $data, $F, $L, $run = TRUE, $strip = TRUE,
 }
 
 // SELECT query string from table, columns and so on... ;-)
-function getSqlResultFromArray ($table, $columns, $idRow, $id, $F, $L) {
+function getSqlResultFromArray ($table, $columns, $idRow, $id, $file, $line) {
        // Is columns an array?
        if (!is_array($columns)) {
                // No array
-               reportBug(__FUNCTION__, __LINE__, sprintf("columns is not an array. %s != array, file=%s, line=%s",
+               reportBug(__FUNCTION__, __LINE__, sprintf('columns is not an array. %s != array, file=%s, line=%s',
                        gettype($columns),
-                       basename($F),
-                       $L
+                       basename($file),
+                       $line
                ));
 
                // Abort here with 'false'
@@ -358,12 +355,12 @@ function getSqlResultFromArray ($table, $columns, $idRow, $id, $F, $L) {
                        $table,
                        $idRow,
                        bigintval($id),
-               ), $F, $L
+               ), $file, $line
        );
 }
 
 // ALTER TABLE wrapper function
-function sqlQueryAlterTable ($sql, $F, $L, $enableCodes = TRUE) {
+function sqlQueryAlterTable ($sql, $file, $line, $enableCodes = TRUE) {
        // Abort if link is down
        if (!isSqlLinkUp()) return FALSE;
 
@@ -411,7 +408,7 @@ function sqlQueryAlterTable ($sql, $F, $L, $enableCodes = TRUE) {
                        if (((!ifSqlTableColumnExists($tableName, $columnName)) && (isInString('ADD', $sql))) || ((ifSqlTableColumnExists($tableName, $columnName)) && ((isInString('DROP', $sql)) || ((isInString('CHANGE', $sql)) && ($idx == 4) && ((!ifSqlTableColumnExists($tableName, $tableArray[5])) || ($columnName == $tableArray[5])))))) {
                                // Do the query
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Executing: ' . $sql);
-                               $result = sqlQuery($sql, $F, $L, FALSE);
+                               $result = sqlQuery($sql, $file, $line, FALSE);
 
                                // Skip further attempt(s)
                                break;
@@ -430,7 +427,7 @@ function sqlQueryAlterTable ($sql, $F, $L, $enableCodes = TRUE) {
                } // END - foreach
        } elseif ((getTableType() == 'InnoDB') && (isInString('FULLTEXT', $sql))) {
                // Skip this query silently because InnoDB does not understand fulltext indexes
-               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf("Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s", $sql, $tableName, intval((is_bool($result)) ? 0 : ifSqlTableColumnExists($columnName)), $F, $L));
+               //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, sprintf('Skipped FULLTEXT: sql=%s,tableName=%s,hasZeroNums=%d,file=%s,line=%s', $sql, $tableName, intval((is_bool($result)) ? 0 : ifSqlTableColumnExists($columnName)), $file, $line));
        } elseif ($isAlterIndex === TRUE) {
                // And column name as well without backticks
                $keyName = str_replace('`', '', $tableArray[5]);
@@ -461,11 +458,11 @@ function sqlQueryAlterTable ($sql, $F, $L, $enableCodes = TRUE) {
                if (($tableArray[3] == 'ADD') && (!ifSqlTableIndexExist($tableName, $keyName))) {
                        // Send it to the sqlQuery() function to add it
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sql=' . $sql . ' - ADDING!');
-                       $result = sqlQuery($sql, $F, $L, $enableCodes);
+                       $result = sqlQuery($sql, $file, $line, $enableCodes);
                } elseif (($tableArray[3] == 'DROP') && (ifSqlTableIndexExist($tableName, $keyName))) {
                        // Send it to the sqlQuery() function to drop it
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'sql=' . $sql . ' - DROPPING!');
-                       $result = sqlQuery($sql, $F, $L, $enableCodes);
+                       $result = sqlQuery($sql, $file, $line, $enableCodes);
                } else {
                        // Not executed
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Not executed: ' . $sql);
@@ -473,7 +470,7 @@ function sqlQueryAlterTable ($sql, $F, $L, $enableCodes = TRUE) {
        } else {
                // Other ALTER TABLE query
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, $sql);
-               $result = sqlQuery($sql, $F, $L, $enableCodes);
+               $result = sqlQuery($sql, $file, $line, $enableCodes);
        }
 
        // Return result
@@ -498,16 +495,15 @@ function getSqlLink () {
 }
 
 // Setter for link
-function setSqlLink ($F, $L, $link) {
-       //* DEBUG: */ logDebugMessage($F . ':' . __FUNCTION__, $L . ':' . __LINE__, 'link[]=' . gettype($link) . ' - ENTERED!');
+// Do *not* add debug lines here. This will cause and endless loop
+function setSqlLink ($file, $line, $link) {
        // Is this a resource or null?
-       if ((ifFatalErrorsDetected()) && (isInstallationPhase())) {
+       if ((ifFatalErrorsDetected()) && (isInstaller())) {
                // This may happen in installation phase
-               //* DEBUG: */ logDebugMessage($F . ':' . __FUNCTION__, $L . ':' . __LINE__, 'Some fatal errors detected in installation phase.');
                return;
        } elseif ((!is_resource($link)) && (!is_null($link))) {
                // This should never happen!
-               reportBug($F . ':' . __FUNCTION__, $L . ':' . __LINE__, sprintf("Type of link is not resource or null, type=%s", gettype($link)));
+               reportBug($file . ':' . __FUNCTION__, $line . ':' . __LINE__, sprintf('Type of link is not resource or null, type=%s', gettype($link)));
        } // END - if
 
        // Set it
@@ -515,7 +511,6 @@ function setSqlLink ($F, $L, $link) {
 
        // Re-init cache
        $GLOBALS['__is_sql_link_up'] = is_resource($link);
-       //* DEBUG: */ logDebugMessage($F . ':' . __FUNCTION__, $L . ':' . __LINE__, '__is_sql_link_up=' . intval($GLOBALS['__is_sql_link_up']) . ' - EXIT!');
 }
 
 // Checks if the link is up
@@ -523,7 +518,7 @@ function isSqlLinkUp () {
        // Is there cached this?
        if (!isset($GLOBALS['__is_sql_link_up'])) {
                // Something bad went wrong
-               reportBug(__FUNCTION__, __LINE__, 'Called before SQL_SET_LINK() was called!');
+               reportBug(__FUNCTION__, __LINE__, 'Called before setSqlLink() was called!');
        } // END - if
 
        // Return the result
@@ -592,7 +587,7 @@ function ifSqlTableExists ($tableName) {
                // Is a link there?
                if (!is_resource($result)) {
                        // Is installation phase?
-                       if (isInstallationPhase()) {
+                       if (isInstaller()) {
                                // Then silently abort here
                                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'result[]=' . gettype($result) . ',isLinkUp=' . intval(isSqlLinkUp()) . ',tableName=' . $tableName . ' - Returning FALSE ...');
                                return FALSE;
@@ -624,7 +619,7 @@ function ifSqlTableColumnExists ($tableName, $columnName, $forceFound = FALSE) {
        if (!ifSqlTableExists($tableName)) {
                // Then abort here
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Table ' . $tableName . ' does not exist, columnName=' . $columnName . ',forceFound=' . intval($forceFound));
-               return (($forceFound === FALSE) && (isInstallationPhase()));
+               return (($forceFound === FALSE) && (isInstaller()));
        } // END - if
 
        // Get column information
@@ -637,7 +632,7 @@ function ifSqlTableColumnExists ($tableName, $columnName, $forceFound = FALSE) {
        // Is a link there?
        if (!is_resource($result)) {
                // Is installation phase?
-               if (isInstallationPhase()) {
+               if (isInstaller()) {
                        // Then silently abort here
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'result[]=' . gettype($result) . ',isLinkUp=' . intval(isSqlLinkUp()) . ',tableName=' . $tableName . ',columnName=' . $columnName . ' - Returning FALSE ...');
                        return $forceFound;
@@ -670,7 +665,7 @@ function ifSqlTableIndexExist ($tableName, $keyName, $forceFound = FALSE) {
        if (!ifSqlTableExists($tableName)) {
                // Then abort here
                //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'Table ' . $tableName . ' does not exist, keyName=' . $keyName . ',forceFound=' . intval($forceFound));
-               return (($forceFound === FALSE) && (isInstallationPhase()));
+               return (($forceFound === FALSE) && (isInstaller()));
        } // END - if
 
        // Show indexes
@@ -679,7 +674,7 @@ function ifSqlTableIndexExist ($tableName, $keyName, $forceFound = FALSE) {
        // Is a link there?
        if (!is_resource($result)) {
                // Is installation phase?
-               if (isInstallationPhase()) {
+               if (isInstaller()) {
                        // Then silently abort here
                        //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'result[]=' . gettype($result) . ',isLinkUp=' . intval(isSqlLinkUp()) . ',tableName=' . $tableName . ',keyName=' . $keyName . ' - Returning FALSE ...');
                        return $forceFound;
@@ -757,5 +752,30 @@ function getArrayFromSupportedSqlEngines ($requestedEngine = 'ALL') {
        return $engines;
 }
 
+// "Getter" for result from given table and field/type LIKEs
+function sqlGetResultFromLikeColumnsType ($tableName, $field, $type) {
+       // The table should be there
+       assert(ifSqlTableExists($tableName));
+
+       // Default no field set
+       $fieldSql = '';
+       if (!empty($field)) {
+               // Then use it
+               $fieldSql = "`Field` LIKE '" . $field . "' AND";
+       } // END - if
+
+       // Show them
+       return sqlQueryEscaped("SHOW COLUMNS FROM
+       `{?_MYSQL_PREFIX?}_%s`
+WHERE
+       " . $fieldSql . "
+       `Type` LIKE '%s%%'",
+               array(
+                       $tableName,
+                       $type
+               ), __FUNCTION__, __LINE__
+       );
+}
+
 // [EOF]
 ?>