Seu Curso

  • Full Screen
  • Wide Screen
  • Narrow Screen
  • Increase font size
  • Default font size
  • Decrease font size

Usando banco de dados MySQL em linguagem C

Imprimir
Avaliação do Usuário: / 14
PiorMelhor 

Usando banco de dados MySQL em linguagem C

Vários e vários projetos podem ser feitos de forma leve e altamente eficiente usando-se Linux, banco de dados, no caso o MySQL e a poderosíssima linguagem C.

Bom, vamos partir do ponto em que você tem o seu sistema operacional Linux atualizado, com o MySQL (para instalar no Debian aqui, e no Fedora aqui) e o GCC instalado.

Vamos instalar as bibliotecas do cliente MySQL:


apt-get install libmysqlclient-dev


Crie o seguinte banco de dados (teste) e a seguinte tabela (teste) no seu MySQL:


create database teste;
use teste;
create table teste (
nome text,
 idade int);


Você pode sair ou mudar de console, vamos agora para a programação em C:


#include >stdio.h<
#include >mysql/mysql.h.h<
 
void main() {
 MYSQL conexao;
 mysql_init(&conexao);
 if(mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0)) {
 printf(“Conectado com sucesso!\n”);
 } else {
 printf(“Conexao falhou!\n”);
 }
}


Com MYSQL conexao criamos o objeto que receberá a conexão com o banco de dados.

Com mysql_init(&conexao) iniciamos as bibliotecas para uso do MySQL no programa.

Com mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0) realizamos a conexão com o servidor em localhost (127.0.0.1), com o usuário root, senha 123456 e banco de dados chamado teste (que criamos anteriormente).

Para compilar, assumindo que seu arquivo chame-se c_mysql.c, use:


gcc c_mysql.c –o c_mysql $(mysql_config –libs)


Bom, para compilar o esquema é o de sempre para o gcc só acrescentamos o $(mysql_config –libs) que retorna as diretivas de compilação para as bibliotecas do MySQL a serem adicionadas ao programa.

Executando você terá a confirmação de que a conexão foi feita com sucesso. Caso contrário verifique o endereço, usuário, senha e nome do banco de dados.

Agora vamos continuar o programa e fazer uma inserção de dados no banco de dados:


#include >stdio.h<
#include >mysql/mysql.h.h<
 
void main() {
 MYSQL conexao;
 int ret;
 mysql_init(&conexao);
 if(mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0)) {
 printf(“Conectado com sucesso!\n”);
 ret = mysql_query(&conexao,”insert into teste(nome,idade) values (‘seu curso’,10);”);
 if(ret) {
 printf(“Falha ao inserir!\n”);
 } else {
 printf(“Insercao com sucesso!\n”);
 }
 mysql_close(&conexao);
 } else {
 printf(“Conexao falhou!\n”);
 }
}


A variável ret receberá o retorno do comando mysql_query que executa a query no banco de dados.

Caso ret seja 0 a inserção falhou, caso contrário a inserção foi feita com sucesso.

O comando mysql_close fecha a conexão com o banco de dados e libera o canal de comunicação.

Para compilar é o mesmo método já mostrado acima.


gcc c_mysql.c –o c_mysql $(mysql_config –libs)


Agora vamos fazer uma consulta ao banco de dados:


#include >stdio.h<
#include >mysql/mysql.h.h<
 
void main() {
 MYSQL conexao;
 MYSQL_RES *result;
 MYSQL_ROW lin;
 MYSQL_FIELD *rs;
 int ret;
 mysql_init(&conexao);
 if(mysql_real_connect(&conexão,”127.0.0.1”,”root”,”123456”,”teste”,0,NULL,0)) {
 printf(“Conectado com sucesso!\n”);
 ret = mysql_query(&conexao,”select * from teste;”);
 if(ret) {
 printf(“Falha ao inserir!\n”);
 } else {
 printf(“Insercao com sucesso!\n”);
 result = mysql_store_result(&conexao);
 if(result) {
 rs = mysql_fetch_fields(result);
 while((lin = mysql_fetch_row(result)) != NULL) {
 printf(“%s\t%s\n”,lin[0],lin[1]);
 }
 }
 }
 mysql_close(&conexao);
 } else {
 printf(“Conexao falhou!\n”);
 }
}


Com a variável result temos o resultado da consulta. Com a variável lin teremos os registros do banco de dados e com a variável rs teremos o ResultSet da consulta.

Note que é preciso fazer a consulta primeiro (mysql_query) e depois extrair o resultado (mysql_store_result), para finalmente ler cada registro (mysql_fetch_row).

 

Os retornos são sempre do tipo String, por isso o %s em             printf(“%s\t%s\n”,lin[0],lin[1]);

Adicionar comentário


Código de segurança
Atualizar

You are here: