Quantas vezes você não deu aquela enroscadinha básica a té descobrir que na query tinha uma coluna escrita errada, ou falto algum campo e por ai vai...
Com esta função seus problemas acabaram de verdade pois basta passar o nome da tabela e as colunas e valores orientados em um array
Vamos pensar em alimentar a tabela produtos como os campos nome e valor
jf_insert('tabela', array('nome' => 'produto a', 'valor' => '30.00'));
Ok vamos pensar ainda em facilitar mais a sua vida, imagine que você tenha esses dados em um formulario algo assim:
<form method="post">
<div>
<label>Nome</label>
<input type="text" name="nome" />
</div>
<div>
<label>Valor</label>
<input type="text" name="valor" />
</div>
</form>
Quer saber como vai ficar para fazer esses campos adicionarem no banco de dados...
jf_insert('tabela', $_POST);
E ai gostou ou quer mais?
Sim ela retorna algo... retorna false pare erros e a query em sucesso
Quer saber qual foi a chave primaria adicionada é só dar um:
echo $jf_ultimo_id
Segue a função... mais uma do pacote jf.funcoes
function jf_insert($tabela, $dados){
/*
//Descrição
jf_insert(string $tabela, array $dados)
monta e execulta uma query de insert em mysql
// Parametros
$table
nome da tabela que estará sendo feito o insert
$dados
Dados que serão inseridos na tabela em forma de array
$dados = array(
'coluna' => 'dado',
'coluna2' => 'dado2'
);
// Retorno
retorna a query montada para conferência, porem ela será execultada
retorna também a variável $jf_ultimo_id que é o valor auto-increment retornado neste insert
*/
$valores = '';
$colunas = '';
foreach($dados as $chaves => $valor){
$valor = ($valor != 'NULL' ? '"'.addslashes($valor).'"' : 'NULL');
$valores .= (empty($valores)? '' : ',').$valor;
$colunas .= (empty($colunas)? '' : ', ').$chaves;
}
$executa = "INSERT INTO $tabela ($colunas) values ($valores)";
if(mysql_query($executa) != false){
global $ml_ultmo_id;
global $jf_ultimo_id;
$jf_ultimo_id = mysql_insert_id();
$ml_ultmo_id = $jf_ultimo_id;
} else{
echo mysql_error();
$executa = false;
}
return $executa;
}
Depois eu posto mais funções do pacote é só ficar ligado no tópico jf.funcoes
Até mais