Bom dia,
Estou postando aqui um exemplo bem simples de uma conexão com banco de dados em C que realizei.
Bom o código esta todo comentado e dividido em funções para facilitar (eu acho) rsrs, rodei este código no Linux Ubuntu com o compilador “gcc” usando a seguinte instrução:
===================================
$ gcc connMysql.c -lmysqlclient -o connMysql
===================================
mais pra frente vou estar postando um exemplo para configurar o C no Ubuntu.
Enfim, segue um pequeno exemplo de como utilizar o mysql em C.
//**BIBLIOTECAS**// #include<stdio.h> #include<mysql/mysql.h> //***LISTA DE PROTOTIPOS***// MYSQL_RES *makeQuery(MYSQL conn,char *str); void printRes(MYSQL_RES *res); void freeRes(MYSQL_RES *res); //***PRINCIPAL**// int main(){ MYSQL conn;//variavel de conexao MYSQL_RES *res;//variavel de resultado char *query = "select * from usuario_tbl;";//query de teste mysql_init(&conn);//INICIALIZA CONN //TENTA REALIZAR A CONEXAO CASO CONECTE FAZ if(mysql_real_connect(&conn,"127.0.0.1","user","password","banco",0,NULL,0)) { printf("Conectedn"); res = makeQuery(conn,query);//GUARDA O RESULTADO DA CONSULTA EM RES if(res){//SE A CONSULTA RETORNOU ALGO printRes(res);//IMPRIME freeRes(res);//E LIMPA RES } }else{//CASO A CONEXAO NAO DEU CERTO printf("Erro: %sn",mysql_error(&conn));//IMPRIME ERRO } mysql_close(&conn);//FEIXA CONEXAO COM O BANCO printf("Desconectn"); return 0; } //***FUNCAO PARA CONSULTA***/ MYSQL_RES *makeQuery(MYSQL conn,char *str){ MYSQL_RES *res;//CRIA VARIAVEL TEMP DE RESULTADO MYSQL conexao;//CRIA VARIAVEL TEMP DE CONEXAO conexao = conn;//ATRIBUI PARA TEMP A CONN if(mysql_query(&conexao,str)){//REALIZA A CONSULTA printf("Erro: %sn",mysql_error(&conexao));//CASO NAO DE CERTO IMPRIME ERRO }else{//CASO DE CERTO A CONSULTA res = mysql_store_result(&conexao);//GUARDA O RESULTADO EM RES if(res){//SE HOUVER RESULTADO return res;//RETORNA RES } } return NULL;//NO CASO DE ERRO RETORNA NULL } //***FUNCAO PARA IMPRESSAO DE RESULTADO***// void printRes(MYSQL_RES *res){ MYSQL_ROW rows;//VARIAVEL DE LINHAS(VETOR) (AS TUPLAS DO BANCO) int cont;//CONTADOR //ENQUANTO AS LINHAS FOR DIFERENTE DE NULL FAZ while((rows=mysql_fetch_row(res)) != NULL){ //REALIZA O FOR PARA CADA CAMPO DO VETOR DE LINHAS for(cont=0;cont<mysql_num_fields(res);cont++){ printf("%st",rows[cont]);//IMPRIME } printf("n"); } } //***FUNCAO PARA LIMPAR RES***// void freeRes(MYSQL_RES *res){ mysql_free_result(res); }
Obrigado,
Guilherme B. Zarelli
Guilherme, não sei se lembra de mim, mas eu lembro de você no industrial, lembra do robo que criamos, eu andava com o perna de boneca…mas em fim, encontrei seu blog e vi o quanto você sabe de programação e preciso disso para meu novo projeto, então queria falar com você, me retorne um e-mail….obrigado