Dodawanie zmiennej do mysql_query.

0

Mam taki kod:

#include <my_global.h>
#include <mysql.h>
#include <unistd.h>

int main(int argc, char **argv)
{
	unsigned int i = 0;
  	MYSQL *conn;

  	conn = mysql_init(NULL);

  	if(conn == NULL) 
	{
		  printf("Error %u: %s\n", mysql_errno(conn), mysql_error(conn));
		  exit(1);
  	}
	else
	{
		printf("mysql_init done!\n");
	}

	conn = mysql_real_connect(conn,"localhost","baza","password","baza",0,NULL,0);
	
	if(conn)
	{
        	printf("Connection Succeeded\n");
   	}
    	else
	{
        	printf("Connection Failed!\n");
	}

	MYSQL_RES *res_set;
	MYSQL_ROW row;
	while(true)
	{
		sleep(3);
		mysql_query(conn,"SELECT * FROM a");
		res_set = mysql_store_result(conn);
		unsigned int numrows = mysql_num_rows(res_set);
		row = mysql_fetch_row(res_set);
		printf("%s",row[0]);	
		printf("%s",row[1]);
		printf("%s\n\n\n",row[2]);
	}
  	mysql_close(conn);
} 

Jak do

mysql_query(conn,"SELECT * FROM a"); 

dodać zmienną żeby było coś w tym stylu:

int zmienna = 1;
mysql_query(conn,"SELECT * FROM zmienna"); 

Szukałem w internecie, testowałem na różne sposoby i nic nie pomogło.
Używam linuksa.

0

Wudaje się, że to Ci może pomóc : http://www.cplusplus.com/reference/cstdio/sprintf/

0

Zrobiłem więc takie coś:

char buffer [50];
		int n = 1;
		n=sprintf (buffer, "SELECT * FROM test%d",n);
		mysql_query(conn,buffer); 

I podczas uruchamiania wyszło mi

Naruszenie ochrony pamięci
 
0

A są jeszcze jakieś komunikaty od kompilatora?

0

Nie, kompiluje się bez błędu. Tylko podczas uruchamiania wyskakuje to naruszenie ochrony pamięci.

1 użytkowników online, w tym zalogowanych: 0, gości: 1