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