数据库mysql与c语言

API:http: //dev.mysql.com/doc/refman/5.1/zh/apis.html

数据库:mysql
开发工具:vc6.0
1、设置Project Settings下的C/C++,选择Category的CodeGeneration,设置use run-time library为Multithreaded,原因是数据库需要使用到多线程

2、设置Tools下Options的Directories选项,将mysql安装目录下的include文件夹路径加入Include files,或者直接将include文件夹下的mysql.h拷到工程目录下,然后缺什么文件,放心,编译器会叫的

3、将mysql目录下\lib\opt中的libmysql.lib拷到工程目录下


#include <winsock2.h>
#include <stdio.h>
#include "mysql.h"
#pragma comment(lib, "libmysql.lib")
int main()
{
        MYSQL mysql;
        mysql_init(&mysql);
         if(mysql_real_connect(&mysql, "localhost", "root", "123456", "test", 0, NULL, CLIENT_MULTI_STATEMENTS) != NULL)
        {
                printf( "客户端版本信息:%s\n", mysql_get_client_info());
                printf( "客户端版本信息:%u\n", mysql_get_client_version());
                printf( "描述连接的字符串:%s\n", mysql_get_host_info(&mysql));
                printf( "服务器的版本号:%u\n", mysql_get_server_version(&mysql));
                printf( "连接所使用的协议版本:%u\n", mysql_get_proto_info(&mysql));
                printf( "服务器的版本号:%u\n", mysql_get_server_info(&mysql));

                mysql_real_query(&mysql, "select * from user", sizeof( "select * from user")-1);
                MYSQL_RES *res;
                 if((res = mysql_use_result(&mysql)) == NULL)
                { /*如果查询未返回结果集,mysql_store_result()将返回Null指针(例如,如果查询是INSERT语句)。
                        如果读取结果集失败,mysql_store_result()还会返回Null指针。通过检查mysql_error()是否返回非空字符串,mysql_errno()是否返回非0值,或mysql_field_count()是否返回0,可以检查是否出现了错误。
                        如果未返回行,将返回空的结果集。(空结果集设置不同于作为返回值的空指针)。*/
                        printf( "查询未返回结果集\n");
                        printf( "错误编号:%d\n", mysql_errno(&mysql));
                        printf( "错误信息:%s\n", mysql_error(&mysql));
                        printf( "行数:%d\n", mysql_field_count(&mysql));
                }
                 else
                {
                        printf( "结果集的行数:%d\n", mysql_num_rows(res));
                        MYSQL_ROW mr;
                        MYSQL_FIELD *mf = mysql_fetch_fields(res);
                         while((mr = mysql_fetch_row(res)) != NULL)
                        {
                                unsigned long *lengths;
                                lengths = mysql_fetch_lengths(res);
                                 for(unsigned int i = 0; i < mysql_num_fields(res); i++)
                                {
                                        printf( "%s:%s ", mf[i].name, mr[i]?mr[i]: "NULL");
                                }
                                printf( "\n");
                        }

                }
                mysql_free_result(res);
        }
         else
        {
                 int i = mysql_errno(&mysql);
                printf( "发生错误:%s\n", mysql_error(&mysql));
        }
        mysql_close(&mysql);
         return 0;
}

你可能感兴趣的:(c,mysql,数据库,职场,休闲)