segunda-feira, 29 de abril de 2013

"C" - Conexão MySQL

Pré-requisitos
mysql (client)
mysql-devel

A compilação de programas com acesso a bibliotecas do MySQL necessitam de alguns parâmetros especiais. Estes parâmetros podem ser obtidos através da execução do script 'mysql_config' que faz parte do pacote mysql-devel. Para compilar o programa, usar a seguinte sintaxe:
gcc -o <output> $(mysql_config --cflags) <fonte.c> $(mysql_config --libs)

exemplo:
gcc -o consulta_mysql $(mysql_config --cflags) consulta_mysql.c $(mysql_config --libs)

Exemplo de programa para conexão ao MySQL

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

int main(void) {
   MYSQL *conexao;
   MYSQL_RES *res;
   MYSQL_ROW linhas;
   MYSQL_FIELD *campos;
   char query[]="select * from <tabela>;";
   int i;

   char *server = "<servidor>";
   char *user = "<usuario>";
   char *password = "<senha>";
   char *database = "<banco>";
   unsigned int port = <porta>;

   conexao = mysql_init(NULL);

   /* Connect to database */
   if (!mysql_real_connect(conexao, server,
         user, password, database, port, NULL, 0)) {
      fprintf(stderr, "%s\n", mysql_error(conexao));
      exit(EXIT_FAILURE);
   }

   /* send SQL query */
   if (mysql_query(conexao, query)) {
      fprintf(stderr, "%s\n", mysql_error(conexao));
      exit(EXIT_FAILURE);
   }

   res = mysql_store_result(conexao);
   
   if (res)
   {
     campos = mysql_fetch_fields(res);
     for (i=0; i < mysql_num_fields(res); i++)
     {
       printf("%s", (campos[i]).name);
       if (mysql_num_fields(res) > 1)
          printf("\t");
     }
     
     printf("\n");
     
     while ((linhas = mysql_fetch_row(res)) != NULL)
     {
       for (i=0; i < mysql_num_fields(res); i++)
         printf("%s\t", linhas[i]);
       printf("\n");
     }
   }

   /* close connection */
   mysql_free_result(res);
   mysql_close(conexao);
}

Nenhum comentário:

Postar um comentário