Pplware

Inserção de dados em MySQL com PHP + AJAX

Com a colaboração de Fernando Carvalho

A inserção de dados numa base de dados é uma tarefa relativamente simples para quem desenvolve soluções para a internet. Existem vários métodos para o efectuar, sendo talvez o mais comum a simples conexão a um ficheiro onde se encontra o código que faz toda a função de gravar na base dados. O único senão deste método é que existe a necessidade de um refreh na página, além de, no caso de não utilizar url’s amigáveis, irá aparecer o caminho e o nome do ficheiro que tem a função referida (www.dominio.pt/grava.php).

O facto de poder aparecer o ficheiro onde está o ficheiro que tem a função gravar, pode por em causa todo o sistema e facilitar possíveis ataques.

Para evitar isso, além de poder utilizar url’s amigáveis, pode utilizar AJAX (claro que só estas duas “soluções”, não garantem segurança da base de dados ou da solução web).

O que é o AJAX?

Muito resumidamente Ajax é uma sigla para Asynchronous JavaScript and XML, que utiliza scripts client-side, fazendo com que se possa “chamar” dados sem necessidade de reload / refresh da página.

Com este pequeno tutorial irão verificar que é extremamente simples efectuar uma inserção de registos na base de dados utilizando PHP e AJAX.

1º Base de dados

CREATE DATABASE phpajax

2º Tabela: dados

CREATE TABLE dados( id INT(10) NOT NULL AUTO_INCREMENT PRIMARY KEY, campo1bd VARCHAR(100) NULL, campo2bd VARCHAR(100) NULL );

3º Ficheiro index.php Será neste ficheiro que teremos o formulário para registo.

Inserção de dados em MySQL com PHP + AJAX
Preencha o seguinte formulário:


* É necessário incluir a biblioteca JQuery.

4º Ficheiro grava.php onde estará a query de inserção de dados

//Conexão à base de dados mysql_connect(“localhost”, “user”, “123”) or die(mysql_error()); mysql_select_db(“phpajax”) or die(mysql_error());

//recebe os parâmetros

$campo1 = $_REQUEST[‘campo1’]; $campo2 = $_REQUEST[‘campo2’];

try { //insere na BD $sql = “INSERT INTO dados (campo1bd, campo2bd) VALUES(‘”.trim($campo1).”‘,'”.trim($campo2).”‘)”; $result = mysql_query($sql) or die(mysql_error());

//retorna 1 para no sucesso do ajax saber que foi com inserido sucesso echo “1”; } catch (Exception $ex) { //retorna 0 para no sucesso do ajax saber que foi um erro echo “0”; }

5º Inserimos a função em Javascript (AJAX) para gravar

function inserir registo() {

//dados a enviar, vai buscar os valores dos campos que queremos enviar para a BD var dadosajax = { ‘campo1’ : $(“#campo1”).val(), ‘campo2’ : $(“#campo2”).val() }; pageurl = ‘grava.php’; //para consultar mais opcoes possiveis numa chamada ajax //http://api.jquery.com/jQuery.ajax/ $.ajax({

//url da pagina url: pageurl, //parametros a passar data: dadosajax, //tipo: POST ou GET type: ‘POST’, //cache cache: false, //se ocorrer um erro na chamada ajax, retorna este alerta //possiveis erros: pagina nao existe, erro de codigo na pagina, falha de comunicacao/internet, etc etc etc error: function(){ alert(‘Erro: Inserir Registo!!’); }, //retorna o resultado da pagina para onde enviamos os dados success: function(result) { //se foi inserido com sucesso if($.trim(result) == ‘1’) { alert(“O seu registo foi inserido com sucesso!”); } //se foi um erro else { alert(“Ocorreu um erro ao inserir o seu registo!”); }

} }); }

6º Por fim, basta chamar a função de gravar (javascript) no evento “onclick”.

O código final / completo do ficheiro index será:

Inserção de dados em MySQL com PHP + AJAX
Preencha o seguinte formulário:


E desta forma simples podemos inserir dados na base de dados sem necessidade de refresh / reload de qualquer página em PHP.

Para mim é um método bastante interessante e para vocês? O que preferem?

Nota importante: Este exemplo serve apenas para exemplificar a forma de inserir dados através de AJAX + PHP. No exemplo não estão implementados mecanismos de segurança e validação que obviamente serão necessários num projecto final.


Download: Exemplo Completo

Exit mobile version