/** * Returns an sql REPLACE query * * @access public * @static * * @param String $table the table * @param Mixed $values the values to be changed as an associative array as a string * @param String $smartQuotes wrap Strings in quotes? * @param String $addon inserted at the end * @param String $statementAddon inserted after the REPLACE keyword * * @returns String sql query */ function replace($table, $values, $smartQuotes = true, $addon = '', $statementAddon = '') { $str = 'REPLACE %s INTO %s %s VALUES (%s) %s'; $cols = ''; if (@is_array($values)) { $vals = ''; foreach ($values as $val) { if ($smartQuotes) { if (is_int($val)) { $vals .= "{$val}, "; } else { $vals .= "'{$val}', "; } } else { $vals .= "{$val}, "; } } $vals = substr($vals, 0, -2); if (!QueryHelper::_onlyNumericKeys($values)) { $cols = '(' . implode(', ', array_keys($values)) . ')'; } } else { $vals = $values; } $query = sprintf($str, $statementAddon, $table, $cols, $vals, $addon); return $query; }