0 ) ); } // Generates an updating SQL query from given array function getUpdateSqlFromArray ($array, $tableName, $whereColumn, $whereData, $excludedFields, $multiDimId = NULL) { // Begin SQL query $SQL = 'UPDATE `{?_MYSQL_PREFIX?}_' . $tableName . '` SET '; // Insert all data foreach ($array as $entry => $value) { // Skip login/id entry if (in_array($entry, $excludedFields)) { continue; } // END - if // Do we have a non-string (e.g. number, NULL, NOW() 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) == '`')) { // No need for ticks (') $SQL .= '`' . $entry . '`=' . $value . ', '; } else { // Strings need ticks (') around them $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) == '`')) { // No need for ticks (') $SQL .= '`' . $entry . '`=' . $value[$multiDimId] . ', '; } else { // Strings need ticks (') around them $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'; // Return SQL query return $SQL; } // [EOF] ?>