Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bem preciso criar uma função de delete que execute em todas as tabelas do meu banco, para não ficar criando uma pra cada tabela do banco o começo eu tenho tudo, mas apresenta um erro
Começa assim no meu painel.php:
<a href="#" id="btn_excluir" data-id="<?php echo $adm->id; ?>" data-type="administrador"><img alt="DELETAR" src="images/delet.fw.png" width="30" height="32" /></a>
//data-id e data-type são encapsulados no jquery
logo após vem o jquery no meu painel.js:
//BTN EXCLUIR
$('.table').on('click', '#btn_excluir', function(){
//encapsulamento do data-id
var id = $(this).attr('data-id');
//encapsulamento do data-type
var table = $(this).attr('data-type');
if(confirm('Deseja realmente excluir?')){
//chama o controlle.php onde está a função de delete e informa os campos table e id
$.post('ajax/controller.php', {acao: 'excluir', type: table, id: id}, function(retorno){
if(retorno === 'deletou'){
alert('Deletado com sucesso');
listarAdmin('ajax/painel.php', 'listar_admin', true);
}else{
console.log(retorno);
alert('Erro na hora de deletar');
}
});
}else{
return false;
}
});
Agora minha função no **controller.php**:
case 'excluir':
$id = filter_input(INPUT_POST, 'id', FILTER_SANITIZE_NUMBER_INT);
$table = filter_input(INPUT_POST, 'type', FILTER_SANITIZE_STRING);
// FUNÇÃO CHAMADA NO CRUD.PHP
if (delete($table,$id)):
echo "deletou";
endif;
break;
Agora vamos pra função que está no **crud.php**:
function delete($table,$id){
$pdo = conecta();
try{
$delete = $pdo->prepare("DELETE FROM ? WHERE id = ?");
$delete->bindValue(1,$table, PDO::PARAM_STR);
$delete->bindValue(2,$id, PDO::PARAM_INT);
$delete->execute();
if($delete->rowCount() == 1):
return TRUE;
else:
return FALSE;
endif;
}catch(PDOException $e){
echo $e->getMessage();
}
}
Como vocês podem ver eu coloquei um console.log(retorno) e acontece o seguinte não me deleta o campo e retorna a seguinte msg a qual já pesquisei e nada do que eu achei me foi util:
***LEMBRANDO QUE SIM, O MEU BANCO DE DADOS TA COM O NOME CERTO, A FUNÇÃO FUNCIONAVA PERFEITAMENTE ATÉ EU QUERER INSERIR O $TABLE PARA ELA FUNCIONAR PARA VARIAS TABELAS E SIM A TABELA É A MESMA***
>
Citar
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''administrador' WHERE id = '11'' at line 1
Carregando comentários...