Inserir valores de variáveis no banco de dados em C [RESOLVIDO]

1. Inserir valores de variáveis no banco de dados em C [RESOLVIDO]

Caique
CaiquePortela

(usa Ubuntu)

Enviado em 12/10/2013 - 21:42h

Eu preciso fazer um sistema que se comunique com um servidor de banco de dados MySql. Utilizei o artigo: http://www.vivaolinux.com.br/artigo/Usando-MySQL-na-linguagem-C para entender sobre o assunto, porém lá não mostra como inserir dados de variáveis. Ex:

Sem variável:

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


Com variável (todos testei e não funciona):

char [30] = "Ricardo Rodrigues Lucca";

mysql_query(&conexao,"INSERT INTO aprendendo(nome, sexo) values('%s', 'M');", nome); -->> Da erro de argumentos demais
mysql_query(&conexao,"INSERT INTO aprendendo(nome, sexo) values("nome", 'M');"); -->> Da erro esperando ')' depois da variável 'nome'
mysql_query(&conexao,"INSERT INTO aprendendo(nome, sexo) values("+nome+", 'M');"); -->> invalid operands to binary + (have ‘char *’ and ‘char *’)


Não consegui pensar em outra maneira... Quem sabe uma que funciona???



@Edit: Pesquisei mais alguns códigos, e finalmente achei um que faz oque quero:


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

int main(void)
{
MYSQL conexao;
int res;
char nome[50]="Caique da Silva";
char* query[100];

mysql_init(&conexao);
if ( mysql_real_connect(&conexao, "localhost", "root", "pass", "db", 0, NULL, 0) )
{
printf("conectado com sucesso!\n");

sprintf(query,"INSERT INTO aprendendo (nome) values ('%s');", nome);

res = mysql_query(&conexao,query);
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));
}
}


Valew por nada u.u


  


2. Re: Inserir valores de variáveis no banco de dados em C [RESOLVIDO]

Caique
CaiquePortela

(usa Ubuntu)

Enviado em 12/10/2013 - 22:22h

Pessoal já resolvi... Quem quiser aprender também deve pesquisar sobre a função: sprintf() e eu coloquei um código funcional no tópico.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts