Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
#include <stdio.h>
#include <mysql/mysql.h>
#include <stdlib.h>
int main(void)
{
MYSQL mysql;
mysql_init(&mysql);
if (mysql_real_connect(&mysql,"localhost","root","root","banco",0,NULL,0))
{
int a = 1;
int b = 53;
mysql_query(&mysql, "INSERT INTO ns values('a', 'b')"); //isso não funciona, obvio...
}
return 0;
}
Como montar a query para passar os valores inteiro para o banco mysql ?
Ok, fiz com sprinft
#include <stdio.h>
#include <mysql/mysql.h>
#include <stdlib.h>
int main(void)
{
MYSQL mysql;
mysql_init(&mysql);
if (mysql_real_connect(&mysql,"localhost","root","root","banco",0,NULL,0))
{
char query[1024] = {0};
int a = 1;
int b = 53;
sprintf(query,"INSERT INTO ns VALUES ('%d','%d')",a,B);
mysql_query(&mysql, query);
}
return 0;
}
Mais como vai ter varios valores, para não sobrecarregar o mysql pensei em juntar os valores e quebrar as query, porem não sei como fazer isso em c...
Ai ia juntando "INSERT INTO ns VALUES('1','2'), ('1','3'), ('2','3')" e quando desse 1 mil ('valor','valor') ele executa a query e inicia outra assim sucessivamente...mais como fazer isso ?
É trabalho com vetores.
Você pode ir colocando no vetor e controlar a quantidade de posições preenchidas.
OBS.: A dica do guidjos, era utilizar a snprintf e não o sprintf.
A diferença entre as duas é que com snprintf você pode determinar quantos elementos serão copiados.
Você poderia o seguinte, tem o seu vetor principal com todos os valores e um outro com a quantidade de elementos que você precisa. Com o snprintf você pode copiar apenas uma parte da string principal para uma outra temporária.
Pelo menos foi isto que entendi.
Espero ter ajudado, FLW!
Sugiro snprintf.