Linux下C++访问MySQL数据库

解决MySQL中的未定义引用错误 本文将详细介绍如何解决MySQL中的未定义引用错误,并提供相应的源代码示例。总结起来,解决MySQL中的未定义引用错误需要仔细检查代码中的拼写错误、作用域问题和缺少必要的引用。如果变量或函数是在其他地方定义的,可以使用"global"关键字将其声明为全局变量,以便在整个脚本中使用。如果仍然遇到未定义引用错误,请确保仔细检查代码中的变量和函数,并确保其正确定义和引用。在MySQL中,变量和函数名称是区分大小写的,因此确保拼写与定义的名称完全匹配。未定义引用错误是指在代码中引用了未定义的变量或函数。 阅读详情

由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令。想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据库试试。由于以前只接触过SQL Server,所以在网上查了很多资料,这里记录一下,以备后用。

 一,安装MySQL

    当然在使用MySQL之前,首先需要安装。我的linux发行版是Fedora 20,所以我先在MySQL官网下了一个通用版的MySQL-5.6.17-1.linux_glibc2.5.x86_64.rpm-bundle.rar,然后用归档管理器提取出来以后,发现里面有7个rpm文件,我们要使用MySQL数据库,只需要安装MySQL-server和MySQL-client就行了。具体的安装完了以后的设置密码我就不多说了。安装好了以后,在终端输入mysql -u root -p就可以进入mysql操作环境了。

二,C/C++连接MySQL

     连接MySQL数据库有两种方法:第一种是使用ADO连接,不过这种只适合Windows平台;第二种是使用MySQL自己的C API函数连接数据库。

     这里我们说的就是使用MySQL的C API函数访问MySQL数据库。C API代码是与MySQL一起提供的,它包含在mysqlclient库中,并允许C/C++程序访问数据库。具体的数据类型和函数描述可以去看MySQL官网的MySQL_C_API参考手册。

     这里的例子有使用到几个函数:

mysql_init()获取或初始化MYSQL结构
mysql_real_connect()连接到MySQL服务器。
mysql_query()执行指定为“以Null终结的字符串”的SQL查询。
mysql_use_result()初始化逐行的结果集检索。
mysql_field_count()返回上次执行语句的结果集的列数。
mysql_fetch_row()从结果集中获取下一行
mysql_num_fields()返回结果集中的字段数

 

示例代码:

 

[cpp] view plain copy

  1. /************************************************************************* 
  2.     > File Name: MyDB.h 
  3.     > Author: SongLee 
  4.     > E-mail: lisong.shine@qq.com 
  5.     > Created Time: 2014年05月04日 星期日 23时25分50秒 
  6.     > Personal Blog: http://songlee24.github.io 
  7.  ************************************************************************/  
  8. #ifndef __MYBD_H__  
  9. #include<iostream>  
  10. #include<string>  
  11. #include<mysql/mysql.h>  
  12. using namespace std;  
  13.   
  14. class MyDB  
  15. {  
  16. public:  
  17.     MyDB();  
  18.     ~MyDB();  
  19.     bool initDB(string host, string user, string pwd, string db_name);  
  20.     bool exeSQL(string sql);  
  21. private:  
  22.     MYSQL *connection;  
  23.     MYSQL_RES *result;  
  24.     MYSQL_ROW row;  
  25. };  
  26.   
  27. #endif  

 

[cpp] view plain copy

  1. /************************************************************************* 
  2.     > File Name: MyDB.cpp 
  3.     > Author: SongLee 
  4.     > E-mail: lisong.shine@qq.com 
  5.     > Created Time: 2014年05月04日 星期日 23时37分08秒 
  6.     > Personal Blog: http://songlee24.github.io 
  7.  ************************************************************************/  
  8. #include<iostream>  
  9. #include<cstdlib>  
  10. #include "MyDB.h"  
  11. using namespace std;  
  12.   
  13. MyDB::MyDB()  
  14. {  
  15.     connection = mysql_init(NULL); // 初始化数据库连接变量  
  16.     if(connection == NULL)  
  17.     {  
  18.         cout << "Error:" << mysql_error(connection);  
  19.         exit(1);  
  20.     }  
  21. }  
  22.   
  23. MyDB::~MyDB()  
  24. {  
  25.     if(connection != NULL)  // 关闭数据库连接  
  26.     {  
  27.         mysql_close(connection);  
  28.     }  
  29. }  
  30.   
  31. bool MyDB::initDB(string host, string user, string pwd, string db_name)  
  32. {  
  33.     // 函数mysql_real_connect建立一个数据库连接  
  34.     // 成功返回MYSQL*连接句柄,失败返回NULL  
  35.     connection = mysql_real_connect(connection, host.c_str(),  
  36.             user.c_str(), pwd.c_str(), db_name.c_str(), 0, NULL, 0);  
  37.     if(connection == NULL)  
  38.     {  
  39.         cout << "Error:" << mysql_error(connection);  
  40.         exit(1);  
  41.     }  
  42.     return true;  
  43. }  
  44.   
  45. bool MyDB::exeSQL(string sql)  
  46. {  
  47.     // mysql_query()执行成功返回0,失败返回非0值。与PHP中不一样  
  48.     if(mysql_query(connection, sql.c_str()))  
  49.     {  
  50.         cout << "Query Error:" << mysql_error(connection);  
  51.         exit(1);  
  52.     }  
  53.     else  
  54.     {  
  55.         result = mysql_use_result(connection); // 获取结果集  
  56.         // mysql_field_count()返回connection查询的列数  
  57.         for(int i=0; i < mysql_field_count(connection); ++i)  
  58.         {  
  59.             // 获取下一行  
  60.             row = mysql_fetch_row(result);  
  61.             if(row <= 0)  
  62.             {  
  63.                 break;  
  64.             }  
  65.             // mysql_num_fields()返回结果集中的字段数  
  66.             for(int j=0; j < mysql_num_fields(result); ++j)  
  67.             {  
  68.                 cout << row[j] << " ";  
  69.             }  
  70.             cout << endl;  
  71.         }  
  72.         // 释放结果集的内存  
  73.         mysql_free_result(result);  
  74.     }  
  75.     return true;  
  76. }  

 

 

[cpp] view plain copy

  1. /************************************************************************* 
  2.     > File Name: main.cpp 
  3.     > Author: SongLee 
  4.     > E-mail: lisong.shine@qq.com 
  5.     > Created Time: 2014年05月05日 星期一 00时30分45秒 
  6.     > Personal Blog: http://songlee24.github.io 
  7.  ************************************************************************/  
  8. #include<iostream>  
  9. #include "MyDB.h"  
  10. using namespace std;  
  11.   
  12. int main()  
  13. {  
  14.     MyDB db;  
  15.     db.initDB("localhost", "root", "songlee", "student");  
  16.     db.exeSQL("select * from student_info");  
  17.     return 0;  
  18. }  


基本步骤就是:

 

  • 使用mysql_init()初始化连接
  • 使用mysql_real_connect()建立一个到mysql数据库的连接
  • 使用mysql_query()执行查询语句
  • result = mysql_use_result(conn)获取结果集
  • mysql_field_count(conn)获取查询的列数,mysql_num_fields(result)获取结果集的字段数
  • 通过mysql_fetch_row(result)不断获取下一行,然后循环输出
  • 释放结果集所占内存mysql_free_result(result)
  • mysql_close(conn)关闭连接

三,创建所需数据库

     通过C++查询数据库的数据,当然你得创建所需数据库,可以通过代码创建,也可以在终端创建数据库。首先通过用户名和密码进入mysql:

 

[plain] view plain copy

  1. mysql -u root -p  

1,查看所有数据库:

 

 

[sql] view plain copy

  1. mysql> show databases;  
  2. +--------------------+  
  3. | Database           |  
  4. +--------------------+  
  5. | information_schema |  
  6. | mysql              |  
  7. | performance_schema |  
  8. | test               |  
  9. +--------------------+  
  10. 4 rows in set (0.00 sec)  

MySQL默认有自带的数据库,mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。

 

2,创建数据库:

 

[sql] view plain copy

  1. mysql> CREATE DATABASE student;  
  2. Query OK, 1 row affected (0.00 sec)  


3,建表:

 

 

[sql] view plain copy

  1. mysql> CREATE TABLE student_info(  
  2.     -> stu_num CHAR(20) NOT NULL,  
  3.     -> stu_name CHAR(10) NOT NULL,  
  4.     -> stu_age int NOT NULL,  
  5.     -> stu_grade CHAR(5) NOT NULL,  
  6.     -> stu_score int,  
  7.     -> PRIMARY KEY(stu_num));  
  8. Query OK, 0 rows affected (0.38 sec)  


4,查看所有数据表

 

 

[sql] view plain copy

  1. mysql> use student;  
  2. Database changed  
  3. mysql> show tables;  
  4. +-------------------+  
  5. | Tables_in_student |  
  6. +-------------------+  
  7. | student_info      |  
  8. +-------------------+  
  9. 1 row in set (0.00 sec)  


5,查看数据表的结构(字段)

 

 

[sql] view plain copy

  1. mysql> describe student_info;  
  2. +-----------+----------+------+-----+---------+-------+  
  3. | Field     | Type     | Null | Key | Default | Extra |  
  4. +-----------+----------+------+-----+---------+-------+  
  5. | stu_num   | char(20) | NO   | PRI | NULL    |       |  
  6. | stu_name  | char(10) | NO   |     | NULL    |       |  
  7. | stu_age   | int(11)  | NO   |     | NULL    |       |  
  8. | stu_grade | char(5)  | NO   |     | NULL    |       |  
  9. | stu_score | int(11)  | YES  |     | NULL    |       |  
  10. +-----------+----------+------+-----+---------+-------+  
  11. 5 rows in set (0.10 sec)  


6,插入数据

 

 

[sql] view plain copy

  1. mysql> INSERT INTO student_info VALUES("U201018113", "SongLee", 23, "1007", 85);   
  2. Query OK, 1 row affected (0.10 sec)  


7,查询数据

 

 

[sql] view plain copy

  1. mysql> SELECT * FROM student_info;  
  2. +------------+----------+---------+-----------+-----------+  
  3. | stu_num    | stu_name | stu_age | stu_grade | stu_score |  
  4. +------------+----------+---------+-----------+-----------+  
  5. | U201018113 | SongLee  |      23 | 1007      |        85 |  
  6. +------------+----------+---------+-----------+-----------+  
  7. 1 row in set (0.00 sec)  


四,运行程序获取MySQL数据库数据

 

      下面来编译运行上面的示例代码,首先进行编译,我写了一个Makefile文件:

 

[plain] view plain copy

  1. mydb:main.cpp MyDB.cpp  
  2.     g++ -o mydb main.cpp MyDB.cpp  

注意,g++前面是tab而不是空格。然后在终端输入make,回车。出现了错误:

 

 

[plain] view plain copy

  1. [songlee@localhost ~]$ make  
  2. g++ -o mydb main.cpp MyDB.cpp  
  3. In file included from main.cpp:9:0:  
  4. MyDB.h:11:18: 致命错误:mysql.h:没有那个文件或目录  
  5.  #include<mysql/mysql.h>  
  6.                   ^  
  7. 编译中断。  
  8. In file included from MyDB.cpp:10:0:  
  9. MyDB.h:11:18: 致命错误:mysql.h:没有那个文件或目录  
  10.  #include<mysql/mysql.h>  
  11.                   ^  
  12. 编译中断。  
  13. make: *** [mydb] 错误 1  


找不到mysql.h头文件。。。于是除了MySQL-server-和MySQL-client-之外,我又安装了devel和shared包:

 

 

 

 

[plain] view plain copy

  1. sudo rpm -ivh MySQL-devel-5.6.17-1.linux_glibc2.5.x86_64.rpm  
  2. sudo rpm -ivh MySQL-shared-5.6.17-1.linux_glibc2.5.x86_64.rpm  

 

再make一次,mysql.h头文件找到了,但是又出现了问题:

 

[plain] view plain copy

  1. [songlee@localhost ~]$ make  
  2. g++ -o mydb main.cpp MyDB.cpp  
  3. /tmp/cc9ZZHBx.o:在函数‘MyDB::MyDB()’中:  
  4. MyDB.cpp:(.text+0x13):对‘mysql_init’未定义的引用  
  5. MyDB.cpp:(.text+0x35):对‘mysql_error’未定义的引用  
  6. /tmp/cc9ZZHBx.o:在函数‘MyDB::~MyDB()’中:  
  7. MyDB.cpp:(.text+0x8b):对‘mysql_close’未定义的引用  
  8. /tmp/cc9ZZHBx.o:在函数‘MyDB::initDB(std::string, std::string, std::string, std::string)’中:  
  9. MyDB.cpp:(.text+0x11a):对‘mysql_real_connect’未定义的引用  
  10. MyDB.cpp:(.text+0x13c):对‘mysql_error’未定义的引用  
  11. /tmp/cc9ZZHBx.o:在函数‘MyDB::exeSQL(std::string)’中:  
  12. MyDB.cpp:(.text+0x1a6):对‘mysql_query’未定义的引用  
  13. MyDB.cpp:(.text+0x1be):对‘mysql_error’未定义的引用  
  14. MyDB.cpp:(.text+0x1f4):对‘mysql_use_result’未定义的引用  
  15. MyDB.cpp:(.text+0x218):对‘mysql_fetch_row’未定义的引用  
  16. MyDB.cpp:(.text+0x284):对‘mysql_num_fields’未定义的引用  
  17. MyDB.cpp:(.text+0x2b2):对‘mysql_field_count’未定义的引用  
  18. MyDB.cpp:(.text+0x2cf):对‘mysql_free_result’未定义的引用  
  19. collect2: 错误:ld 返回 1  
  20. make: *** [mydb] 错误 1  


找到了头文件,但是相关函数都未定义,原因是因为没有链接需要的库libmysqlclient.so,终端输入命令mysql_config --libs:

 

 

[plain] view plain copy

  1. [songlee@localhost ~]$ mysql_config --libs  
  2. -L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl  

当编译mysql程序时 

   gcc -o sql sql.c -lmysqlclient 

出现错误:

     /usr/bin/ld: cannot find -lmysqlclient

 

原因是GCC 的默认搜索没有包含 /usr/lib/mysql

 解决方法:

    执行   export LIBRARY_PATH=/usr/lib/mysql


将选项-L/usr/lib64 -lmysqlclient加入gcc/g++命令中,即修改Makefile文件为:

 

 

[plain] view plain copy

  1. mydb:main.cpp MyDB.cpp  
  2.     g++ -L/usr/lib64 -lmysqlclient -o mydb main.cpp MyDB.cpp  

再次make成功了,运行程序:

 

 

[plain] view plain copy

  1. [songlee@localhost ~]$ make  
  2. g++ -L/usr/lib64 -lmysqlclient -o mydb main.cpp MyDB.cpp  
  3. [songlee@localhost ~]$ ./mydb   
  4. U201018113 SongLee 23 1007 85   


这样,MySQL数据库访问成功!

使用kali对局域网内的主机进行远程控制 输入命令:hydra -l administrator -P/usr/share/woerdlists/rockyou.txt 192.168.100.241 smb -V。账户(adminitrator)密码:123456 【一般账户都是我们知晓了,如果不知道账户进行破解那几乎不太可能,密码如果设置的特别复杂无规律也是特别难破解的】【-r:扫描整个网段 后面就是设置 192.168.241.100/24的网络地址段 为 192.168.241.0/24 0和/24之间不要空格】 阅读详情

相关推荐

SAR型ADC的电荷重分配技术解析

本文深入解析了SAR型ADC的核心技术——电荷重分配。通过类比“猜数字”游戏,阐述了其逐次逼近的工作原理,并重点剖析了电容阵列如何实现高速、低功耗的模数转换。文章还探讨了该技术在速度、能效及集成度方面的优势,并指出了电容匹配精度等实际挑战,为嵌入式与物联网设备中的ADC选型与应用提供了实用指南。

nnn11的博客 907

/usr/bin/ld: warning: **libmysqlclient.so.20**, needed by //usr/lib/libgdal.so.20, not found (try u

/usr/bin/ld: warning: libmysqlclient.so.20, needed by //usr/lib/libgdal.so.20, not found (try using -rpath or -rpath-link) //usr/lib/libgdal.so.20:对‘mysql_store_result@libmysqlclient_20.0’未定义的引用 //usr/lib/libgdal.so.20:对‘mysql_affected_rows@li...

振华OPPO的博客世界 2197

省三医院新门诊大楼网络安全建设项目实施方案

为了响应国家建设数字医疗,构建医联网、医共体的号召,新门诊大楼现有计算机网络,实现各门诊室、药房、医学影像科室及后勤科室的终端数据互通。在互联网出口以三层模式部署两台防火墙,作为连接公网的出口设备;出于等保合规和自身业务安全的考虑,现需要该网络上通过网络安全设备实现安全建设。公网出口防火墙,配置攻击防御策略,防御互联网上的病毒进入内网。公网出口防火墙配置攻击防御策略,防御外网对内网的入侵行为。服务器取得边界防火墙,配置攻击防御策略,入侵防御策略。公网出口防火墙配置入侵防御策略,防御外网对内网发起的D。

m0_63645854的博客 2014

mysql未定义_以mysql_开始的未定义引用错误_MySQL

以mysql_开始的未定义引用错误_MySQL作者:小涵 | 来源:互联网 | 2018-04-19 15:15阅读: 1682以mysql_开始的未定义引用错误当你链接到应用程序以使用MySQL客户端库时,可能会遇到以mysql_开始的未定义引用错误,如下所示:/tmp/ccFKsdPa.o: 在函数`main'中:/tmp/ccFKsdPa.o(.text+0xb): 对`mysql_init...

weixin_42415451的博客 826

STM32实战:滑模观测器与PLL锁相环融合的FOC无感控制精解

本文深入解析了STM32平台下结合滑模观测器(SMO)与PLL锁相环的无感FOC控制技术。通过实战案例详细介绍了PLL锁相环在消除SMO高频抖振、提升角度跟踪精度方面的关键作用,并分享了工程调参技巧、C语言实现细节及系统联调方法,为电机控制开发者提供了一套完整的解决方案。

weixin_30838873的博客 190

STM32F407用FSMC+DMA驱动LVGL,3.5寸屏流畅度翻倍实战(附CubeMX配置避坑)

本文详细介绍了如何在STM32F407上通过FSMC+DMA驱动LVGL,显著提升3.5寸屏的显示流畅度。从FSMC与DMA的配置原理到LVGL驱动层适配,提供了完整的优化方案和实测数据,帮助开发者解决界面卡顿问题,实现流畅度翻倍的效果。

weixin_30872499的博客 559

mysql_fetch_row ()出现段错误_ORA1652 错误Troubleshooting

  当收到类似这样的告警信息ORA-01652: unable to extend temp segment by 128 in tablespace xxxx 时,如何Troubleshooting ORA-1652这样的问题呢?当然一般xxx是临时表空间,也有可能是用户表空间。  我们先来模拟一下这个情况,在两个会话窗口执行下面SQL语句,这个视图比较特殊(因为比较懒,不想去构造一个...

weixin_39760721的博客 316

SAP MM 物料描述MAKTX 40个字符不够用的问题处理

SAP物料描述表,长度40个字符一般情况下,40个字符在描述中也够用了,但是要加上规格之类的额外描述就不一定了,特别是对于辅助件-刀具。解决方案一:对maktx增强,换成CHAR80或者CHAR100的,但是风险较大,涉及到好多地方,另外SAP+ 算号器 也不支持。解决方案二:增强字段。内部顾问,建议在 那就在这里加一个字段,具体过程如下:1、创建域2、创建架构3、附加架构4、GUI 设置 5、后台设置6、MASS/MM17字段新增。过程1、创建域 SE112、创建结构 se11 3、MARA附加架构

GAVIN 4729

cpp mysql fetch row_linux下C++访问mysql数据库

这篇虽然是C++ 的语句,但因为只是练习,图方便就用C风格的方式写了#include #include #include #include int main(){MYSQL *connection;MYSQL_RES *result;MYSQL_ROW row;connection = mysql_init(NULL);if(connection == NULL){std::cout <&l...

weixin_33918358的博客 210

【深度学习新浪潮】如何上手DINO v3:Meta新一代视觉大模型实战指南

自定义数据集类(适配本地/公开数据集)# 去除batch维度# 构建数据加载器# 定义分类模型(冻结预训练层,仅训练分类头)self.classifier = nn.Linear(dino_model.config.hidden_size, num_classes) # 分类头global_feat = outputs.global_attention_pool # 取全局特征# 初始化模型# 冻结预训练层(仅训练分类头)# 定义损失函数和优化器。

专注:太空算力、AI infra、异构调度、大模型成本工程 491

在 FreeStyle SAP UI5 应用里优雅落地 Draft 草稿机制:用 DraftManager 封装 DraftController 的一套实战套路

SAP Fiori应用中,Draft草稿机制是解决业务中断、多人协作和长表单填写等痛点的核心能力。本文提出了一套针对FreeStyle SAP UI5应用的Draft管理方案,通过封装sap.ui.generic.app.transaction.DraftController为DraftManager服务类,将复杂的草稿操作逻辑集中管理。该方案实现了草稿的创建、激活、丢弃等核心功能,使控制器只需调用简单意图式API即可完成操作,同时解决了组件化架构下的上下文切换、统一错误处理等问题。文章还详细介绍了后端Dr

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2751

ubuntu cpp与mysql连接_linux(ubuntu)下C++访问mysql数据库

向表中插入(删除)一条数据 #include #include using namespace std;int main(int argc, char* argv[]){//准备mysql的访问结构MYSQL mysql;mysql_init( &mysql );mysql_real_connect(&mysql,"192.168.16.114",//要访问数据库的IP地址"roo...

weixin_28834765的博客 294

基于Python的Steam游戏评论与销量数据爬取及预测分析

随着数字游戏市场的蓬勃发展,Steam作为全球最大的数字游戏分发平台,积累了海量的游戏数据与玩家行为数据。本文旨在通过Python网络爬虫技术,采集Steam平台的游戏基本信息、玩家评论数据及销量相关信息,为后续的游戏评论情感分析与销量预测模型构建提供数据支持。本文将详细介绍使用requestsselenium等库实现Steam数据爬取的全过程,并提供完整的代码实现与数据处理方法。关键词:Steam;Python爬虫;数据采集;评论分析;销量预测。

2201_76125261的博客 855

Linux下使用C/C++访问数据库——MySQL篇

最近打算写一套OA系统,为了方便进行数据库操作,特意抽出一周的时间来研究C/C++访问各种数据库的方法,并打算封装一套数据库操作类,现在奉上最简单的一部分:在Linux下访问MySQL数据库。         本文中使用的MySQL API代码为C语言,如果各位对C++有兴趣,可以考虑使用mysql++。 一、配置开发环境 首先需要编译、安装MySQL,安装完成后,将MySQL目

searchwang的专栏 634

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

linux c++操作mysql数据库_Linux下C++访问MySQL数据库

由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令。想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据库试试。由于以前只接触过SQL Server,所以在网上查了很多资料,这里记录一下,以备后用。一,安装MySQL当然在使用MySQL之前,首先需要安装。我的linux发行版是Fedora 20,所以我...

weixin_31951319的博客 382

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

linux下C++访问mysql数据库

https://my.oschina.net/bobwei/blog/359759?p=1 在这个程序中,比上一次的要完善一些,实现了通过C++对数据表进行添加,修改,插入,删除的功能。 头文件——myDB.h: #ifndefmyDB_class #definemyDB_class #include<iostream> #include<string&g...

倦鸟归时 1129

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux下 C++ 访问 MySQL 数据库

Linux下 C++ 访问 MySQL 数据库 由于想要开始了解并学习用LAMP进行web开发,所以昨晚我在Fedora上安装了MySQL,学习了MySQL的几个常用命令。想着在学习进行web开发(PHP访问数据库)之前,先用我熟悉的C++连接数据库试试。由于以前只接触过SQL Server,所以在网上查了很多资料,这里记录一下,以备后用。 一,安装MySQL 当然在使用MySQL之前,首先需要安装。我的linux发行版是Fedora 20,所以我先在MySQL官网下了一个通用版的MySQL-5

西瓜游侠的博客 672

linux c++操作mysql数据库_linux下C++访问mysql数据库

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。编程之家小编现在分享给大家,也给大家做个参考。#include #include #include #include int main(){MysqL *connection;MysqL_RES *result;MysqL_ROW row;connection = MysqL_init(NULL);if(connection == NUL...

weixin_34033915的博客 217

Linux下eclipse及mysql安装,c++访问mysql数据库

这两天在学习linux下用c++访问mysql,碰到一堆问题,记录一下。1.mysql安装:公司的电脑是64位的,安装的是64为的RHEL4,安装如下三个包:MySQL-client-5.1.49-1.glibc23.x86_64.rpmMySQL-devel-5.1.49-1.glibc23.x86_64.rpmMySQL-server-5.1.49-1.glibc23.x86_64....

anqiaoej627921的博客 216
上一篇: Linux下GLIBCXX和GLIBC版本低造成的编译错误的解决方案
下一篇: [C++]_[获取Utf8字符串的字符个数和子字符串]
青松愉快
博客等级 码龄14年 71粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值