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

Empacotando Cliente Copy no Slackware - Como ganhar 20 GB de armazenamento em nuvem
Encapsulando BIND 9 e Apache 2 para obter maior segurança
Jogos de PS1 no GNU/Linux com Dualshock 3
TurnKey Linux - Instale e configure serviços de rede facilmente
Distribuições GNU/Linux que você talvez nunca queira experimentar!
Virtual Tuning com GIMP

» Últimas dicas

Guardião Itaú Linux 2014
Criptografando Shell Script
Java JRE 1.7_51 - Instalação fácil no Debian 7 em três passos
Samba não loga no Windows 7: "Falha na relação de confiança entre esta estação de trabalho e domínio primário" [Resolvido]
Layout de teclado para ABNT2 - Configuração no Ubuntu (modo texto)
WEB Monitoring do Zabbix não funciona [Resolvido]
Múltiplos terminais virtuais com GNU Screen
SIAFI Gerencial e Operacional no Ubuntu 12.04

» Últimos scripts

[Outros] Método de Jacobi em SCILAB
[Outros] Método de Gauss-Seidel em SCILAB
[Perl] Pesquisar palavras no Diário Oficial da União
[Shell Script] Limpeza automática de pastas com contagem de arquivos
[Shell Script] Mover arquivos conforme nomenclatura

» SegInfo

Top 10 SegInfo: Veja o que foi mais comentado e acessado em 2013
Sites ecommerce inativos por ataques podem perder até US$ 8 mil por minuto
Ataques de DDoS se intensificam e corporações ainda estão despreparadas e vulneráveis
Oportunidades na área de Segurança da Informação no RJ: Teste de Invasão, Pesquisa e Execução
[Livro] Análise Forense em Redes de Computadores (via @ricardokleber)

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 Thyago Harpper

» Login

Login:

Senha:

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

Esqueci minha senha

» Top 10 do mês

Xerxes Lins (107174 pts)
Fábio Berbert de Paula (51971 pts)
Daniel Lara Souza (51436 pts)
Alessandro de Oliveira Faria (A.K.A. CABELO) (50261 pts)
João (50079 pts)
Lisandro Guerra (47899 pts)
André L. (pinduvoz) (41840 pts)
Alberto Federman Neto. (38960 pts)
Cicero Juliao da Silva Junior (38942 pts)
Davidson Rodrigues Paulo (25642 pts)

[Ranking Geral]

» Perguntas

Impressora Local Servidor remoto (xrdp) (2)
Calculo dando valor zero.. (2)
Linux anda sem graça... (25)
Problemas com wordpress (0)
Liberar porta 200 no Ubuntu (0)
rádio uol linux ubuntu 12.04 (2)
Como saber se cabo RJ tem sinal? (3)
Execuntado arquivos?!?!?! (2)

» .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: 167966 ]

Conceito: 9.5

+ quero dar nota ao artigo

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

Inserção

Geralmente as coisas que você faz no MySQL é perguntar para ele algo. Para
isso criamos "queries". Para executar uma QUERY temos a seguinte função:

int mysql_query(MYSQL *mysql, const char *q);

Como podemos ver, essa função recebe a variável de conexão e espera também uma
variável do tipo char. Aqui é onde entra a parte que você já deve conhecer do
SQL. Passaremos as queries para a função e esperaremos os resultados!
Infelizmente, isso não é que nem em PHP onde você fica abstraido dos tipos que
o mysql lida, mas isso você já deve ter notado. Vamos por a mão na massa!

Inserção

mysql_query(&conexao, "insert into aprendendo(nome, sexo) values('Ricardo Rodrigues Lucca', 'M');

Para inserirmos dados na tabela criada precisamos uma query como a dada acima.
Como vimos, na variável do tipo char que é passada como parâmetro, informamos
que estamos querendo inserir algo (insert into) em algum lugar
(aprendendo(nome, sexo)) com os valores X. Se quiséssemos escrever no nome
"Moro na rua 24 de julho. E dane-se o mundo!", teríamos que fazer da seguinte
forma a pesquisa:

"insert into aprendendo(nome, sexo) values ('Moro na rua 24 de julho. E dane-se o mundo', '!');"

A função ficaria:

mysql_query(&conexao, "insert into aprendendo(nome, sexo) values ('Moro na rua 24 de julho. E dane-se o mundo', '!');"

Sexo não poderia ser em branco, pois ao criar a tabela informamos que ele é
"NOT NULL", que faz com que não aceite inserções vazias na tabela, por isso
precisamos inserir algo nele. Assim sendo, ele é do tipo char e aceita qualquer
caracter.

Um exemplo do que foi visto até agora:

#include <stdio.h>

#include <mysql/mysql.h>

void main(void)

{

MYSQL conexao;

mysql_init(&conexao);

if ( mysql_real_connect(&conexao, "localhost", "guest", "guest", "teste", 0, NULL, 0) )

{

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

mysql_query(&conexao,"INSERT INTO aprendendo(nome, sexo) values('Ricardo Rodrigues Lucca', 'M');");

mysql_close(&conexao);

}

else

{

printf("Falha de conexao\n");

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

}

}

O Retorno do mysql_query

Até agora falamos como inserir na tabela às "cegas". Se quisermos ter certeza
que não houve erro durante a inserção, como proceder? Simples! Faça com que uma
variável inteira receba o valor de retorno da mysql_query e depois teste
a seu valor. Sempre que a variável inteira for ZERO é porque não houve erro na
query. Logo, sempre que ela for diferente de zero ela estará sinalizando que há
erros na função mysql_query.

Exemplo de um programa usando tudo isso:

#include <stdio.h>

#include <mysql/mysql.h>

void main(void)

{

MYSQL conexao;

int res;

mysql_init(&conexao);

if ( mysql_real_connect(&conexao, "localhost", "guest", "guest", "teste", 0, NULL, 0) )

{

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

res = mysql_query(&conexao,"INSERT INTO aprendendo(nome, sexo) values('Ricardo  Rodrigues Lucca', 'M');");

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

}

}

<< Página anterior     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

Uma pequena análise do Gentoo Linux

Aprendendo a utilizar o GNU Debugger (parte 1)

Criando um servidor de Ultima Online

VIM avançado (parte 1)

VIM avançado (parte 2)

Leitura recomendada

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

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

PostgreSQL - Embutindo comandos SQL no seu código C

Acessando PostgreSQL com C

Acessando PostgreSQL com C - Cursores

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