当前位置: 首页 > news >正文

中国电商平台排行榜无锡seo公司网站

中国电商平台排行榜,无锡seo公司网站,网站名字大全,竞价网站服务器文章目录 C语言访问Mysql1. 环境设置2. mysql接口介绍(1) 初始化mysql_init()(2) 链接数据库mysql_real_connect(3) 下发mysql命令mysql_query()(4) 获取执行结果mysql_store_result(5) 释放结果集mysql_free_result()(6) 获取结果行数mysql_num_rows(7) 获取结果列数mysql_num… 文章目录 C语言访问Mysql1. 环境设置2. mysql接口介绍(1) 初始化mysql_init()(2) 链接数据库mysql_real_connect(3) 下发mysql命令mysql_query()(4) 获取执行结果mysql_store_result(5) 释放结果集mysql_free_result()(6) 获取结果行数mysql_num_rows(7) 获取结果列数mysql_num_fields(8) 获取列名mysql_fetch_fields(9) 获取结果内容mysql_fetch_row(10) 关闭mysql链接mysql_close 3. 测试代码 C语言访问Mysql 1. 环境设置 环境设置这里我就简单介绍一下参考我mysql环境安装的博客MySQL环境安装_Ryujianli的博客-CSDN博客 如果你像我一样在linux下安装了mysql就能在对应的目录下找到库和头文件 ls /lib64/mysql ls /usr/include/mysql如果你找不到可以再安装一下 yum install mysql-devel配置好环境后直接打开vscode开始测试要#includemysql/mysql.h引入mysql的头文件 注意makefile文件的写法 mytest:test.ccg -o mytest test.cc -L/lib64/mysql -lmysqlclient -stdc11 .PHONY:clean clean:rm -f mytest测试代码 #includeiostream #includemysql/mysql.hint main() {std::coutmysql client version: mysql_get_client_info()std::endl;return 0; }如果上面代码能成功运行证明你的库引入成功 2. mysql接口介绍 (1) 初始化mysql_init() 要使用库必须先进行初始化! MYSQL * mysql_init(MYSQL *mysql)参数说明: mysql设置为nullptr, 函数分配初始化并返回一个新的对象。 返回值: 成功返回一个MYSQL类型的对象, 失败返回nullptr(2) 链接数据库mysql_real_connect 初始化完毕之后必须先链接数据库在进行后续操作。(mysql网络部分是基于TCP/IP的 MYSQL *mysql_real_connect(MYSQL *mysql, const char *host,const char *user,const char *passwd,const char *db,unsigned int port,const char *unix_socket,unsigned long clientflag); 参数说明:mysql: 你创建并初始化好的MYSQL类型的对象, 即mysql_init的返回值host: 这里使用本地环回地址, 即127.0.0.1user: 代表数据库的使用者passwd: userd的密码db: 代表你要连接的数据库名称port: mysql服务的端口号, 默认是3306unix_socket: unix套接字, 设置为nullptr代表这里是网络通信 clientflag: 设置为0 返回值:成功返回连接成功的MYSQL对象, 失败返回nullptr第一个参数 MYSQL是 C api中一个非常重要的变量mysql_init的返回值里面内存非常丰富有port, dbname, charset等连接基本参数。它也包含了一个叫 st_mysql_methods的结构体变量该变量里面保存着很多函数指针这些函数指针将会在数据库连接成功以后的各种数据操作中被调用。mysql_real_connect函数中各参数基本都是顾名思意。 建立好链接之后获取英文没有问题如果获取中文是乱码设置链接的默认字符集是utf8原始默认是latin1 mysql_set_character_set(myfd, utf8);(3) 下发mysql命令mysql_query() int mysql_query(MYSQL *mysql, const char *q);参数说明: 第一个参数上面已经介绍过q: 代表你要执行的sql语句 返回值:成功返回0, 失败返回非0(4) 获取执行结果mysql_store_result sql执行完以后如果是查询语句我们当然还要读取数据如果updateinsert等语句那么就看下操作成功与否即可。我们来看看如何获取查询结果 如果mysql_query返回成功那么我们就通过mysql_store_result这个函数来读取结果。原型如下 MYSQL_RES *mysql_store_result(MYSQL *mysql);MYSQL_RES的介绍 该函数会调用MYSQL变量中的st_mysql_methods中的 read_rows 函数指针来获取查询的结果 。同时该函数会返回MYSQL_RES 这样一个变量该变量主要用于保存查询的结果(调用mysql_store_result函数时是把存储的数据转储到MYSQL_RES中)。 同时该函数malloc了一片内存空间来存储查询过来的数据所以一定要使用mysql_free_result() 函数来释放否则会造成内存泄漏。 执行完mysql_store_result以后其实数据都已经在MYSQL_RES变量中了。 MYSQL_RES叫做结果集我们可以把想象成一个char**类型的每一小块空间里存储的是一条记录中的某一个数据所以要用一个char *类型的指针去指向这一个数据一行的数据就构成一条记录一共有多少条记录就有多少行每一行都会有一个二维指针去指向这一行 (5) 释放结果集mysql_free_result() void mysql_free_result(MYSQL_RES *result)(6) 获取结果行数mysql_num_rows my_ulonglong mysql_num_rows(MYSQL_RES *res);(7) 获取结果列数mysql_num_fields unsigned int mysql_num_fields(MYSQL_RES *res);(8) 获取列名mysql_fetch_fields MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res);(9) 获取结果内容mysql_fetch_row MYSQL_ROW其实是char **可以当成一个二维数组来用 MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);(10) 关闭mysql链接mysql_close void mysql_close(MYSQL *sock);另外mysql C api还支持事务等常用操作大家下来自行了解: my_bool STDCALL mysql_autocommit(MYSQL * mysql, my_bool auto_mode); my_bool STDCALL mysql_commit(MYSQL * mysql); my_bool STDCALL mysql_rollback(MYSQL * mysql);3. 测试代码 前提makefile文件的写法我在环境设置部分已经说明在使用此代码测试前要为自己创建一个mysql下的普通账号并赋予其对特定数据库的所有权限在我上一个博客中 MySQL用户管理_Ryujianli的博客-CSDN博客 #includeiostream #includemysql/mysql.h #includestringconst std::string host127.0.0.1; const std::string useruser_l; const std::string password1003898; const std::string dbconn; const unsigned int port3306;int main() {// std::coutmysql client version: mysql_get_client_info()std::endl;MYSQL* mymysql_init(nullptr);if(nullptr my){std::cerr init MySQL error std::endl;return 1;}if(mysql_real_connect(my,host.c_str(),user.c_str(),password.c_str(),db.c_str(),port,nullptr,0)nullptr){std::cerrconnect MySQL errorstd::endl;return 2;}mysql_set_character_set(my,utf8);// 增删改简单处理// std::string sqlinsert into user (name,age,telephone) values (张三, 19, 1523467);// std::string sqlinsert into user (name,age,telephone) values (kitty, 29, 13234567);// std::string sqlupdate user set nameJimmy where id2;// std::string sqldelete from user where id3;// 查的处理std::string sqlselect * from user;int nmysql_query(my,sql.c_str());if(n0)std::coutsql success std::endl;else{std::coutsql failed std::endl;return 3;}MYSQL_RES*resmysql_store_result(my);if(nullptrres){std::cerr mysql_store_result error std::endl;return 3;}// 全部都是和结果集有关的, resint rowsmysql_num_rows(res);int fieldsmysql_num_fields(res);std::cout 行: rowsstd::endl;std::cout 列: fieldsstd::endl;// 属性MYSQL_FIELD*fields_arraymysql_fetch_fields(res);for(int i0;ifields;i){std::coutfields_array[i].name \t;}std::cout \n;// 内容for(int i0;irows;i){MYSQL_ROW row mysql_fetch_row(res); // char**for(int j0;jfields;j){std::coutrow[j] \t; // *(rowj)}std::cout \n;} std::coutfields_array[0].db fields_array[0].tablestd::endl;// std::coutconnect successstd::endl;mysql_free_result(res);mysql_close(my);return 0; }
http://www.hkea.cn/news/14558723/

相关文章:

  • 中小企业公共服务平台网站建设网站备案下来以后怎么做网页
  • 凯里市企业建站公司logo制作下载
  • php做网站用框架设计网站 知乎
  • 网站开发天津闵行网页设计师
  • 儋州网站建设培训学校商标注册证书电子版怎么查询
  • 小学生做电子小报的网站塘沽做网站的公司
  • 东莞建站方案flash asp网站
  • 微信能否做门户网站网站开发入门培训机构
  • 三 网站建设网站推广有哪些公司可以做
  • wordpress 三栏廊坊百度优化
  • 深圳手机商城网站设计费用做网站用个人还是企业比较好
  • 做asp网站需要的实验报告单服装设计投稿平台
  • 网站怎么做微信送红包活动电商运营培训学费多少
  • 厦门建设企业网站小榄网站建设
  • 怎样用手机做推广免费网站知网涉嫌垄断被罚8760万
  • 政务网站建设合同做宣传的网站
  • 湖南省做网站的湖南 网站建设
  • 电子兼职网站建设网站安全和信息化建设
  • h5网站开发后台html模板
  • seo北京网站推广做预算查价格的网站是哪个
  • 交易类网站建设开发一个相亲软件需要多少钱
  • 怀化网站制作建设建设龙卡e付卡网站
  • 免费制作网站的软件手机怎样设计网站建设
  • 手机网站 用户体验深圳十大外贸公司排名
  • 1年网站天津seo网站推广
  • 网站推广设计制作南阳专业网站设计公司
  • 企业宣传网站建设需求说明书样文本地宁波网站建设
  • 沈阳网站建设黑酷科技drupal个人门户网站开发
  • 青海建设局网站前端手机网站
  • 微网站建设公司首选公司后端开发工程师前景