你这代码有问题吧,没有connectmysql,use database步骤;还有query字符串使用前有初始化
#include <stdio.h>
#include <stdlib.h>
#include <stdarg.h>
#include "mysql.h"
 
MYSQL *mysql;
MYSQL_RES *results;
MYSQL_ROW record;
 
static char *server_options[] = { "mysql_test", "--defaults-file=my.cnf" };
int num_elements = sizeof(server_options)/ sizeof(char *);
 
static char *server_groups[] = { "libmysqld_server", "libmysqld_client" };
 
int main(void)
{
   mysql_server_init(num_elements, server_options, server_groups);
   mysql = mysql_init(NULL);
   mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "libmysqld_client");
   mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);
 
   mysql_real_connect(mysql, NULL,NULL,NULL, "database1", 0,NULL,0);
 
   mysql_query(mysql, "SELECT column1, column2 FROM table1");
 
   results = mysql_store_result(mysql);
 
   while((record = mysql_fetch_row(results))) {
      printf("%s - %s \n", record[0], record[1]);
   }
 
   mysql_free_result(results);
   mysql_close(mysql);
   mysql_server_end();
 
   return 0;
}

解决方案 »

  1.   


    谢谢大哥,没有除了那句话,其他没有问题吧,我在初始化的时候有连接,&mysql == mysql_real_connect(&mysql, "", "", "", "", 3306, 0, 0);,连接成功的
      

  2.   

        你不要用自带的库,版本一升级可能就不好使了。你还是用ADO吧,连接字符串及其它的象增加数据、删除数据、插入数据、建立库、建立表等的连接串都可以把MYSQL里的WORKBENCH(好象类这么写的,你装完整的数据库后就可以看到这个软件)生成的字符串直接考过去就行。也就是你用WORKBENCH建立一个库,在最后一步时会显示建立库的字符串,你考过去放在ADO里就可以了,也就是用ADO的EXECUTE这条语句,包括建立表、增加数据等都这么做
        关于ADO的使用,网上有大堆的现成的好使的代码,非常容易查到