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

企业网站建设方案如何写阿里云做电影网站

企业网站建设方案如何写,阿里云做电影网站,网站建设里的知识,咨询网站搭建目录 使用 yum 配置 mysqld 环境 查看 mysqld 服务的版本 创建 mysql 句柄 链接数据库 使用数据库 增加数据 修改数据 查询数据 获取查询结果的行数 获取查询结果的列数 获取查询结果的列名 获取查询结果所有数据 断开链接 C语言访问mysql数据库整体源码 通过…

目录

使用 yum 配置 mysqld 环境

查看 mysqld 服务的版本

创建 mysql 句柄 

链接数据库 

使用数据库 

增加数据 

修改数据

 查询数据

 获取查询结果的行数

 获取查询结果的列数 

获取查询结果的列名 

获取查询结果所有数据

断开链接 

C语言访问mysql数据库整体源码


        通过前段时间的 mysql 数据库的学习,我们知道了 mysql 数据库本质上就是一个网络服务,本期的主要内容在于讲解如何使用 C 语言相关的接口连接 mysqld 网络服务。

使用 yum 配置 mysqld 环境

        centos7 版本的操作系统使用一下指令安装 mysqld 服务的配置文件。

sudo yum install mysql-devel

        配置好之后,mysqld 相关的头文件在 /usr/include/mysql 目录下。我们连接 mysqld 服务时主要使用 mysql.h 头文件。

        配置好后。mysqld 对应的库文件在 /usr/lib64/mysql 下。

        在链接 mysqlclient 库时,需要使用 -L 字段指明库的路径。 

g++ -o $@ $^ -std=c++11  -L/usr/lib64/mysql -lmysqlclient

查看 mysqld 服务的版本

  • 使用 mysql_get_client_info() 函数查看 mysqld 云服务版本。 
  std::cout<<"client version: "<<mysql_get_client_info()<<std::endl;

        作者的版本是 mysql 5.7.44 版本。

创建 mysql 句柄 

  • 使用 mysql_init() 函数创建 mysql 句柄。
  MYSQL *my=mysql_init(nullptr);

链接数据库 

  • 使用 mysql_real_connect() 函数链接数据库。
#include<iostream>
#include<cstdio>
#include<mysql/mysql.h>const std::string host="127.0.0.1";
const std::string user="jd";
const std::string password="YJD010918madeinchina...";
const std::string db="study";
const unsigned int port=8088;int main()
{std::cout<<"client version: "<<mysql_get_client_info()<<std::endl;//1.创建mysql句柄MYSQL *my=mysql_init(nullptr);//2.链接数据库if(mysql_real_connect(my,host.c_str(),user.c_str(),password.c_str(),db.c_str(),port,nullptr,0)==nullptr){std::cout<<"connect failed!"<<std::endl;return 1;}std::cout<<"connect success!"<<std::endl;
}

        第一个参数为刚开始创建的 mysql 句柄,第二个参数为要访问的 mysqld 的 ip,第三个参数为使用哪个 mysql 用户访问数据库, 第四个参数为访问数据库的这个 mysql 用户的密码是多少,第四个参数为当前用户访问的数据库的名称,第五个参数为访问的 mysqld 的端口号,后面两个参数不需要了解。返回值为 MYSQL* 数据库句柄类型,如果为空则连接数据库失败,如果不为空则链接数据库成功。

使用数据库 

        数据库的使用其实就是对数据库表的使用,数据库表的使用包含四个部分数据记录的 增加,查询,修改,删除

        无论是 增加,查询,修改还是删除,都使用下面的函数进行操作。

 int mysql_query(MYSQL *mysql, const char *q);

        在对数据进行操作之前,我们应该先设置 mysql 句柄的编码格式。

 //设置句柄的编码格式mysql_set_character_set(my,"utf8");

增加数据 

        向 study 数据库中的 students 表中插入数据。

insert into students values (6,66,'张三','297599');

        成功插入。 

修改数据

        向 study 数据库中的 students 表中修改数据。 

update from students set name='李四' where id =6;

        成功修改。 

 查询数据

        查询数据是数据操作中较为复杂的一个操作,因为涉及到了将数据查询出来,并将数据显示出来。查询出来数据很简单,但是复杂的是将查询出来的数据显示出来,如何显示出来,我们需要使用 多个接口共同搭配使用将插叙出来的数据显示出来。

        查询 students 表中的所有记录。

select * from students;

        使用下述函数读取  mysql_query()  接口执行之后,mysql 句柄中查询的结果。

MYSQL_RES *mysql_store_result(MYSQL *mysql);
     MYSQL_RES* res=mysql_store_result(my);

        读取的结果存储在了 MYSQL_RES* 类型的返回值指向的特定结构体中。后续使用这个返回值获取相关的结果字段。

 获取查询结果的行数

        使用以下函数查询行数。

 my_ulonglong mysql_num_rows(MYSQL_RES *res);
    //4.2获取查询的行数unsigned int rows = mysql_num_rows(res);std::cout << rows << std::endl;

        查询列数成功。 

 获取查询结果的列数 

        使用以下函数查询列数。

 unsigned int mysql_num_fields(MYSQL_RES *res);
    unsigned int fields = mysql_num_fields(res);std::cout << fields << std::endl;

        查询列数成功。

获取查询结果的列名 

        使用以下函数查询列名。

 MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res); 
//4.3获取查询记录的每一列的列名称MYSQL_FIELD* fields_name=mysql_fetch_field(res);for(int i=0;i<fields;i++){std::cout<<fields_name[i].name<<"\t";}std::cout<<std::endl;

        查询结果的列名称获取成功。

获取查询结果所有数据

        1.先使用以下函数获取查询结果的所有行数据。

 MYSQL_ROW mysql_fetch_row(MYSQL_RES *result); 

        可以将 MYSQL_ROW 看做一个二维数组。

for(int i=0;i<rows;i++){MYSQL_ROW lines=mysql_fetch_row(res);//line[i]表示第几行的数据,直接获取是无法获取的,因为无法知道这一行数据的列数//就相当于如果只知道二维数组的行标不知道列表也是无法访问二维数组的元素的}

        2.通过列数,然后再访问每行的每个元素,最终实现所有查询结果的访问。但是要注意,每列的元素都不应为空,否则会出现一些异常打印的问题。

        基于此,对 students 中为空的字段进行修改。

 std::cout << std::endl;for (int i = 0; i < rows; i++){MYSQL_ROW lines = mysql_fetch_row(res);// line[i]表示第几行的数据,直接获取是无法获取的,因为无法知道这一行数据的列数// 就相当于如果只知道二维数组的行标不知道列表也是无法访问二维数组的元素的for (int j = 0; j < fields; j++){std::cout << lines[j] << "\t";}std::cout << std::endl;}

        查询结果的所有数据获取成功。 

断开链接 

        使用以下函数断开链接。

 void mysql_close(MYSQL *sock);
    free(res);mysql_close(my);

C语言访问mysql数据库整体源码

#include <iostream>
#include <stdlib.h>
#include <string>
#include <mysql/mysql.h>const std::string host = "127.0.0.1";
const std::string user = "jd";
const std::string password = "YJD010918madeinchina...";
const std::string db = "study";
const unsigned int port = 8088;int main()
{std::cout << "client version: " << mysql_get_client_info() << std::endl;// 1.创建mysql句柄MYSQL *my = mysql_init(nullptr);// 2.链接数据库if (mysql_real_connect(my, host.c_str(), user.c_str(), password.c_str(), db.c_str(), port, nullptr, 0) == nullptr){std::cout << "connect failed!" << std::endl;return 1;}// 3.设置链接的编码格式mysql_set_character_set(my, "utf8");std::cout << "connect success!" << std::endl;// 4.进行数据库表操作std::string sql = "select * from students";int code = mysql_query(my, sql.c_str());if (code != 0){std::cout << "execute: " << sql << "failed!" << std::endl;return 2;}std::cout << "execute: " << sql << " success!" << std::endl;// 4.1获取查询的结果到res中MYSQL_RES *res = mysql_store_result(my);// 4.2获取查询的行数int rows = mysql_num_rows(res);std::cout << rows << std::endl;int fields = mysql_num_fields(res);std::cout << fields << std::endl;// 4.3获取查询记录的每一列的列名称MYSQL_FIELD *fields_name = mysql_fetch_field(res);for (int i = 0; i < fields; i++){std::cout << fields_name[i].name << "\t";}// 4.4获取查询结果的每一行的数据std::cout << std::endl;for (int i = 0; i < rows; i++){MYSQL_ROW lines = mysql_fetch_row(res);// line[i]表示第几行的数据,直接获取是无法获取的,因为无法知道这一行数据的列数// 就相当于如果只知道二维数组的行标不知道列表也是无法访问二维数组的元素的for (int j = 0; j < fields; j++){std::cout << lines[j] << "\t";}std::cout << std::endl;}//5.断开链接mysql_close(my);
}

        至此,C语言链接数据库的操作全部完成。

        本期内容到此结束^_^


文章转载自:

http://WDZLDbNT.nfpgc.cn
http://SaRDebFY.nfpgc.cn
http://O7penAV7.nfpgc.cn
http://MrTpaBc5.nfpgc.cn
http://Y1u6jAmR.nfpgc.cn
http://FLKJi04M.nfpgc.cn
http://WCPxyqmL.nfpgc.cn
http://SEP3pUlh.nfpgc.cn
http://ciRKM58Z.nfpgc.cn
http://D9TGv9pC.nfpgc.cn
http://5gnkfgUW.nfpgc.cn
http://erverASd.nfpgc.cn
http://SAluKcNg.nfpgc.cn
http://arvhCMW4.nfpgc.cn
http://pkXPdg8B.nfpgc.cn
http://cXEX6mrF.nfpgc.cn
http://omRClh34.nfpgc.cn
http://VxxZv3bC.nfpgc.cn
http://f9GXEwS4.nfpgc.cn
http://xpo8JUEv.nfpgc.cn
http://dgSXfgwi.nfpgc.cn
http://ik9TVSXK.nfpgc.cn
http://P6tBmUfR.nfpgc.cn
http://tLvUHkXL.nfpgc.cn
http://3iVSecVN.nfpgc.cn
http://yPGaLpQo.nfpgc.cn
http://J5X0HOcR.nfpgc.cn
http://VBWEzfVN.nfpgc.cn
http://ueG4u5Uj.nfpgc.cn
http://M0Jz83Hn.nfpgc.cn
http://www.dtcms.com/wzjs/669722.html

相关文章:

  • 天门市网站建设seo网站架构方案
  • 洛阳微网站建设软件公司起名大全
  • worldpress 建站wordpress末班
  • 企业网站建设实训小结wordpress绑定手机验证
  • Asp.net 手机网站制作企业网站模板php
  • 网页制作公司背景介绍婚纱摄影网站应该如何做优化
  • 国外包装设计欣赏网站医疗器械网站制作
  • 做网站怎么云存储js怎么做网站
  • 沈阳网站建设哪家便宜网站死链接提交
  • 最新网站推广王也道长头像无水印
  • 如何注册网站卖东西做导购网站如何获利
  • 太原网站关键词排名装饰公司315活动网站怎么做
  • 做互联网需要网站吗福州网站建设哪家强
  • 东营+网站建设谷歌关键词热度查询
  • 网站实名认证功能怎么做利用业务时间做的网站与公司有关吗
  • 网站注册账号怎么做北京seo优化网站建设
  • 沧州市宇通网站建设公司烟台网站开发制作
  • 网站建设与网页设计的区别廊坊百度推广网站设计
  • 视频网站开发有哪些功能许昌市网站开发
  • 中国建设招标网站首页做暧暧小视频网站
  • 公厂做网站需要开诚信通吗wordpress引入js
  • 私募基金网站建设网络搭建是什么意思
  • 网站开发培训要多少钱网站建设二级菜单
  • 河南能源企业网站建设40个界面ui外包多少钱
  • 哪些网站可以免费做代码企业网络营销策划案
  • 营口网站开发公司开发软件用什么工具
  • 用国外服务器做网站建设一个公司网站大概多少钱
  • 广州做网站需要多少钱驻马店专业做网站公司
  • 网站做淘客 还可以吗百度知道登录入口
  • 中国太空空间站为什么没有人做像58一样的网站