• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

_elf

[C] MySQL na linguagem C

1 mensagem neste tópico

Boas,

Tive a necessidade de utilizar o mysql num programa feito em C e andei à procura e encontrei este site que me ajudou imenso. Tenham em atenção que é necessario uma biblioteca que vem com o MySQL e também na compilação do programa visto ser preciso usar a tag -lmysqlclient.

http://www.vivaolinux.com.br/artigos/verArtigo.php?codigo=316

Deixo aqui o código que interessa mas leiam o site que explica melhor:

#include <stdio.h>
#include <mysql/mysql.h>

#define HOST "localhost"
#define USER "guest"
#define PASS "guest"
#define DB "teste"

int main(void)
{
  MYSQL conexao;
  MYSQL_RES *resp;
  MYSQL_ROW linhas;
   MYSQL_FIELD *campos;
   char query[]="SELECT * FROM aprendendo;";
   int conta; //Contador comum

   mysql_init(&conexao);
   if (mysql_real_connect(&conexao,HOST,USER,PASS,DB,0,NULL,0))
   {
      printf("Conectado com Sucesso!\n");
      if (mysql_query(&conexao,query))
         printf("Erro: %s\n",mysql_error(&conexao));
      else
      {
         resp = mysql_store_result(&conexao);//recebe a consulta
         if (resp) //se houver consulta
         {
            //passa os dados dos campos para a variável campos
            //escreve na tela os nomes dos campos dando
            //um tab somente
            campos = mysql_fetch_fields(resp);
             for (conta=0;conta<mysql_num_fields(resp);conta++) {
               printf("%s",(campos[conta]).name);
               if (mysql_num_fields(resp)>1)
                  printf("\t");
            }
            
            printf("\n");   

            //enquanto retonrnar registros, conta até o
            //número de colunas que a tabela tem e escreve na
            //tela com um tab, depois pula a linha e tenta
            //pegar outro registro
            while ((linhas=mysql_fetch_row(resp)) != NULL)
            {
               for (conta=0;conta<mysql_num_fields(resp);conta++)
                  printf("%s\t",linhas[conta]);
                   printf("\n");
            }
         }
         mysql_free_result(resp);//limpa a variável do resultado: resp
      }
      mysql_close(&conexao);
    }
    else
    {
      printf("Conexao Falhou\n");
      if (mysql_errno(&conexao))
      printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));
    }
   return 0;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora