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
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
Baixando anexo do email no servidor com IMAP e PHP
27 August 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.