• C语言-MySQL单表查询(vs2013环境)


    一、首先配置项目属性:

    1.打开mysql的安装路径,找到include文件夹和lib文件夹

    如图: 

    2.在vs2013中, 打开项目–> 属性 –>VC++目录 

    如图:

    把将nclude和lib分别添加到包含目录和库目录即可。

    3.打开项目 –> 属性 –> 链接器 –> 输入 –> 附加依赖项

    如图:

    4.最后再把libmysql.dll动态库复制到项目文件下面就可以了。

    如图:

    MySQL安装目录下lib

    拷贝到vs2013项目目录下

    5. 如果你安装的MySQL是64位的, 就要把vs里解决方案平台也设置为64位。

    如图:

    二、项目属性配置好了就该写代码了。。

    这里我写的是一个简单的单表查询程序, 前提是你确保你的mysql数据库中存在这张表。

    #define _CRT_SECURE_NO_DEPRECATE
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <WinSock2.h>
    #include <windows.h>
    #include <time.h>
    
    #include "mysql.h"	/*mysql数据库连接头文件*/
    #pragma comment(lib, "libmysql.lib");
    
    
    /*定义几个数据库连接相关宏*/
    #define HOST "localhost"    
    #define USERNAME "****"        // MySQL用户名
    #define PASSWORD "*******"  // 登陆密码
    #define DATABASE "stu"            // 数据库名
    
    void query_sql(char *sql);
    
    int main() {
    
    	char *query;
    	query = "SELECT * FROM t_student";// 确保sql语句能执行
    	query_sql(query);
    printf(" "); system("pause"); return 0; } void query_sql(char *sql) { MYSQL *conn; // 数据库连接句柄 int res; // 执行sql返回结标志 MYSQL_RES *res_ptr; // 指向查询结果的指针 MYSQL_FIELD *field; // 字段结构指针 MYSQL_ROW result_row; // 按行返回的查询信息 int row, column; int i, j; // 初始化mysql连接 my_connection conn = mysql_init(NULL); // 建立mysql连接 if (NULL != mysql_real_connect(conn, HOST, USERNAME, PASSWORD, DATABASE, 0, NULL, CLIENT_FOUND_ROWS)) { printf("数据库查询query_sql连接成功! "); // 设置查询编码为gbk, 支持中文 mysql_query(conn, "set names gbk"); res = mysql_query(conn, sql); if (res) { // sql执行失败 printf("Error: mysql_query! "); mysql_close(conn); } else { // 执行成功 // 将查询结果给res_ptr res_ptr = mysql_store_result(conn); // 如果结果不为空就将结果打印到控制台 if (res_ptr) { // 获取查询结果的列数和行数 column = mysql_num_fields(res_ptr); row = mysql_num_rows(res_ptr); printf("查询到%d行 ", row); // 输出结果字段的名字 for (i = 0; field = mysql_fetch_field(res_ptr); i++) { printf("%10s ", field->name); } printf(" "); // 按行输出结果 for (i = 1; i < row + 1; i++) { result_row = mysql_fetch_row(res_ptr); for (j = 0; j < column; j++) { printf("%10s ", result_row[j]); } printf(" "); } } // 关闭数据库 mysql_close(conn); } } // 数据库连失败 else { printf("数据库连接失败!"); } }

    这是我的运行结果:

  • 相关阅读:
    BrowserSync,自动刷新,解放F5,去掉更新提示
    js获取手机系统语言
    块元素,行内元素,行内块区别
    原生js判断某个元素是否有指定的class名的几种方法
    如何实现调用console.log(‘good’.repeat(3))时输出goodgoodgood?
    数组如何去除重复数据,只保留一条
    Sentinel笔记-Flow流控规则
    sentinel笔记 NodeSelectorSlot,ClusterBuilderSlot
    Sentinel笔记--Slotchain
    Sentinel笔记-核心类
  • 原文地址:https://www.cnblogs.com/hejjon/p/10657004.html
Copyright © 2020-2023  润新知