Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

osk

Insert dinamico mysql+pdo

Recommended Posts

Boa noite gente,

Estou tentando fazer um insert dinâmico para qualquer formulário. Mas não esta dando certo.

 

Este é o acoes.php

$inputs = $_POST['inputs'];
	$fields = implode(',', array_keys($inputs));
	$values = ':' . str_replace(',', ',:', $fields);
	$stmt = $pdo->prepare("INSERT INTO {$_GET['tabela']} ({$fields}) values({$values})");
	$stmt->execute($inputs);

 

Tenho jquery que envia via post os inputs em array, porém o value tabela é via GET.

Quando executo da um erro:

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: parameter was not defined in /home2/sabecomp/public_html/admin/includes/acoes.php on line 14

Minha array tem:

Array ( [0] => Array ( [name] => categoria [value] => Lavadoras de Alta Pressão ) )

 

Se alguém puder me dizer o que está errado eu agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tentei assim Adson mas o erro é o mesmo, tenho a impressão que ocorre por que o inicio da array é 0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui fazer, por enquanto está dando certo, vou agora vou tentar fazer um SELECT para ver se já existe o registro.

 

$inputs = $_POST['inputs'];
$fields = array();
$values = array();	
	
for ($i=0; $i < sizeof($inputs); $i++) {
	$fields[] = $inputs[$i][name];
	$values[] = $inputs[$i][value];
}	

$array = array_combine($fields,$values);
$key = implode(',', array_keys($array));
$val = ':' . str_replace(',', ',:', $key);	
	
	
$insert = $pdo->prepare("INSERT INTO {$_GET['tabela']} ({$key}) VALUES({$val})");
$insert->execute($array);
	
if($insert->rowCount() == 0):
	echo $insert->errorInfo();
else:
	echo "Categoria cadastrada com sucesso.";
endif;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.