X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=inc%2Fsql-functions.php;h=fae901b2733c39f2ef10059e8474e31e79648685;hb=262c3e87d0a80ec8a4435b2564d4b666fd329bf6;hp=5ec4bee18cf0ce1fdfc51ba08946e48dc4850b0a;hpb=e3d32ba51d2faa9d771ba684520a7cfa87fbf577;p=mailer.git diff --git a/inc/sql-functions.php b/inc/sql-functions.php index 5ec4bee18c..fae901b273 100644 --- a/inc/sql-functions.php +++ b/inc/sql-functions.php @@ -136,43 +136,49 @@ function getUpdateSqlFromArray ($array, $tableName, $whereColumn, $whereData, $e continue; } // END - if - // Do we have a non-string (e.g. number, NULL, NOW() or back-tick at the beginning? + // Do we have a non-string (e.g. number, NULL, SQL function or back-tick at the beginning? if (is_null($multiDimId)) { // Handle one-dimensional data if (is_null($value)) { // NULL detected - $SQL .= '`' . $entry . '`=NULL, '; - } elseif ((bigintval($value, true, false) === $value) || ($value == 'NOW()') || (substr($value, 0, 1) == '`')) { + $SQL .= '`' . $entry . '`=NULL,'; + } elseif ((substr($value, -2, 2) == '()') || (substr($value, 0, 1) == '`')) { + // SQL function needs no ticks (') + $SQL .= '`' . $entry . '`=' . SQL_ESCAPE($value) . ','; + } elseif ('' . bigintval($value, true, false) . '' == '' . $value . '') { // No need for ticks (') - $SQL .= '`' . $entry . '`=' . $value . ', '; + $SQL .= '`' . $entry . '`=' . $value . ','; } else { // Strings need ticks (') around them - $SQL .= '`' . $entry . "`='" . SQL_ESCAPE($value) . "', "; + $SQL .= '`' . $entry . "`='" . SQL_ESCAPE($value) . "',"; } } else { // Handle multi-dimensional data if (is_null($value[$multiDimId])) { // NULL detected - $SQL .= '`' . $entry . '`=NULL, '; - } elseif ((bigintval($value[$multiDimId], true, false) === $value[$multiDimId]) || ($value[$multiDimId] == 'NOW()') || (substr($value[$multiDimId], 0, 1) == '`')) { + $SQL .= '`' . $entry . '`=NULL,'; + } elseif ((substr($value[$multiDimId], -2, 2) == '()') || (substr($value[$multiDimId], 0, 1) == '`')) { + // SQL function needs no ticks (') + $SQL .= '`' . $entry . '`=' . SQL_ESCAPE($value[$multiDimId]) . ','; + } elseif (('' . bigintval($value[$multiDimId], true, false) . '' == '' . $value[$multiDimId] . '')) { // No need for ticks (') - $SQL .= '`' . $entry . '`=' . $value[$multiDimId] . ', '; + $SQL .= '`' . $entry . '`=' . $value[$multiDimId] . ','; } else { // Strings need ticks (') around them - $SQL .= '`' . $entry . "`='" . SQL_ESCAPE($value[$multiDimId]) . "', "; + $SQL .= '`' . $entry . "`='" . SQL_ESCAPE($value[$multiDimId]) . "',"; } } } // END - foreach // Remove last 2 chars and finish query - $SQL = substr($SQL, 0, -2) . ' WHERE `' . $whereColumn . '`=' . $whereData . ' LIMIT 1'; + $SQL = substr($SQL, 0, -1) . ' WHERE `' . $whereColumn . '`=' . $whereData . ' LIMIT 1'; // Return SQL query return $SQL; } // "Getter" for an "INSERT INTO" SQL query -function getInsertSqlFromArray ($array, $tableName, $excludedFields = array('ok', 'add', 'do_edit')) { +function getInsertSqlFromArray ($array, $tableName) { // Init SQL $SQL = 'INSERT INTO `{?_MYSQL_PREFIX?}_' . $tableName . '` @@ -181,15 +187,21 @@ function getInsertSqlFromArray ($array, $tableName, $excludedFields = array('ok' ) VALUES ('; // Walk through all entries - foreach (postRequestArray() as $key=>$value) { + foreach (postRequestArray() as $key => $value) { + // Log debug message + //* NOISY-DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'tableName=' . $tableName . ',key=' . $key . ',value=' . $value); + // Add all entries if (is_null($value)) { // Add NULL $SQL .= 'NULL,'; - } elseif ((bigintval($value, true, false) == $value)) { + } elseif (substr($value, -2, 2) == '()') { + // SQL function needs no ticks (') + $SQL .= SQL_ESCAPE($value) . ','; + } elseif ('' . bigintval($value, true, false) . '' == '' . $value . '') { // Number detected, no need for ticks (') $SQL .= bigintval($value) . ','; - } elseif ('' . (float)$value . '' == $value) { + } elseif ('' . (float) $value . '' == '' . $value . '') { // Float number detected $SQL .= sprintf('%01.5f', $value); } else { @@ -199,7 +211,7 @@ function getInsertSqlFromArray ($array, $tableName, $excludedFields = array('ok' } // END - foreach // Finish SQL query - $SQL .= ')'; + $SQL = substr($SQL, 0, -1) . ')'; // Return SQL query return $SQL;