Olá! Meu nome é Mário e este é o segundo artigo que escrevo para o ActiveDelphi.com.br. Neste, mostrarei como enviar informações para um banco de dados Mysql na Internet, através do PHP, a partir de uma aplicação feita em Delphi, sem se conectar diretamente ao MySQL
1- Deve-se ter um banco de dados na Internet (o meu é gratuito, registrado em www.freetzi.com).
2- Criar uma base de dados com os campos que você deseja cadastrar. No meu caso, criei uma tabela com os campos ID e NOME, onde ID é auto-numérico e o campo NOME é chave primária (apenas para fins didáticos).
3- Criar uma conexão com o banco de dados: eu usei um script em
PHP que fica no servidor web. O chamei de conex.php, e seu conteúdo ficou assim:
<?php
$conex = mysql_connect("servidor", "usuário", "senha") or die ("falha na conexão");
mysql_select_db("banco de dados", $conex) or die ("erro no banco de dados");
?>
4- Criar um script em PHP que faça a inserção dos dados no banco de dados, que também deve ficar no servidor. No meu caso, criei um arquivo chamado de add.php, que ficou assim:
<?php require_once("conex.php") ?>
<?php
$nome = $_GET['nome'];
//repare que estou usando GET ao invés de POST.
$linha = mysql_query("insert into cadastro (nome) values ('$nome')")
or die ("'$nome' já cadastrado");
echo("Cadastro realizado com êxito");
?>
5- Agora no Delphi, coloque um componente TidHTTP, um TButton, um TEdit e um TLabel;
No button, escreva:
Label1.Caption := idHTTP1.get('http://seu_server/add.php?nome='+edit1.text);
Rode a aplicação e veja que, ao clicar no botão, o nome digitado no Edit será inserido na sua base MySQL na web, através do script PHP e o retorno será exibido no Label!
Porém, como fizemos o banco definindo o campo NOME como PK, podem retornar duas mensagens diferentes, que são:
- Se o nome enviado já existir no banco de dados, vai retornar no caption do label1: nome+' já
cadastrado'
- Se o nome enviado não existir no banco de dados, vai retornar no caption do label1: 'Cadastro realizado com êxito.'
E é isso aí! Espero ter ajudado!
Por: Mário (mariorgrossi)
Contato: mariorochagrossi@ig.com.br
|