int stu_select()
{
MYSQL_ROW results,record;
char query[50];
int flag;
sprintf( query,"call stu_query(@s)");
flag=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
//printf( ">>>%d<<<\n",flag );
if( flag )
{
printf("Error exec query: %s\n",mysql_error(&mysql));
}
mysql_query(&mysql, "SELECT @s");
results = mysql_store_result(&mysql);
printf( "Stuid Name Maths English Physis Total aver\n" );
while((record = mysql_fetch_row(results)))
{
printf("%3s%10s%9s%11s%11s%10s%11s\n", record[1],record[2],record[3],record[4],record[5],record[6],record[7] );
}
mysql_free_result(results); return 0;
}其中&mysql为一个全局变量
第一次调用该函数时,能够得到从数据库的返回值。第二次调用时报错:Commands out of sync; you can't run this command now 问题出在这一句:mysql_real_query(&mysql,query,(unsigned int)strlen(query)); 我怀疑是&mysql第一次调用时添加了一些值,但是不能再次初始化(因为链接着数据库)。请教高手解答。
{
MYSQL_ROW results,record;
char query[50];
int flag;
sprintf( query,"call stu_query(@s)");
flag=mysql_real_query(&mysql,query,(unsigned int)strlen(query));
//printf( ">>>%d<<<\n",flag );
if( flag )
{
printf("Error exec query: %s\n",mysql_error(&mysql));
}
mysql_query(&mysql, "SELECT @s");
results = mysql_store_result(&mysql);
printf( "Stuid Name Maths English Physis Total aver\n" );
while((record = mysql_fetch_row(results)))
{
printf("%3s%10s%9s%11s%11s%10s%11s\n", record[1],record[2],record[3],record[4],record[5],record[6],record[7] );
}
mysql_free_result(results); return 0;
}其中&mysql为一个全局变量
第一次调用该函数时,能够得到从数据库的返回值。第二次调用时报错:Commands out of sync; you can't run this command now 问题出在这一句:mysql_real_query(&mysql,query,(unsigned int)strlen(query)); 我怀疑是&mysql第一次调用时添加了一些值,但是不能再次初始化(因为链接着数据库)。请教高手解答。
while(mysql_next_result(&mysql)==0)
{
if(results=mysql_store_result(&mysql))
mysql_free_result(results);
}