高手你好,最近初学mysql,在用c写mysql函数时遇到点麻烦,望专家百忙中赐教一二,函数如下
#include<windows.h>
#include<stdio.h>
#include<mysql.h>char * demand_certificate(char* id)                  //输出Usercert
{
char * cert=NULL;

char   szSqlText[500]=""; 
MYSQL mysql;
MYSQL_RES * res;
MYSQL_ROW row ; 
     mysql_init(&mysql);
if(mysql_real_connect(&mysql,"localhost",             //连接数据库 
        "root", "123123", "lian", MYSQL_PORT, NULL, 0 ) ) 
 {      
     sprintf(szSqlText,"select UserCert from tbuser_info where UserID=" ); 
     strcat(szSqlText,id);


         if (mysql_query( &mysql, szSqlText))  //执行SQL语句 
 {                                     //执行SQL语句出错 
                 printf("Can't find the id you want") ; 
                 mysql_close( &mysql ) ; 
                 return FALSE ; 
 } 
    
         
 
            res = mysql_store_result( &mysql ) ;   //取得查询结果
            int numRecords=mysql_num_rows(res);
    if(numRecords==0) printf("不存在这个记录");
            row=mysql_fetch_row(res);
    cert=row[0];
    mysql_free_result( res ) ; 
 
  } 
     else 
 {                                             //连接数据库出错 
       printf( "Can't connect to the mysql server ") ;   
       mysql_close( &mysql ) ; 
       return FALSE ; 
 } 
     mysql_close( &mysql ) ; 
     return cert ; 
} void main()
{
char* usercert=(char *)malloc(sizeof(char)*2000);
char* usercertpre=usercert;
usercertpre=demand_certificate("2510");
printf("%s",usercertpre);
free(usercert);
usercert=NULL;
usercertpre=NULL;

}
当数据库中有userid为2510的记录时函数正常,当随便输入一个id如251就会出现问题
"0x0040112a"指令应用的"0x00000000"内存。该内存不能为"read".
期待您的答复~谢谢