Você está na página 1de 13

21/05/12

21/05/12 » O que é GNU/Linux Conosco Linux: Usando MySQL na linguagem C [Artigo] Todoosite |

» O que é GNU/Linux Conosco

Linux: Usando MySQL na linguagem C [Artigo]

Conosco Linux: Usando MySQL na linguagem C [Artigo] Todoosite | Download do GNU/Linux | Anuncie |
Conosco Linux: Usando MySQL na linguagem C [Artigo] Todoosite | Download do GNU/Linux | Anuncie |

Todoosite

Linux: Usando MySQL na linguagem C [Artigo] Todoosite | Download do GNU/Linux | Anuncie | Fale

| Download do GNU/Linux

| Anuncie

|

Fale

Login | Cadastre-se

do GNU/Linux | Anuncie | Fale Login | Cadastre-se Visite também: Segurança Linux · BR-Linux.org ·

Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux

»Menu

AnúnciosGoogle

MySQLServer MySQLPHP MySQLODBC PHPMySQLD

IntranetOpenSource

Artigos

.Conf

Camisetas

Comunidades

Dicas

Eventos

Fórum

Screenshots

Scripts

Simulado

Artigo

Home » Artigos » C/C++ » Banco de Dados » Visualização de artigo

UsandoMySQLnalinguagemC

de Dados » Visualização de artigo UsandoMySQLnalinguagemC jllucca 07/08/2003 Este é um artigo que visa demostrar

jllucca

07/08/2003

Este é um artigo que visa demostrar como podemos usar a linguagem C para realizar as ações básicas em um banco de dados MySQL. As ações básicas num banco

de dados são: inserção, remoção, alteração e consulta de dados.

Por: Ricardo Rodrigues Lucca [ Hits: 135900 ]

Denuncie

Conceito: 8.6

Rodrigues Lucca [ Hits: 135900 ] Denuncie Conceito: 8.6 + + quero dar nota ao artigo

+

+ quero dar nota ao artigo

] Denuncie Conceito: 8.6 + + quero dar nota ao artigo Favoritos Versão para impressora Indicar

Favoritos

Conceito: 8.6 + + quero dar nota ao artigo Favoritos Versão para impressora Indicar para um

Versão para impressora

quero dar nota ao artigo Favoritos Versão para impressora Indicar para um amigo Enviar artigo Erro

Indicar

para um amigo

Favoritos Versão para impressora Indicar para um amigo Enviar artigo Erro de compilação Você está tentando

Enviar artigo

Erro de compilação

Indicar para um amigo Enviar artigo Erro de compilação Você está tentando compilar os programas exemplos

Você está tentando compilar os programas exemplos daqui e está encontrando erros esquisitos, como o encontrado a baixo?

$ gcc consulta.c /tmp/ccapYor5.o: In function `main':

/tmp/ccapYor5.o(.text+0x31): undefined reference to `mysql_init' /tmp/ccapYor5.o(.text+0x5a): undefined reference to `mysql_real_connect' /tmp/ccapYor5.o(.text+0x8d): undefined reference to `mysql_query' /tmp/ccapYor5.o(.text+0xa8): undefined reference

/tmp/ccapYor5.o(.text+0xa8): undefined reference TreinamentoZopePlone [ Comoanunciar ]
/tmp/ccapYor5.o(.text+0xa8): undefined reference TreinamentoZopePlone [ Comoanunciar ]
/tmp/ccapYor5.o(.text+0xa8): undefined reference TreinamentoZopePlone [ Comoanunciar ]
/tmp/ccapYor5.o(.text+0xa8): undefined reference TreinamentoZopePlone [ Comoanunciar ]
/tmp/ccapYor5.o(.text+0xa8): undefined reference TreinamentoZopePlone [ Comoanunciar ]
/tmp/ccapYor5.o(.text+0xa8): undefined reference TreinamentoZopePlone [ Comoanunciar ]

TreinamentoZopePlone

[Comoanunciar]

21/05/12

21/05/12 »Últimosartigos VPN PPTP - Instalação entre estações Windows, Dispositivos com Android e CentOS 5.x Server

»Últimosartigos

VPN PPTP - Instalação entre estações Windows, Dispositivos com Android e CentOS 5.x Server

Introdução a CGI com

a RFC 3875

CrunchBang

Backported -

Instalação e

Configuração

Ubuntu 12.04 -

Integração com Active Directory do Windows

2008

E Ink - Leitor de E-

Book Kindle e Amazon Cloud Reader

Debian Squeeze - Instalando VirtualBox

Linux: Usando MySQL na linguagem C [Artigo]

to `mysql_error' /tmp/ccapYor5.o(.text+0xdb): undefined reference to `mysql_store_result' /tmp/ccapYor5.o(.text+0x102): undefined reference to `mysql_fetch_fields' /tmp/ccapYor5.o(.text+0x12b): undefined reference to `mysql_num_fields' /tmp/ccapYor5.o(.text+0x172): undefined reference to `mysql_num_fields' /tmp/ccapYor5.o(.text+0x1b3): undefined reference to `mysql_fetch_row' /tmp/ccapYor5.o(.text+0x1eb): undefined reference to `mysql_num_fields' /tmp/ccapYor5.o(.text+0x250): undefined reference to `mysql_errno' /tmp/ccapYor5.o(.text+0x268): undefined reference to `mysql_error' /tmp/ccapYor5.o(.text+0x27d): undefined reference to `mysql_errno' /tmp/ccapYor5.o(.text+0x2a5): undefined reference to `mysql_free_result' /tmp/ccapYor5.o(.text+0x2b7): undefined reference to `mysql_close' /tmp/ccapYor5.o(.text+0x2e1): undefined reference to `mysql_errno' /tmp/ccapYor5.o(.text+0x2f9): unefined reference to `mysql_error' /tmp/ccapYor5.o(.text+0x30e): undefined reference to `mysql_errno' collect2: ld returned 1 exit status

Pois é! Essa quantidade absurda de erros é normal quando se esquecem de linkar o programa com a biblioteca mysqlclient! O mesmo programa compilado novamente não apresentará nenhum erro se ele for linkado corretamente, como no exemplo abaixo:

$ gcc consulta.c -lmysqlclient

Espero que isso ajude bastante, pois esquecer de linkar com essa biblioteca é um dos erros mais comuns e pode assustar bastante um cara que esteja iniciando em programação!

»Destaques

CloudConf LatAm 2012

(1)

04-06/06/2012 - Chamada para o IX Evidosol/VI Ciltec- online (0)

»Screenshot

para o IX Evidosol/VI Ciltec- online (0) »Screenshot Por JefersonLopes »Login Login: Senha: Se você

Por JefersonLopes

»Login

Login:

Senha:

(0) »Screenshot Por JefersonLopes »Login Login: Senha: Se você ainda não possui uma conta,

Se

você

ainda

não

possui

uma

conta,

clique aqui.

Esqueci minha senha

 

»Top10usuários

<< Página anterior

 

6472418: Fábio Berbert de Paula

Páginas do artigo

5642716: Alessandro de Oliveira Faria (A.K.A. CABELO)

1. Introdução

2. Iniciando na programação

3. Inserção

4. Consulta

5. Remoção e alteração

6. Erro de compilação

Outros artigos deste autor

Linux Básico - Parte I6. Erro de compilação Outros artigos deste autor Apreendendo a utilizar o GNU Debugger (parte 2)

Apreendendo a utilizar o GNU Debugger (parteOutros artigos deste autor Linux Básico - Parte I 2) 1) Conceitos sobre o X-Window Aprendendo

2)

1)

Conceitos sobre o X-Window- Parte I Apreendendo a utilizar o GNU Debugger (parte 2) 1) Aprendendo a utilizar o

Aprendendo a utilizar o GNU Debugger (parte

Funcionamento da memóriasobre o X-Window Aprendendo a utilizar o GNU Debugger (parte Leitura recomendada 2660106: Elgio Schlemer 2657153:

Leitura recomendada

2660106: Elgio

Schlemer

2657153: Davidson Rodrigues Paulo

2551320: Xerxes Lins

2378424: Jefferson Estanislau da Silva

2308143: Percival F. Jr.

2224805: Cicero Juliao da Silva Junior

2112255: André L. (pinduvoz)

2077602: Edinaldo P. Silva

21/05/12

com acesso WEB via phpVirtualBox

»Últimasdicas

Ubuntu 12.04 LTS - Instalando o Hamachi

Ubuntu 12.04 LTS - Instalando o Remastersys

FFmpeg - Como inserir Logo em vídeo

Manipulando

BigDecimal

Ubuntu - Configurar volume pelo Terminal

Ubuntu - Destacando Aba Ativa no Gnome- Terminal

Efeitos do KDE 4 no Slackel

Debian com KDE - Habilitando cliques do Touchpad

»SegurançaLinux

[Dica] Pacote Oficial Linux LPI

[Dica] Ghost Phisher - suite para ataques de phishing usando Fake DNS, DHCP e BLA, BLA,

BLA

[Artigo] samhain - verificador de integridade de filesystem

[Notícia] pfSense 2 Cookbook

[Dica] T50 Experimental Packet Injector Tool

[Artigo] Honeypot:

Aprendendo com o intruso

[Notícia] Até 50% de desconto para as últimas vagas do treinamento Investigação Forense Digital da 4Linux.

!

!

!

»Últimosscripts

[Shell-Script] traduz_man - traduzir man pages

[C/C++] Substituidor

Linux: Usando MySQL na linguagem C [Artigo]

Substituidor Linux: Usando MySQL na linguagem C [Artigo] Acessando PostgreSQL com C Acessando PostgreSQL com C

Acessando PostgreSQL com C Acessando PostgreSQL com C - Cursores Embutindo um banco de dados SQLite em sua aplicação C++ PostgreSQL - Embutindo comandos SQL no seu código C Ensaio acerca de bibliotecas de código aberto para abstração de acesso a banco de dados em linguagem C++

para abstração de acesso a banco de dados em linguagem C++ Comentários [1] Comentário enviado por
para abstração de acesso a banco de dados em linguagem C++ Comentários [1] Comentário enviado por

Comentários

[1] Comentário enviado por repolho em 08/08/2003

- 16:16h:

SHOW de bola esse tutorial era exatamente isto que estava procurando para a minha NetAgenda ;) aUHauHAU valeus

[2] Comentário enviado por jllucca em 09/08/2003

- 02:39h:

blz

vou postar os scripts em separado

[3] Comentário enviado 29/10/2003 - 17:24h:

por

ic3hawk

em

Cara, eu não achei o mysql.h!!!!!!

[4] Comentário enviado por jllucca em 30/10/2003

-

00:05h:

Tipo, talvez você precise instalar algum pacote pra ter a biblioteca.

Mas, tenho nem ideia de qual possa ser. Se outra

pessoa souber e quiser ajudar

fico grato!

[5] Comentário enviado por zorro em 25/11/2003 -

21:02h:

E so voce instalar o mysql-devel

apt-get install MySQL-devel

[6] Comentário enviado por jllucca em 26/11/2003

- 11:20h:

Valeu pela contribuição, zorro! :)

Eu realmente não sabia o nome do pacote

AnúnciosGoogle

MySQLDatabase

PHPMySQLTutorial

MySQLServer

»Perguntas

Multiterminal para pregão 51/2007 . (3)

servidor postfix não enviar email (3)

ARRAY (2)

migração 4.2-2 para 4.3 (0)

Monitorar Tráfego (4)

Distro baseada no Ubuntu (184)

Novato - Criação de Shell Script (1)

Controle xbox 360 sem fio no ubuntu 11.10.

(3)

».Conf

[Squid] squid.conf - Simples configuração do squid

[backup-manager] backup-manager.conf - Configuração de backup simples com backup-mana

[Asterisk] asterisk.conf - Arquivo Configuração asterisk

[iptables] firewall.sh - firewall.sh

[mutt] muttrc - arquivo de configuração para o Mutt

[7] Comentário enviado por jllucca em 30/08/2004

- 13:43h:

Apenas pra completar, ao invés de utilizar um falor predefinido ali e sempre constante nas querys podemos criar um ponteiro para char e usar ele para montar uma query usando variaveis do proprio programa.

Ex.:

char* query; char* tabela = "aprender"; char *nome = "Ricardo Lucca";

sprintf(query, "SELECT * from %s where nome = '%s';", tabela, nome);

É isso, ai!

21/05/12

de letras

[Python] Conexão de Roteadores CISCO

[Shell-Script] Escrever números, datas, horas e outros por extenso

[Shell-Script] Script simples de Backup para os diretórios listados abaixo do /

Linux: Usando MySQL na linguagem C [Artigo]

Qualquer duvidas podem mandar email ainda!

[]'s

[8] Comentário enviado por androle em 23/09/2004

- 18:34h:

Cara, muito bom! Faz muito tempo que procuro algo como esse seu artigo. Meus parabéns!

Só para colaborar, no debian precisei instalar o libmysqlclient-dev para ter o mysql.h

Valeu!

[9] Comentário enviado por pbetos em 16/11/2004

- 21:53h:

Muito bom.

[10] Comentário

enviado

por

danilolobato

em

05/01/2005 - 09:51h:

Valeu cara, faz tempo que eu procurava um tutorial assim, ALGUÉM PODERIA DE INDICAR UM SITE MAIS ESPECÍFICO SOBRE O ASSUNTO?

[11] Comentário enviado por jllucca em 05/01/2005

- 19:44h:

Site que explique conheço um que explica a mesma coisa so q em ingles. Livro tem um chamado Linux Professional muito bom, não só pra esse assunto como para outros

[12] Comentário enviado por Biudi em 10/01/2005 -

11:51h:

Muito bom esse seu artigo! Me ajudou

bastante

e tô com problemas no MySQL, encontro o seguinte

no",

tô sem saber onde encontrar esse pacote,alguém poderia por favor me ajudar?

erro:"checking for mysql_init in -lmysqlclient

iniciando com Linux(Conectiva 10)

estou

[13] Comentário

25/01/2005 - 12:16h:

enviado

por

fabiocosta

em

ae galera, achei muito interessante este artigo, mas fiquei com uma dúvida que ao longo do texto não consegui tirar. Como executar um código-fonte desses de conexão com mysql se eu ao menos vi uma biblioteca para isso, que no caso seria " <stdio.h>" e "<mysql/mysql.h>", enfim, gostaria de saber como faria pra acessar o mysql, como faria para possuir as bibliotecas.

[14] Comentário enviado por hartax em 18/04/2006

- 22:18h:

Outra duvida, estou comecando agora a programar em C, pra adicionar os dados oriundos de uma variavel? como eh que faz?

[15] Comentário enviado 20/06/2006 - 12:08h:

por

removido

em

eu baixei o MySQL e tentei instalar no meu laptop, mas não consegui por causa de um bloqueio da

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

Fontes de dados (ODBC). Como faço prá resolver isso ? E caso eu use o SQL Professional Edition, dá prá criar o mesmo programa nele? Qual modificação eu preciso fazer?

Valeu!!

Álvaro- Eng. de Redes de Celular

[16] Comentário enviado 26/07/2006 - 22:13h:

por

marrento

em

@hartax:

"pra adicionar os dados oriundos de uma variavel? como eh que faz?"

vc vai montar a string de sua query, assim:

char nome[ 80 ]; char sexo; char sql[ 1000 ];

sprintf( sql, "insert into tabela (nome, sexo) values ('%s', '%c')", nome, sexo );

e por aí vai

[17] Comentário enviado por hartax em 02/08/2006

- 00:55h:

um amigo meu resolveu o meu prob com as variaveis hj ai entro aqui pra ver se alguem tinha respondido e o marrento me manda o que esse meu amigo me mandou hahaha valeuz marrento!

[18] Comentário

enviado

por

thiagou319

em

19/09/2006 - 15:32h:

 

compila certo!!!

fiquei maior tempo para descubrir!!!

 

gcc -o test progrma.c -lmysqlclient

./test

 

e

pronto

[19] Comentário 02/12/2006 - 03:48h:

enviado

por

lufagovi

em

eu tentei compilar varias vezes, mas só me da os seguintes erros C:\MinGW\include\mysql\mysql_com.h:175: error:

`SOCKET' does not name a type C:\MinGW\include\mysql\mysql_com.h:339: error:

`SOCKET' was not declared in this scope C:\MinGW\include\mysql\mysql_com.h:339: error:

expected primary-expression before "const" C:\MinGW\include\mysql\mysql_com.h:339: error:

expected primary-expression before "unsigned" C:\MinGW\include\mysql\mysql_com.h:340: error:

expected primary-expression before "unsigned" C:\MinGW\include\mysql\mysql_com.h:340: error:

initializer expression list treated as compound

expression

:: === Build finished: 6 errors, 0 warnings ===

Será que alguem pode me ajudar?

[20] Comentário 02/12/2006 - 04:57h:

enviado

por

lufagovi

em

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

ops já achei antes que tudo

tinha que declara a windows.h ¬ ¬'

[21]

21/12/2006 - 11:07h:

Comentário

enviado

por

laurosalmito

em

Como faço para guardar os dados do mysql em um vetor no C?

Por exemplo:

Existindo a variavel idades[n] com todas as idades que tem no banco?

[22] Comentário enviado 09/07/2007 - 15:36h:

por

clarkmili

em

Excelente, este post foi mesmo muuuuuuuuito útil estava a procura na net, mas os exemplos não são tão bem explicados como esse. Thanks

[23]

21/08/2007 - 17:20h:

Comentário

enviado

por

cold_feelings

em

Vlwwwwwwwwwwwwww, muuuuito bom esse

tutorial, isso vai para minha monografia com as

devidas referências

vlw

[24] Comentário enviado 12/09/2007 - 17:28h:

por

f_Candido

em

Muito Bom este tutorial. Parabéns Abraços

[25] Comentário enviado 18/06/2008 - 13:48h:

por

netmorais

em

Ricardo

Sou novato em MySql. Li o seu artigo achei muito bom. Testei nu Linux e correu tudo bem. Resolvi fazer um teste análogo no Windows utilizando um de seus exemplos e estou encontrando problemas. Veja a seguir:

LINUX

$ cat teste.c

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

main(void)

{

MYSQL conexao;

mysql_init(&conexao); mysql_real_connect(&conexao, "localhost", "guest", "guest", "teste", 0, NULL, 0); printf("conectado com sucesso!\n"); mysql_close(&conexao);

}

$

gcc teste.c -l mysqlclient ; mv a.out teste.exe

$

teste.exe

conectado com sucesso!

WINDOWS

com

Gcc

do

MinGW,

MySQL

5.0

e

a

pasta

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

/mysql/*

em /mingw/include/mysql ocorrem os

seguintes erros durante a complilação:

$ gcc teste.c -l mysqlclient

from

/mingw/include/mysql/mysql.h:72, from teste.c:2:

/mingw/include/mysql/mysql_com.h:183: parse error before "SOCKET" /mingw/include/mysql/mysql_com.h:222: parse

error before '}' token /mingw/include/mysql/mysql_com.h:335: parse error before '*' token /mingw/include/mysql/mysql_com.h:336: parse error before '*' token /mingw/include/mysql/mysql_com.h:337: parse error before '*' token /mingw/include/mysql/mysql_com.h:338: parse error before '*' token /mingw/include/mysql/mysql_com.h:339: parse error before '*' token /mingw/include/mysql/mysql_com.h:340: parse error before '*' token

In

file

included

Você tem alguma dica para o problema?

Grato.

Sérgio.

netmorais@ig.com.br

[26] Comentário enviado 18/06/2008 - 16:26h:

por

netmorais

em

Ricardo

"windows.h" mas continua aparecendo:

\mingw\lib\gcc-

lib\mingw32\3.2.3\

cannot find -lmysqlclient

diminuiu

os

erros.

\

\

\

Usei

o

include

sugerido

\mingw32\bin\ld.exe:

Usei

a

opção

-L

/MySQL/

/lib/opt,

copiei

o

/MySQL/

/lib/opt

para mas não funciona.

 

Sérgio.

netmorais@ig.com.br

 

[27] Comentário

enviado

por

wgaprendiz

em

12/10/2008 - 23:12h:

Ola Ricardo Muito bom seu artigo.

Bom estou com alguns problemas para executar os exemplos.

Utilizo a versão 4.9.9.2 do Dev c/c++ no win XP Pro. Ja baixei a bilbioteca mysql.h

Ao tentar compilar os exemplos , aparecem as seguintes mensagens de erro no dev:

[Linker error] undefined reference to 'WinMain@16' Id returned 1 exit status C:\Dev-Cpp\Makefile.win [Build Error] [project2.exe] Error 1

Como sou novato em C não sei decifrar esses erros , mas acho que o problema possa estar na biblioteca mysql.h, pois eu baixei a primeira que encontrei e nao sei se é a mais adequada.

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

Alguem pode me ajudar a solucionar o problema.!?

Desde ja agradeço pela atenção.

walaceg@gmail.com

[28] Comentário enviado 01/04/2009 - 21:43h:

Olá Pessoal,

por

abekawa

em

No linux a biblioteca libmysql pode ser instalada baixando o pacote libmysql++-dev . Distribuições baseadas em debiam podem usar o seguinte comando. #sudo apt-get install libmysql++-dev

Tambem deverá ser feito algumas alterações no código:

declarem a main como int, como nosso amigo lá em cima já citou.

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

int main(void)

{

MYSQL conexao;

mysql_init(&conexao);

"localhost",

"root", "123mudar", "agenda", 0, NULL, 0) )

{

printf("conectado com sucesso!\n"); mysql_close(&conexao);

}

else

{

printf("Falha de conexao\n");

printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));

}

}

if

(

mysql_real_connect(&conexao,

[29] Comentário enviado 02/04/2009 - 00:00h:

por

abekawa

em

PERGUNTA, como inserir o valor de uma variavel

qualquer no insert into

mais ou menos isso

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

int main(void)

{

MYSQL conexao; int res; char nome[50], telefone[10];

scanf("%s", &nome); scanf("%s", &telefone);

mysql_init(&conexao);

if ( mysql_real_connect(&conexao, "localhost", "root", "123mudar", "agenda", 0, NULL, 0) )

{

printf("conectado com sucesso!\n");

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

res = mysql_query(&conexao,"INSERT INTO cadastro(nome, telefone) values (" + nome + "," + telefone + ");");

if

mysql_affected_rows(&conexao));

else

mysql_errno(&conexao), mysql_error(&conexao));

(!res)

printf("Registros

na

inseridos

%d

:

%d\n",

%s\n",

printf("Erro

inserção

mysql_close(&conexao);

}

else

{

printf("Falha de conexao\n");

printf("Erro %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));

}

}

[30] Comentário enviado 17/06/2009 - 10:47h:

por

netmorais

em

Ricardo Usei o modelo do seu artigo para construir um

executavel tanto no Linux, como no Windows (.exe, infelizmente preciso) para estabelecer a conexão a baixo custo de outras linguagens com o Mysql e funciona muito bem. A biblioteca que uso na compilação com o gcc é a libmysqlclient.a que vem junto com a distribuição do Mysql. Atualmente, no caso do Windows, estou tentando melhorar a performance da interface criando uma Dll. Para isso transformei o programa em C em um conjunto de "funções" para conexão, execução de sqls e desconexão com banco. Aplicação que "chama" as funções é pre-compilada em um .obj, assim como as "funções" que acessam o banco com "gcc -c funcoes.c -o funcoes.obj". (não posso "linkar" o Mysql nesse momento). Após isso

executo o Link (da MS) "link

-d aplicacao.obj

funcoes.obj libmysqlclient.a" que cria a Dll e naõ aponta nenhum erro. Porém na execução aborta logo no "mysql_init".

A biblioteca "libmysqlcliente.a" utilizada não é

apropriada para este caso? Existe "mysqlclient.obj"? Grato Sérgio.

[31] Comentário 31/10/2009 - 18:43h:

enviado

por

fmj1988

em

Felipe estou tentando inserir aki mas estou com duvidas.

como eu faço pra inserir dinamicamente. ex

int i=0;

char b[][]={"rebeca","precila","barbara"};

for (i=0;i<3;i++){

mysql_query(&con,"insert into values ('%s');",b[][i]);

}

como eu faria isso???

agradeço desde já

aprendendo(nome)

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

[32] Comentário enviado por walquiriosaraiva em 20/11/2009 - 06:54h:

Bom dia pessoal!!

Estou com um problema em C, não consigo encontrar a biblioteca para conexão com banco de dados. Não sei onde baixar, já tentei encontrar mais as que achei não funciona quando eu tento compilar o programa ele dá um erro e pelo que percebi deve ser na biblioteca.

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

void main(void)

{

MYSQL conexao;

mysql_init(&conexao);

mysql_real_connect(&conexao, "localhost", "root", "root", "teste", 0, NULL, 0); printf("conectado com sucesso!\n"); mysql_close(&conexao);

}

Se puder me enviar um email é melhor walquiriosaraiva@gmail.com

Att, Walquirio Saraiva Rocha

[33] Comentário enviado por Raios em 16/04/2010 - 15:56h:

Olá pessoal bem a conexão foi realizada com sucesso só que na hora de eu transformar isso tudo para DLL, gera um erro na conexão, bem esse é meu código porém não consigo criar uma DLL com banco. Gostaria que me ajudasse.

#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <windows.h> #include <mysql/mysql.h> #include <string.h>

int main(void)

{

MYSQL conexao; MYSQL_RES *resp; MYSQL_ROW linhas; MYSQL_FIELD *campos; char query[]="SELECT * FROM cliente;"; int conta; //Contador comum

mysql_init(&conexao); if

(mysql_real_connect(&conexao,"localhost","user","user","dados",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

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

if (resp) //se houver consulta

{

//passa

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");

}

os

dados

dos

campos

para

a

vari·vel

printf("\n");

//enquanto retonrnar registros, conta atÈ o //n&#729;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");

}

}

do

mysql_free_result(resp);//limpa 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));

}

system("pause");

return 0;

}

a

vari·vel

[34] Comentário enviado 22/04/2010 - 01:56h:

muito bom o post.

por

wcoutinho

em

eu to com uma serie de problemas na compilacao.

gcc mysql-connect.c -lmysqlclient

mysql-connect.c:2:24: error: mysql/mysql.h: No such file or directory mysql-connect.c: In function ‘main’:

mysql-connect.c:11: error: ‘MYSQL’ undeclared (first use in this function) mysql-connect.c:11: error: (Each undeclared identifier is reported only once mysql-connect.c:11: error: for each function it appears in.) mysql-connect.c:11: error: expected ‘;’ before ‘conexao’ mysql-connect.c:12: error: ‘MYSQL_RES’ undeclared (first use in this function) mysql-connect.c:12: error: ‘resp’ undeclared (first use in this function) mysql-connect.c:13: error: ‘MYSQL_ROW’

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

undeclared (first use in this function) mysql-connect.c:13: error: expected ‘;’ before ‘linhas’ mysql-connect.c:14: error: ‘MYSQL_FIELD’ undeclared (first use in this function) mysql-connect.c:14: error: ‘campos’ undeclared (first use in this function) mysql-connect.c:18: error: ‘conexao’ undeclared (first use in this function) mysql-connect.c:23: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ mysql-connect.c:45: error: ‘linhas’ undeclared (first use in this function) mysql-connect.c:60: warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘int’

alguem pode me ajudar?

[35] Comentário enviado por icekill em 03/06/2010 - 01:42h:

Seu problema

na

compilação

é

que

faltam

as

bibliotecas

ou

o

mysql-devel

não

encontra-se

instalado.

Recomendo compilar usando a seguinte sintaxe:

gcc `mysql_config --cflags --include --libs` teste- mysql.c -o teste-mysql.c

[36] Comentário

03/07/2010 - 16:00h:

enviado

por

williandiniz

em

resposta ao [7] Comentário enviado por jllucca em 30/08/2004 - 13:43h:

Complementado:

int res; int data=999; int lat=1000; char* query[100]; sprintf(query,"INSERT INTO dados_teste (ID,lati) values ('%d','%d');",data,lat);

.

.

.

res = mysql_query(&conexao,query);

dados_teste = nome da tabela ID e lati são os campos da tabela data e lat são as variaveis.

[37]

18/10/2010 - 00:33h:

Comentário

enviado

por

graantonucci

em

Estou fazendo a conexao mysql em C++

como faço para o insert aceitar as variaveis char dt_dia_trabalhado e hr_entrada?

//sock int res; MYSQL *sock; sock = mysql_init(0);

if (sock) cout << "sock handle ok!" << endl;

else { cout << "sock handle failed!" << mysql_error(sock) << endl;

}

21/05/12

Linux: Usando MySQL na linguagem C [Artigo]

//connection if (mysql_real_connect(sock, host, user, pass, db, 0, NULL, 0)) { cout << "connection ok!" << endl; res = mysql_query(sock,"INSERT INTO cadastro_horas(dt_dia_trabalhado, hr_entrada ) values (dt_dia_trabalhado, hr_entrada );");

Coloquei assim, mas insere como Null. oq eu faço?

Contribuir com comentário

Contribuir com comentário Enviar Limpar Para executar esta ação você precisa estar logado no site, caso
Enviar
Enviar

Limpar

Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.

Contribuir com: [ Artigo | Conf | Dica | Evento | Oportunidade de trabalho |Pergunta | Script | Screenshot

]

Responsávelpelosite: Fábio Berbert de Paula ­Conteúdodistribuídosob Sitehospedadopor: licença GNU FDL

VivaoLinux

AmaiorcomunidadeLinuxdaAmérica

Latina!Artigos,dicas,tutoriais,fórum,scriptse

muitomais.Idealparaquembuscaauto­

ajudaemLinux.

muitomais.Idealparaquembuscaauto­ ajudaemLinux. Estatísticasdosite Equipedemoderadores

Estatísticasdosite

Equipedemoderadores

FAQ:Perguntasfreqüentes

Membrosdacomunidade