Todo o site
Artigos
.Conf
Comunid.
Dicas
Fórum
Shots
Scripts

Login   |   Cadastre-se

» O que é GNU/Linux   |   Download do GNU/Linux   |   Anuncie   |   Fale Conosco

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

» Menu

Artigos

.Conf

Comunidades

Dicas

Fórum

Screenshots

Scripts

Simulado

» Últimos artigos

TurnKey Linux - Instale e configure serviços de rede facilmente
Distribuições GNU/Linux que você talvez nunca queira experimentar!
Virtual Tuning com GIMP
Monitoramento utilizando Centreon 2.4.5 + Nagios 3.5.1 + CentOS 6.5
Processing - Programando para Android e iOS
Genymotion - Emulando Android no GNU/Linux

» Últimas dicas

Instalando VirtualBox no Slackware 14.1
Gerenciador de janelas Window Maker em Vídeo aula
Google Earth no Ubuntu 12.04 em ambientes que utilizam Proxy (Squid 3)
Configurando conexão (ADSL) no Slackware
Configurando o PulseAudio em mono
Usando a função smooth em Processing
Criando imagem ISO de Pendrive
Compactação e descompactação de arquivos (ambiente gráfico)

» Últimos scripts

[Perl] Baixar o Diário Oficial da União e salvar como um único PDF completo
[Shell Script] Gerador de senhas aleatórias com pwgen
[Shell Script] Cálculo de IMC
[Shell Script] Mostra a temperatura da cidade desejada
[HTML/Javascript] Jogo Snake em HTML5

» SegInfo

Mercado aquecido de SI e TI estimula busca por certificações nacionais e internacionais
Dilma anuncia implantação de sistema seguro de emails em todo governo federal
Opiniões sobre privacidade na internet: Qual a sua?
Brasil lidera o ranking de envio de spam e de hospedagem de URLs maliciosas na América Latina
Agora a capital mineira também tem um hackerspace: Área 31

Intranet Open Source

Treinamento Zope Plone

» Destaques

Chuva no ES, ajude! (1)
Chamada de Trabalhos: Hackers to Hackers Conference 11a Edição (0)
Como tirar suas dúvidas (9)

» Screenshot

Por levi linux

» Login

Login:

Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Top 10 do mês

Xerxes Lins (104391 pts)
João (57020 pts)
Alessandro de Oliveira Faria (A.K.A. CABELO) (52978 pts)
Fábio Berbert de Paula (50747 pts)
Daniel Lara Souza (50194 pts)
André L. (pinduvoz) (43595 pts)
Lisandro Guerra (41784 pts)
Alberto Federman Neto. (37632 pts)
Cicero Juliao da Silva Junior (34703 pts)
Luís Fernando C. Cavalheiro (24888 pts)

[Ranking Geral]

» Perguntas

nao estou conseguindo instalar progamas via terminal nem pelo ubuntu s... (3)
Informar a um execuável que a raiz é a pasta atual. (3)
localhost não interpreta css no ubuntu (1)
Atributos Personalizados para grid system (1)
Script para abri uma pagina (1)
ajuda com javascript (2)
Efeito nos Navegadores (1)
"...defe... o Linux como se ele fosse o Santo Graal dos sistemas ... (9)

» .Conf

[wbar] wbar.conf - Personalizando wbar
[bash] .bashrc - Customização do PS1 do terminal
[Vim] ~/.vimrc - ~/.vimrc modular - primeira parte
[Conky] conkyrc - Conky KISS
[Samba] samba.conf - Configuração Samba fácil e rápid...

Artigo

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

Usando MySQL na linguagem C

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: 167596 ]

Conceito: 9.5

+ quero dar nota ao artigo

Denuncie
+ Favoritos
Versão para impressora
Indicar para um amigo
Enviar artigo

Introdução

Este é um artigo que visa demonstrar 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 MySQL são:

inserção;

remoção;

alteração e;

consulta de dados

Assim, seria recomendável possuir alguma experiência na linguagem SQL.

Inicie, criando um banco de dados chamado "teste" e crie um usuário para
acessar esse BD. No caso aqui criarei um usuário chamado "guest" com a
senha "guest", depois criaremos uma tabela chamada "aprendendo". Abaixo estão
os comandos para você fazer isso no console ou no rxvt (se quiser usar o gráfico):

01 $ mysql --user=root -p

02 Enter password: <senha aqui>

03 Welcome to the MySQL monitor. Commands end with ; or \g.

04 Your MySQL connection id is 8 to server version: 3.23.51-log

05 Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

06 mysql> create database teste;

07 Query OK, 1 row affected (0.00 sec)

08 mysql> grant all on teste.* to guest identified by "guest";

09 Query OK, 0 rows affected (0.06 sec)

10 mysql> flush privileges;

11 Query OK, 0 rows affected (0.03 sec)

12 mysql> exit

13 Bye

Agora vamos comentar isso. Na linha 01, você pede para logar com o usuário
administrador do MySQL, que no caso é chamado root (--user=root), mas
poderia ser outro. Fora isso, temos também que dizer que para esse usuário será
preciso digitar uma senha (-p). Se você não sabe qual é esse usuário,
me desculpe, mas consulte a pessoa que instalou o MySQL na sua máquina.

Agora, na linha 06 pedimos para criarmos o banco de dados teste e na linha
08 dizemos que o usuário guest (to guest) com senha guest
(identified by "guest") terá todos os direitos no banco de dados teste
(grant all on teste.*). Na linha 10, fazemos valer o novo usuário. Assim, só
depois desse comando o usuário vai funcionar e exit é para sair
(linha 12).

Agora você me pergunta: "E a tabela?". Criaremos a tabela usando o usuário
que possui direitos nela para irmos nos acostumando a isso! Vamos lá:

$ mysql --user=guest -p

Enter password: <senha aqui>

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 38 to server version: 3.23.51-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> connect teste;

Connection id:    39

Current database: teste

mysql> create table aprendendo (

-> `ID` INT NOT NULL AUTO_INCREMENT,

-> `nome` VARCHAR( 40 ) NOT NULL,

-> `sexo` CHAR( 1 ) NOT NULL,

-> unique ( `ID` )

-> );

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

Isso faz com que você reconecte com o banco de dados teste (connect teste) e
depois crie uma tabela chamada aprendendo (create table aprendendo), que possui
três colunas:

ID: que receberá um inteiro incrementado automaticamente;

nome: que será do tipo VARCHAR que não poderá ser vazio;

sexo: que será do tipo CHAR, também não podendo ser vazio.

Por fim, definimos uma chave única para a tabela.

Um pequeno comentário quanto aos tipos VARCHAR e CHAR. VARCHAR é usado quando
queremos uma economia de espaço nas tabelas. Essa economia é gerada da seguinte
forma: podemos inserir no máximo 40 caracteres, sendo que se inserirmos menos,
vamos ter uma string da quantidade inserida, ao contrário do tipo CHAR, pois o
tipo CHAR sempre vai ter o tipo definido. Isso dá um ganho de velocidade na hora
da busca. Se definirmos um CHAR de no máximo 5 e inserirmos 3 caracteres, ele
ocupará espaço como se tivesse cinco caracteres.

Próxima página >>

Páginas do artigo

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 I

Como recuperar a senha o root

Apreendendo a utilizar o GNU Debugger (parte 2)

Funcionamento da memória

Introdução as Bibliotecas do C/C++

Leitura recomendada

Acessando PostgreSQL com C

Embutindo um banco de dados SQLite em sua aplicação C++

Ensaio acerca de bibliotecas de código aberto para abstração de acesso a banco de dados em linguagem C++

Acessando PostgreSQL com C - Cursores

PostgreSQL - Embutindo comandos SQL no seu código C

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 por ic3hawk em 29/10/2003 - 17:24h:

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...

[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!

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...estou iniciando com Linux(Conectiva 10) e tô com problemas no MySQL, encontro o seguinte erro:"checking for mysql_init in -lmysqlclient...no", tô sem saber onde encontrar esse pacote,alguém poderia por favor me ajudar?

[13] Comentário enviado por fabiocosta em 25/01/2005 - 12:16h:

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 por removido em 20/06/2006 - 12:08h:

eu baixei o MySQL e tentei instalar no meu laptop, mas não consegui por causa de um bloqueio da 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 por marrento em 26/07/2006 - 22:13h:

@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 enviado por lufagovi em 02/12/2006 - 03:48h:

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 enviado por lufagovi em 02/12/2006 - 04:57h:

ops já achei... tinha que declara a windows.h ¬ ¬' antes que tudo

[21] Comentário enviado por laurosalmito em 21/12/2006 - 11:07h:

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 por clarkmili em 09/07/2007 - 15:36h:

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] Comentário enviado por cold_feelings em 21/08/2007 - 17:20h:

Vlwwwwwwwwwwwwww, muuuuito bom esse tutorial, isso vai para minha monografia com as devidas referências ... vlw

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

Muito Bom este tutorial.

Parabéns

Abraços

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

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 .../mysql/* em /mingw/include/mysql ocorrem os seguintes erros durante a complilação:

$ gcc teste.c -l mysqlclient

In file included 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

.....

Você tem alguma dica para o problema?

Grato.

Sérgio.

[email-masked]

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

Ricardo

Já diminuiu os erros. Usei o include sugerido "windows.h" mas continua aparecendo:

\mingw\lib\gcc-lib\mingw32\3.2.3\..\..\..\..\mingw32\bin\ld.exe: cannot find -lmysqlclient

Usei a opção -L .../MySQL/.../lib/opt, copiei o .../MySQL/.../lib/opt para mas não funciona.

Sérgio.

[email-masked]

[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.

Alguem pode me ajudar a solucionar o problema.!?

Desde ja agradeço pela atenção.

[email-masked]

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

Olá Pessoal,

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

if ( mysql_real_connect(&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));

}

}

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

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

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

if (!res) printf("Registros inseridos %d\n", mysql_affected_rows(&conexao));

else printf("Erro na inserção %d : %s\n", mysql_errno(&conexao), mysql_error(&conexao));

mysql_close(&conexao);

}

else

{

printf("Falha de conexao\n");

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

}

}

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

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 enviado por fmj1988 em 31/10/2009 - 18:43h:

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 aprendendo(nome) values ('%s');",b[][i]);

}

como eu faria isso???

agradeço desde já

[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...

[email-masked]

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

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

}

}

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

}

system("pause");

return 0;

}

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

muito bom o post.

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’ 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 enviado por williandiniz em 03/07/2010 - 16:00h:

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] Comentário enviado por graantonucci em 18/10/2010 - 00:33h:

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;

}

//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?

[38] Comentário enviado por d4nd em 12/06/2012 - 19:00h:

Muito bom o tutorial!

Recebi os erros por falta de inclusão do mysql na hora de compilar o projeto, mas olhei no fim do tutorial e consegui.

Grato.

[39] Comentário enviado por Kinzel em 21/08/2012 - 23:55h:

Muito bom o tutorial. Parabéns.

[40] Comentário enviado por Dean_Winchester em 03/11/2013 - 01:28h:

como instalar a biblioteca mysql?

Contribuir com comentário

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ável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL

Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.

Estatísticas do site
Equipe de moderadores
FAQ: Perguntas freqüentes
Membros da comunidade