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

什么网站做美式软装设计理念私域营销

什么网站做美式软装设计理念,私域营销,项目建设方案包括哪些内容,wordpress nodejs版本目录 一、准备工作 二、数据表操作 (一)初始化数据库 (二)连接数据库 (三)设置字符集 (四)操作数据表 1、插入数据 2、删除数据 3、更新数据 4、查询数据 一、准备工作 在之…

目录

一、准备工作

二、数据表操作

(一)初始化数据库

(二)连接数据库

(三)设置字符集

(四)操作数据表

1、插入数据

2、删除数据

3、更新数据

4、查询数据


一、准备工作

        在之前的文章中都是使用 MySQL 客户端以命令行的形式进行数据库操作,但在实际开发中是以语言级别的形式对数据库进行操作。

        首先需要创建一个用户以供操作,用户管理详见:【MySQL】视图与用户管理-CSDN博客

        其次还需要准备一个测试表:

mysql> create table person(-> id int primary key auto_increment,-> name varchar(20) not null,-> age int not null,-> telephone varchar(20) unique);
Query OK, 0 rows affected (0.02 sec)mysql> insert into person values(1,'张三',18,'123456'), (2,'李四',20,'123789');
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select * from person;
+----+--------+-----+-----------+
| id | name   | age | telephone |
+----+--------+-----+-----------+
|  1 | 张三   |  18 | 123456    |
|  2 | 李四   |  20 | 123789    |
+----+--------+-----+-----------+
2 rows in set (0.00 sec)

        接下来需要配置环境,只要正常下载了 MySQL,它会自动把相关的库也会给配置好,在使用时需要配置好项目的环境以及包含好相应的头文件即可。以下是用于验证代码环境是否配置成功:

# 下载并安装 MySQL 仓库配置
sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm# 更新仓库缓存
sudo dnf update# 安装 MySQL 开发包(包含头文件和链接库)
sudo dnf install mysql-devel
# 若GBK报错
sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
sudo dnf clean all
# 若无效
sudo dnf install mysql-community-devel --nogpgcheck# 查看头文件路径(关键用于 C 编译)
ls /usr/include/mysql    //若输出包含 mysql.h 等头文件,则安装成功

        当配置好坏境以后,我们就可以使用 MySQL 提供的 API 进行编程了。

#include <iostream>
#include <mysql.h>
using namespace std;
int main()
{printf("mysql client Version: %s\n", mysql_get_client_info());return 0;
}

        在编译连接时需要指明 MySQL 头文件以及库文件,以下是makefile文件:

mysql:mysql.cppg++ -o $@ $^ -std=c++11 -I/usr/include/mysql -L/usr/lib64/mysql -lmysqlclient
.PHONY:clean
clean:rm -rf mysql

二、数据表操作

(一)初始化数据库

//初始化数据库
MYSQL *mysql_init(MYSQL *mysql);

作用:初始化数据库,连接数据库前的必要条件;

参数:若传入NULL,则会新建并初始化一个MySQL对象;

           若传入已有的MySQL指针,则会重置该指向的对象;

返回值:成功返回初始化后的对象,失败返回NULL。

(二)连接数据库

        想对数据库进行操作,必须先进行初始化,之后再需要连接数据库。

//连接数据库
MYSQL *mysql_real_connect(MYSQL *mysql,           // 已初始化的 MYSQL 结构体指针const char *host,       // 服务器主机名或 IP 地址const char *user,       // 登录用户名const char *passwd,     // 登录密码const char *db,         // 默认数据库名unsigned int port,      // TCP/IP 端口号(0 表示默认 3306)const char *unix_socket,// Unix 套接字路径(NULL 表示不使用)unsigned long client_flag //客户端标志位(通常为 0)
);

作用:连接数据库;

参数:各个字段意义已在代码中注释;

返回值:成功返回传入的 MySQL 指针,失败返回NULL。

        案例:

#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
const string host = "127.0.0.1";
const string user = "X";
const string passwd = "Mht1412.";
const string db_name = "test";int main()
{MYSQL *mysql = mysql_init(nullptr);if (!mysql){cerr << "初始化失败" << endl;return 1;}if (!mysql_real_connect(mysql, host.c_str(), user.c_str(), passwd.c_str(), db_name.c_str(), 3306, nullptr, 0)){cerr << "数据库连接失败" << endl;return 2;}cout << "数据库连接成功" << endl;mysql_close(mysql); // 关闭MySQLreturn 0;
}

(三)设置字符集

        连接数据库成功后,已经可以正常对表进行操作,但是获取中文会是乱码。这是因为原始默认的字符集时 latin1, 需要设置为 utf8。

//设置字符集
mysql_set_character_set(myfd, "utf8");

(四)操作数据表

        对数据表进行操作使用的是同一个接口,只是传入不同的参数从而达到不同的效果:

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

作用:操作数据表;

参数:指针mysql 为初始化生成的mysql指针,也就是数据库句柄;

            q 为传入的 MySQL 语句。

返回值:成功返回0,失败返回非0。

1、插入数据

#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
const string host = "127.0.0.1";
const string user = "X";
const string passwd = "Mht1412.";
const string db_name = "test";int main()
{MYSQL *mysql = mysql_init(nullptr);if (!mysql){cerr << "初始化失败" << endl;return 1;}if (!mysql_real_connect(mysql, host.c_str(), user.c_str(), passwd.c_str(), db_name.c_str(), 3306, nullptr, 0)){cerr << "数据库连接失败" << endl;return 2;}cout << "数据库连接成功" << endl;string sql = "insert into person values (3, '王五', 19, 456789)";if (mysql_query(mysql, sql.c_str())){cerr << "数据库操作失败" << endl;return 3;}cout << "数据库操作成功" << endl;mysql_close(mysql); // 关闭MySQLreturn 0;
}

         运行结果:

2、删除数据

#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
const string host = "127.0.0.1";
const string user = "X";
const string passwd = "Mht1412.";
const string db_name = "test";int main()
{MYSQL *mysql = mysql_init(nullptr);if (!mysql){cerr << "初始化失败" << endl;return 1;}if (!mysql_real_connect(mysql, host.c_str(), user.c_str(), passwd.c_str(), db_name.c_str(), 3306, nullptr, 0)){cerr << "数据库连接失败" << endl;return 2;}cout << "数据库连接成功" << endl;string sql = "delete from person where id = 3";if (mysql_query(mysql, sql.c_str())){cerr << "数据库操作失败" << endl;return 3;}cout << "数据库操作成功" << endl;mysql_close(mysql); // 关闭MySQLreturn 0;
}

        运行结果:

3、更新数据

#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
const string host = "127.0.0.1";
const string user = "X";
const string passwd = "Mht1412.";
const string db_name = "test";int main()
{MYSQL *mysql = mysql_init(nullptr);if (!mysql){cerr << "初始化失败" << endl;return 1;}if (!mysql_real_connect(mysql, host.c_str(), user.c_str(), passwd.c_str(), db_name.c_str(), 3306, nullptr, 0)){cerr << "数据库连接失败" << endl;return 2;}cout << "数据库连接成功" << endl;string sql = "update person set name='王五' where name='张三'";if (mysql_query(mysql, sql.c_str())){cerr << "数据库操作失败" << endl;return 3;}cout << "数据库操作成功" << endl;mysql_close(mysql); // 关闭MySQLreturn 0;
}

        运行结果:

4、查询数据

        不同于插入、删除与更新操作,查询数据执行成功后是需要显示数据的,因此需要获取查询结果。

//获取查询结果
MYSQL_RES *mysql_store_result(MYSQL *mysql);
//获取查询结果列名
MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *res);、
//获取查询结果行数
unsigned int mysql_num_rows(MYSQL_RES *res);
//获取查询结果列数
unsigned int mysql_num_fields(MYSQL_RES *res);
//获取结果内容
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
//释放存储结果
void mysql_free_result((MYSQL_RES *result);

        其中 MYSQL_RES 结构体在使用层面上可以简单理解为二维数组, MYSQL_ROW 是记录数据表中一行的数据,可以简单理解为迭代器在整个返回的数据内容中进行遍历。

#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
const string host = "127.0.0.1";
const string user = "X";
const string passwd = "Mht1412.";
const string db_name = "test";int main()
{MYSQL *mysql = mysql_init(nullptr);if (!mysql){cerr << "初始化失败" << endl;return 1;}if (!mysql_real_connect(mysql, host.c_str(), user.c_str(), passwd.c_str(), db_name.c_str(), 3306, nullptr, 0)){cerr << "数据库连接失败" << endl;return 2;}cout << "数据库连接成功" << endl;string sql = "select * from person";if (mysql_query(mysql, sql.c_str())){cerr << "数据库操作失败" << endl;return 3;}cout << "数据库操作成功" << endl;// 获取查询结果MYSQL_RES *res = mysql_store_result(mysql);// 获取查询结果行列数unsigned int rows = mysql_num_rows(res);unsigned int fields = mysql_num_fields(res);// 获取查询结果列名MYSQL_FIELD *fifld = mysql_fetch_fields(res);for (int i = 0; i < fields; ++i){cout << fifld[i].name << "\t";}cout << endl;for (int i = 0; i < rows; ++i){// 依次获取查询结果中行信息MYSQL_ROW row = mysql_fetch_row(res);for (int j = 0; j < fields; ++j){cout << row[j] << "\t";}cout << endl;}// 释放查询结果mysql_free_result(res);mysql_close(mysql); // 关闭MySQLreturn 0;
}

        运行结果:

http://www.dtcms.com/wzjs/69384.html

相关文章:

  • 做网站需要有服务器电商运营培训
  • 网站ps照片怎么做怎么制作网页教程
  • 线下引流的八种推广方式东莞seo优化排名推广
  • 网站 建设 业务需求表关键词搜索量查询工具
  • 服装网站制作seo优化易下拉排名
  • 无做a视频网站电脑培训学校哪家好
  • 青岛做网站企业竞价推广是什么意思
  • 织梦网站地图样式医院网站建设方案
  • 怎样用网络挣钱优化游戏的软件
  • 慈善机构网站建设报价广告投放平台排名
  • 福建外贸网站建设百度公司的企业文化
  • 找做课件的网站百度号码
  • 安徽餐饮加盟网站建设seo指的是搜索引擎营销
  • 石家庄城乡建设网站seo算法是什么
  • 如何做话费卡回收网站五种网络营销推广方法
  • 网站开发 模块网页设计框架
  • 企业官网属于什么网站网页设计制作网站教程
  • 996建站网站制作免费推广平台哪些比较好
  • flash网站的优缺点seo网站优化外包
  • 网站关键词优化到首页后怎么做查域名的网址
  • 免费数据网站google play官网入口
  • 网站设计网站建设网站制作域名注册哪个网站好
  • 阿里云cdn wordpressseo优化入门教程
  • 简述网站首页制作过程seo论坛站长交流
  • 万网做网站怎么样app营销模式有哪些
  • 网站建设跑业务百度推广代理
  • 手机界面设计网站百度认证服务平台
  • 网站建设哪个公司b2b
  • 电子商务网站建设深圳优化seo排名
  • 网站备案和域名备案的区别百度一下网页搜索