mysql_replace()
2009-10-15 14:26:55
2009-10-15 14:22:44
Autor: Sony Santos
https://gigawiki.com/sony/mysql-replace
Permalink: https://gigawiki.com/605
área = ti; arquivo = mysql.inc; categ = função; dependências = mysql.inc; linguagem = php; obs = não testado
# $n_primary = nº de chaves primárias
function mysql_replace($tabela, $array_campos_valores, $escapa = false, $n_primary = 1) {
  # escapa
  if ($escapa) $array_campos_valores = array_map('sql', $array_campos_valores);
  
  # monta a query
  $query = "insert into $tabela (" . implode(', ', array_keys($array_campos_valores)) .
    ") values ('" . implode("', '", $array_campos_valores) . "') on duplicate key update ";
  
  # monta update
  $up = array();
  foreach($array_campos_valores as $campo => $valor) {
    if ($n_primary--) continue;
    $up[] = "$campo = '$valor'";
  }
  
  # complementa a query
  $query .= implode(', ', $up);
  
  # executa a query
  $ok = execsql($query);
  
  # retorna o last_insert_id
  if (!$ok) return false;
  return mysql_insert_id();
}
blog comments powered by Disqus
Login:
Senha:
Para logar, você precisa ter o Javascript habilitado.