PHP
Criando uma Função Insert Genérica

No artigo de hoje vamos ensinar você a dar uma otimizada em seus INSERTS “da vida” com uma função genérica na qual você escreve o SQL apenas uma vez no sistema.
Função INSERT
Bom, de modo geral quando criamos nossas classes à ideia é sempre otimizar, abstrair ao máximo o sistema certo! Então não será muito trivial a cada INSERT que necessitarmos, repetirmos todo SQL, porque isso seria uma perda de tempo.
De modo geral a cada INSERT que fazemos, executamos o seguinte:
$stmt = $this->pdo->prepare('INSERT INTO categoria(descri_cat) VALUES (‘.$descricao.’)'); $stmt->execute();
Ou de uma forma um pouco mais segura utilizando o bindValue.
$stmt = $this->pdo->prepare('INSERT INTO categoria(descri_cat) VALUES (:pdescri_cat)'); $stmt->bindValue(':pdescri_cat', $this->tituloPost, PDO::PARAM_STR); $stmt->execute();
Então agora vamos otimizar esse SQL para que possamos escrevê-lo somente uma vez em nosso sistema, e sempre reutiliza-lo para qualquer INSERT que necessitarmos.
Nossa função ficará assim:
public function insert( array $dados, $tabela ){ $campos = implode(", ", array_keys($dados) ); $valores = "'" . implode( "', '", array_values($dados) ) . "'"; $stmt = $this->pdo->prepare( "INSERT INTO {$tabela} ({$campos}) VALUES ({$valores})" ); if($stmt->execute()){ $this->idPessoa = $this->pdo->lastInsertId(); return true; }else{ $this->erro = "<br/>Erro ao Cadastrar {$tabela}!!!"; return false; } }
Passamos como Parâmetro para nossa Função, o nome da nossa tabela que queremos realizar o INSERT e o array contendo os dados a ser inseridos na tabela.
Importante lembrar que as KEYS de nosso array tem que ter o mesmo nome do campo de nossa tabela.
Vamos supor que nossa tabela user tenha os seguintes campos: nome, idade e telefone. Nosso array tem que ficar da seguinte forma:
$dados[‘nome’] = “Leonardo”; $dados[‘idade’] = 23; $dados[‘telefone’] = (99)9999-9999;
Sendo assim, é só passarmos para nossa função INSERT o array com os dados e o nome da tabela.
Insert($dados, $nome_da_sua_tabela);
Esse é um modo bem simples de realizar esse procedimento, porém há muitos outros bem melhores e mais seguros, mas tudo tem um começo e fazendo esse procedimento simples, com certeza no próximo artigo sobre como fazer o INSERT fazendo uso dos BINDS, sua aplicação ficará com as informações mais coesas, porque é possível tratar ela como strings ou numeral, aguardem!
Duvidas cristicas ou sugestões comentem abaixo que teremos o prazer em tentar ajuda-los. =)
Gigasystems Login:
Informe seu e-mail abaixo para continuar!
XVeja Também:
Artigos Relacionados a categoria: PHP
Cotações para compra e venda de Moedas estrangeiras com PHP
27 July de 2016
Como instalar certificado SSL (https) no WampServer
30 March de 2016
Gerenciador de dependências Composer
14 January de 2016
Erro ao acessar um arquivo externo com o comando file_get_content
04 November de 2015
Olá, deixe seu comentário para Criando uma Função Insert Genérica
Wemerson Bernardo
Podes me ajudar? Gostaria que estre trecho também fosse automatizado:
$this->idPessoa = $this->pdo->lastInsertId();
Ou seja, ao invés de passar idPessoa, passasse uma variável, assim esta função serviria para cadastrar qualquer tipo de dados e qualquer tabela.