有没有哪个网站能够做简历,全国企业信用信息平台,网页制作工具的应用及页面制作实验报告,用nas 做网站环境#xff1a;5.7.42-0ubuntu0.18.04.1 (Ubuntu)
mysql接口介绍
初始化mysql指针 用来生成MySQL对象#xff0c;返回值为MySQL*#xff0c;MySQL*是MySQL对象的指针。 MySQL在mysql.h中是一个结构体
链接数据库
初始化完毕之后#xff0c;必须先链接数据库#xff…环境5.7.42-0ubuntu0.18.04.1 (Ubuntu)
mysql接口介绍
初始化mysql指针 用来生成MySQL对象返回值为MySQL*MySQL*是MySQL对象的指针。 MySQL在mysql.h中是一个结构体
链接数据库
初始化完毕之后必须先链接数据库在进行后续操作。mysql网络部分是基于TCP/IP的
第一个参数填之前初始化的MySQL*指针第二个参数填要连接的主机IP地址如果主机为 NULL 或字符串“localhost”则假定连接到本地主机。在 Unix 上客户端使用 Unix 套接字文件进行连接。 unix_socket 参数或 MYSQL_UNIX_PORT 环境变量可用于指定套接字名称。否则使用TCP/IP连接。第三个参数填要连接的用户名第四个参数填要登录该用户使用的密码无密码填NULL第五个参数填要使用的数据库名字第六个参数填主机端口号主机参数决定连接的类型。如果 port 不为 0则该值用作 TCP/IP 连接的端口号。第七个参数主机参数决定连接的类型。如果 unix_socket 不为 NULL则该字符串指定要使用的套接字或命名管道。第八个参数一般填0填其他则启用其他功能具体看官网
下发mysql命令 第一个参数上面已经介绍过第二个参数为要执行的sql语句,如“select * from table”第三个参数为第二个参数的大小即strlen(length)
获取执行结果
sql执行完以后如果是查询语句我们还要读取数据如果updateinsert等语句那么就看下操 作成功与否即可。
该函数会调用MYSQL变量中的st_mysql_methods中的 read_rows 函数指针来获取查询的结果。同时该函数会返回MYSQL_RES 这样一个变量该变量主要用于保存查询的结果。同时该函数malloc了一片内存空间来存储查询过来的数据所以我们一定要记得调用void mysql_free_result(MYSQL_RES *result),不然是肯定会造成内存泄漏的。执行完mysql_store_result以后其实数据都已经在MYSQL_RES 变量中了下面的api基本就是读取MYSQL_RES 中的数据。 四个接口的作用分别是返回结果集中的行数返回结果集中的列数将结果集的一列的定义返回为 MYSQL_FIELD 结构。该结构中的name字段就是列名mysql_fetch_row() 检索结果集的下一行即它是一行一行读取的不是所有的都返回到MYSQL_ROW中
代码演示
数据库名称为11_30表名为stu
#includemysql/mysql.h
#includestdio.h
#includeiostream
#includestring.h
using namespace std;const char *host NULL;
const char *user root;
const char *passwd NULL;
const char *db 11_30;
unsigned int port 0;
const char *unix_socket NULL;
unsigned long clientflag 0;void mysql_module()
{ //初始化MYSQL* mysql_ mysql_init(NULL);//建立连接if(mysql_real_connect(mysql_, host, user, passwd, db, port, unix_socket, clientflag)NULL){cout连接错误endl;coutmysql_errno(mysql_)endl;exit(-1);}mysql_set_character_set(mysql_, utf8); // 设置默认字符集//查询语句const char* stmt_strselect* from stu;if(mysql_real_query(mysql_,stmt_str,strlen(stmt_str))!0){cout执行查询失败endl;coutmysql_errno(mysql_)endl;exit(-1);}//获取查询结果保存在MYSQL_RES中MYSQL_RES* resNULL;res mysql_store_result(mysql_);if(resNULL){perror(返回结果集失败或者为空);printf(%u\n,mysql_errno(mysql_));exit(-1);}uint64_t rows mysql_num_rows(res);//获取行数unsigned int cols mysql_num_fields(res);//获取列数MYSQL_FIELD * filed mysql_fetch_fields(res);//获取列名cout行rowsendl;cout列colsendl;//打印结果集for(int i0;icols;i){printf(%s ,filed[i].name);}printf(\n);for(int i0;irows;i){MYSQL_ROW content mysql_fetch_row(res);//获取结果内容for(int j0;jcols;j)printf(%s ,content[j]);printf(\n);}mysql_free_result(res);mysql_close(mysql_);//关闭连接
}
int main(){mysql_module();return 0;
}打印结果