自己搭建视频播放网站,做网站横幅价格,凉山住房和城乡建设局网站,福州做网站制作文章目录 一、msyql数据库API接口1.初始化mysql_init()——mysql_init2.链接数据库mysql_real_connect——mysql_real_connect3.设置当前客户端的字符集——mysql_set_character_set4.选择操作的数据库——mysql_select_db5.执行sql语句——mysql_query6.保存查询结果到本地——… 文章目录 一、msyql数据库API接口1.初始化mysql_init()——mysql_init2.链接数据库mysql_real_connect——mysql_real_connect3.设置当前客户端的字符集——mysql_set_character_set4.选择操作的数据库——mysql_select_db5.执行sql语句——mysql_query6.保存查询结果到本地——mysql_store_result7.获取结果集中的行数与列数—— mysql_num_rows/mysql_num_fields8.遍历结果集——mysql_fetch_row9.释放结果集——mysql_free_result10.关闭数据库客户端连接销毁句柄——mysql_close11.获取mysql接口执行错误原因——mysql_error创建测试用库和表使用API实现数据的增删改查操作 一、msyql数据库API接口
1.初始化mysql_init()——mysql_init
mysql_init API文档链接别点了也没样例代码反正我是看不懂。
要使用库必须先进行初始化 函数
MYSQL *mysql_init(MYSQL *mysql);参数为空则动态申请句柄空间进行初始化失败返回NULL
样例 2.链接数据库mysql_real_connect——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 client_flag); mysql–初始化完成的句柄host—连接的mysql服务器的地址user—连接的服务器的用户名passwd-连接的服务器的密码db ----默认选择的数据库名称port—连接的服务器的端口 默认0是3306端口unix_socket—通信管道文件或者socket文件通常置NULLclient_flag—客户端标志位通常置0返回值成功返回句柄失败返回NULL
3.设置当前客户端的字符集——mysql_set_character_set
函数
int mysql_set_character_set(MYSQL *mysql, const char *csname)mysql–初始化完成的句柄csname–字符集名称通常“utf8”返回值成功返回0 失败返回非0
4.选择操作的数据库——mysql_select_db
函数
int mysql_select_db(MYSQL *mysql, const char *db)mysql–初始化完成的句柄db-----要切换选择的数据库名称返回值成功返回0 失败返回非0
5.执行sql语句——mysql_query
函数
int mysql_query(MYSQL *mysql, const char *stmt_str) mysql–初始化完成的句柄stmt_str–要执行的sql语句返回值成功返回0 失败返回非0
6.保存查询结果到本地——mysql_store_result
函数
MYSQL_RES *mysql_store_result(MYSQL *mysql) mysql–初始化完成的句柄返回值成功返回结果集的指针 失败返回NULL
7.获取结果集中的行数与列数—— mysql_num_rows/mysql_num_fields
函数
uint64_t mysql_num_rows(MYSQL_RES *result)result–保存到本地的结果集地址返回值结果集中数据的条数 函数
unsigned int mysql_num_fields(MYSQL_RES *result)result–保存到本地的结果集地址返回值结果集中每一条数据的列数
8.遍历结果集——mysql_fetch_row
函数
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result) result–保存到本地的结果集地址返回值实际上是一个char **的指针将每一条数据做成了字符串指针数组 row[0]-第0列 row[1]-第1列并且这个接口会保存当前读取结果位置每次获取的都是下一条数据
9.释放结果集——mysql_free_result
函数
void mysql_free_result(MYSQL_RES *result) result–保存到本地的结果集地址/返回值void
10.关闭数据库客户端连接销毁句柄——mysql_close
函数
void mysql_close(MYSQL *mysql) 11.获取mysql接口执行错误原因——mysql_error
函数
const char *mysql_error(MYSQL *mysql) 创建测试用库和表
库名test_db 表名test_tb{ id(int) age(int) name(varcher32) score(decimal(4,2)) }
create database if not exists test_db;
use test_db;
create table if not exists test_tb( id int primary key auto_increment, age int, name varchar(32), score decimal(4, 2)
); 使用API实现数据的增删改查操作
#includeiostream
#includemysql/mysql.h
#includestring
using namespace std;
int main()
{//1.操作句柄初始化参数为空就动态申请句柄进行初始化MYSQL* mysql mysql_init(NULL);if(mysqlNULL){cerrinit mysql handle failedendl;return -1;}string host 127.0.0.1;string user root;string passwd 123456789.whC;string dp test_db;//2.链接数据库if( mysql_real_connect(mysql,host.c_str(),user.c_str(),passwd.c_str(),dp.c_str(),0,NULL,0)NULL){cerrmysql connect error mysql_error(mysql)endl;return -1;}//3.设置字符集mysql_set_character_set(mysql,utf8);//4.选择数据库int ret mysql_select_db(mysql,test_db);if(ret!0){cerrselect db errorendl;}//增 // string sql insert into test_tb (age,name,score)values(18,whc,12.33);; // ret mysql_query(mysql,sql.c_str());// if(ret!0)// {// cerrmysql query select errorendl;// }//改string sql1 update test_tb set age100 where id2;;ret mysql_query(mysql,sql1.c_str());if(ret!0){cerrmysql query update errorendl;}string sql2 delete from test_tb where id 6;;//删// mysql_query(mysql,sql2.c_str());//查string sql3 select * from test_tb;;//执行语句ret mysql_query(mysql,sql3.c_str());if(ret!0){cerrmysql query select errorendl;return -1;}//保存查询结果到本地MYSQL_RES* result mysql_store_result(mysql);//获取结果集中的行数uint64_t row_nums mysql_num_rows(result);//获取结果集中的列数unsigned int field_nums mysql_num_fields(result);coutrow_nums field_numsendl;//遍历结果集MYSQL_ROW row;for(int i 0;irow_nums;i){row mysql_fetch_row(result);for(int j 0;jfield_nums;j){coutrow[j] ;}coutendl;}//释放结果集mysql_free_result(result);//关闭数据库客户端连接销毁句柄mysql_close(mysql);return 0;
}