Artigo: Criando uma Função Insert Genérica - Gigasystems

PHP

Em por

criando-uma-funcao-insert-generica
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.

criando uma funcao insert generica

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. =)

Olá, deixe seu comentário para Criando uma Função Insert Genérica

Já temos 1 comentário(s). DEIXE O SEU :)
Wemerson Bernardo

Wemerson Bernardo

Opa. Parabéns.
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.
★★★★★DIA 25.02.20 11h46RESPONDER
Wemerson Bernardo
Enviando Comentário Fechar :/
Enviando Comentário Fechar :/

Veja Também:

Artigos Relacionados a categoria: PHP

Soluções

...CURTIU? AINDA NÃO VIU NOSSO PORTFÓLIO?


Se ainda não viu nosso Portfólio e quer conhecer um pouco mais... aproveite, veja agora mesmo nossos Cases de Sucesso e tenha seu site nos padrões atuais preparado para maioria dos dispositivos e navegadores.

Usamos cookies para manter o site seguro, registrar e personalizar sua navegação. Para mais detalhes sobre essa atividade, acesse nossa Politica de Privacidade

Entendi