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

成都网站制作报价新网官网

成都网站制作报价,新网官网,seo营销,苏州建站公司精选苏州聚尚网络目录 1、MySQL结构体的说明 1、MYSQL结构体 2.MYSQL_RES结构体 3. MYSQL_FIELD 2. 接口的使用步骤 3、mysql_init()——MYSQL对象初始化 4、mysql_real_connect()——数据库引擎建立连接 5. mysql_query()——查询数据库某表内容 6、mysql_real_query——执行SQL语句 …   目录 1、MySQL结构体的说明 1、MYSQL结构体 2.MYSQL_RES结构体 3. MYSQL_FIELD  2. 接口的使用步骤 3、mysql_init()——MYSQL对象初始化 4、mysql_real_connect()——数据库引擎建立连接 5. mysql_query()——查询数据库某表内容  6、mysql_real_query——执行SQL语句 7、mysql_store_result()——向客户端检索完整的结果集 8、mysql_fetch_row()——从结果集中获取下一行 9、mysql_field_count()——返回表的列数 10、mysql_fetch_fields()——来获取表头的内容 11、函数原型及参数说明 12、mysql_free_result()——释放结果集使用的内存 13、mysql_close()——关闭数据库连接 1、MySQL结构体的说明 1、MYSQL结构体 连接数据库前必须先创建MYSQL变量此变量在很多Mysql API函数会用到。它包含了一些连接信息等数据。 typedef struct st_mysql { NET net; /* Communication parameters 通讯参数网络相关*/ unsigned char connector_fd; /* ConnectorFd for SSL 加密套接字协议层*/char *host,*user,*passwd,*unix_socket,*server_version, *host_info,*info,*db;//数据库用户名密码主机名Unix套接字版本主机信息unsigned int port,client_flag,server_capabilities; unsigned int protocol_version; unsigned int field_count; unsigned int server_status; unsigned long thread_id; /* Id for connection in server */ my_ulonglong affected_rows; my_ulonglong insert_id; /* id if insert on table with NEXTNR */ my_ulonglong extra_info; /* Used by mysqlshow */ unsigned long packet_length; enum mysql_status status; MYSQL_FIELD *fields; MEM_ROOT field_alloc; my_bool free_me; /* If free in mysql_close */ my_bool reconnect; /* set to 1 if automatic reconnect */ struct st_mysql_options options; char scramble_buff[9]; struct charset_info_st *charset; unsigned int server_language; } MYSQL; 2.MYSQL_RES结构体 MYSQL_RES 结构体中包含了 查询结果集 也就是从数据库中查询到的数据。可以使用mysql_store_result或 mysql_use_result 函数获得。定义如下 typedef struct st_mysql_res {my_ulonglong row_count;MYSQL_FIELD *fields;MYSQL_DATA *data;MYSQL_ROWS *data_cursor;unsigned long *lengths; /* column lengths of current row */MYSQL *handle; /* for unbuffered reads */const struct st_mysql_methods *methods;MYSQL_ROW row; /* If unbuffered read */MYSQL_ROW current_row; /* buffer to current row */MEM_ROOT field_alloc;unsigned int field_count, current_field;my_bool eof; /* Used by mysql_fetch_row *//* mysql_stmt_close() had to cancel this result */my_bool unbuffered_fetch_cancelled; void *extension; } MYSQL_RES; 3. MYSQL_FIELD  3. MYSQL_FIELD 中包含了 字段名、字段类型和 大小等信息。可以重复调用mysql_fetch_field函数获得所有字段的信息 typedef struct st_mysql_field {char *name; /* Name of column */char *org_name; /* Original column name, if an alias */char *table; /* Table of column if column was a field */char *org_table; /* Org table name, if table was an alias */char *db; /* Database for table */char *catalog; /* Catalog for table */char *def; /* Default value (set by mysql_list_fields) */unsigned long length; /* Width of column (create length) */unsigned long max_length; /* Max width for selected set */unsigned int name_length;unsigned int org_name_length;unsigned int table_length;unsigned int org_table_length;unsigned int db_length;unsigned int catalog_length;unsigned int def_length;unsigned int flags; /* Div flags */unsigned int decimals; /* Number of decimals in field */unsigned int charsetnr; /* Character set */enum enum_field_types type; /* Type of field. See mysql_com.h for types */void *extension; } MYSQL_FIELD; 4. MYSQL_ROW这是一个行数据的类型安全(type-safe)的表示。当前它实现为一个计数字节的字符串数组。如果字段值可能包含二进制数据你不能将这些视为空终止串因为这样的值可以在内部包含空字节) 行通过调用mysql_fetch_row()获得。 typedef char **MYSQL_ROW; 例如 从结果集中获取第一行数据如下: | 1 | 孙悟空 | 2022-04-26 17:02:54 | NULL | NULL MYSQL_ROW row mysql_fetch_row(result)); 则row中存储的是 “1” 孙悟空 “2022-04-26 17:02:54” NULL NULL2. 接口的使用步骤 1、首先要包含mysql的头文件并链接mysql动态库。#include mysql.h//创建MYSQL对象句柄 MYSQL* m_mysqlnew mysql; mysql_init(m_mysql);//或者 MYSQL* m_mysqlmysql_init(NULL);//连接 mysql_real_connect()//查询数据 const char * query select * from student; ret mysql_query(connect, query); if(ret ! 0){printf(mysql_query error\n);return ret; }//获取查询的结果集MYSQL_RES *result mysql_store_result(mysql); if(result NULL){printf(mysql_store_result error\n);return -1; }//获取查询的行数 int field_num mysql_field_count(mysql); //获取表头数据 MYSQL_FIELD * fields mysql_fetch_fields(result);//获取每一行的数据MYSQL_ROW row NULL;while(row mysql_fetch_row(result)){for(i 0; i field_num; i){printf(%s \t, row[i]); }printf(\n);}mysql_free_result(result);//释放内存mysql_close(connect);//关闭连接 3、mysql_init()——MYSQL对象初始化 函数原型及参数说明 分配或初始化与 mysql_real_connect() 相适应的MYSQL对象 MYSQL *mysql_init(MYSQL *mysql) 返回值  初始化的MYSQL*句柄。如果无足够内存以分配新的对象返回NULL。 错误,在内存不足的情况下返回NULL。 参数 如果 mysql是NULL指针该函数将分配、初始化、并返回新对象。 否则将初始化对象并返回对象的地址。 如果mysql_init()分配了新的对象应当在程序中调用mysql_close() 来关闭连接以释放对象 4、mysql_real_connect()——数据库引擎建立连接 作用连接数据库引擎通过函数mysql_real_connect()尝试与运行在主机上的MySQL数据库引擎建立连接。 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*连接句柄。如果连接失败返回NULL。对于成功的连接返回值与第1个参数的值相同。 参数说明 mysql前面定义的MYSQL变量hostMYSQL服务器的地址如果“host”是NULL或字符串localhost连接将被视为与本地主机的连接。如果操作系统支持套接字Unix或命名管道Windows将使用它们而不是TCP/IP连接到服务器。user登录用户名如果“user”是NULL或空字符串用户将被视为当前用户。在UNIX环境下它是当前的登录名。passwd登录密码db要连接的数据库名如果db为NULL连接会将默认的数据库设为该值。portMYSQL服务器的TCP服务端口如果“port”不是0其值将用作TCP/IP连接的端口号。注意“host”参数决定了连接的类型。unix_socketunix连接方式。如果unix_socket不是NULL该字符串描述了应使用的套接字或命名管道。注意“host”参数决定了连接的类型。clientflagMysql运行为ODBC数据库的标记一般取0 5. mysql_query()——查询数据库某表内容  4.1、函数原型及参数说明 查询数据库中的某一个表内容通过函数mysql_query()来实现。 int mysql_query(MYSQL *mysql, const char *query) //query为执行的SQL语句对应的字符长串 执行由“Null终结的字符串”查询指向的SQL查询。正常情况下字符串必须包含1条SQL语句而且不应为语句添加终结分号‘;’或“\g”。如果允许多语句执行字符串可包含多条由分号隔开的语句。“多查询执行的C API处理”mysql_query()不能用于包含二进制数据的查询应使用mysql_real_query() 取而代之二进制数据可能包含字符‘\0’mysql_query()会将该字符解释为查询字符串结束。如果希望了解查询是否应返回结果集可使用mysql_field_count()进行检查。 6、mysql_real_query——执行SQL语句 int mysql_real_query(MYSQL *mysql, const char *query, unsigned int length) mysql前面定义的MYSQL变量query:sql语句字符串length:query字符串的长度不包括\0; 说明 对于包含二进制数据的查询你必须使用mysql_real_query()而不是mysql_query()因为二进制代码数据可能包含“\0”字符而且mysql_real_query() 比mysql_query()更快因为它对查询字符串调用strlen()。 返回值 如果查询成功零。如果发生一个错误非零。 7、mysql_store_result()——向客户端检索完整的结果集 函数原型及参数说明 显示查询数据库中数据表的内容mysql_store_result()将mysql_query()查询的全部结果读取到客户端分配1个MYSQL_RES结构上面有介绍并将结果置于该结构中 MYSQL_RES *mysql_store_result(MYSQL *mysql)  返回值 具有多个结果的MYSQL_RES结果集合。如果出现错误返回NULL。 对于成功检索了数据的每个查询SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等必须调用mysql_store_result()或mysql_use_result() 。如果希望了解查询是否应返回结果集可使用mysql_field_count()进行检查。如果查询未返回结果集mysql_store_result()将返回Null指针例如如果查询是INSERT语句。如果读取结果集失败mysql_store_result()还会返回Null指针。通过检查mysql_error()是否返回非空字符串mysql_errno()是否返回非0值或mysql_field_count()是否返回0可以检查是否出现了错误。如果未返回行将返回空的结果集。空结果集设置不同于作为返回值的空指针。一旦调用了mysql_store_result()并获得了不是Null指针的结果可调用mysql_num_rows()来找出结果集中的行数。可以调用mysql_fetch_row()来获取结果集中的行或调用mysql_row_seek()和mysql_row_tell()来获取或设置结果集中的当前行位置。一旦完成了对结果集的操作必须调用mysql_free_result()   8、mysql_fetch_row()——从结果集中获取下一行 MYSQL_ROW mysql_fetch_row(MYSQL_RES* result) //MYSQL_ROW开篇已经说明char ** 类型 下一行的MYSQL_ROW结构。如果没有更多要检索的行或出现了错误返回NULL。在mysql_store_result()之后使用时如果没有要检索的行mysql_fetch_row()返回NULL。在mysql_use_result()之后使用时如果没有要检索的行或出现了错误mysql_fetch_row()返回NULL。行内值的数目由 mysql_num_fields(result) 给出。如果行中保存了调用 mysql_fetch_row()返回的值将按照 row[0]到row[mysql_num_fields(result)-1]访问这些值的指针。可以通过调用mysql_fetch_lengths() 来获得行中字段值的长度。对于空字段以及包含NULL的字段长度为0。通过检查字段值的指针能够区分它们。如果指针为NULL字段为NULL否则字段为空   9、mysql_field_count()——返回表的列数 返回作用在连接上的最近查询的列数。 unsigned int mysql_field_count(MYSQL *mysql)  返回值 表示结果集中列数的无符号整数。 使用说明 该函数的正常使用是在 mysql_store_result() 返回NULL因而没有结果集指针时。在这种情况下可调用 mysql_field_count() 来判定 mysql_store_result() 是否应生成非空结果。这样客户端就能采取恰当的动作而无需知道查询是否是SELECT或类似SELECT的语句。 10、mysql_fetch_fields()——来获取表头的内容 对于结果集返回所有 MYSQL_FIELD 结构的数组。每个结构提供了结果集中1列的字段定义。 MYSQL_FIELD *mysql_fetch_fields(MYSQL_RES *result) //MYSQL_FIELD 开篇已经说明 返回值 关于结果集所有列的MYSQL_FIELD结构的数组。 11、函数原型及参数说明 调用mysql_use_result初始化检索以便于后面一行一行的读取结果集而它本身并没有从服务器读取任何数据这种方式较之第一种速度更快且所需内存更少但它会绑定服务器阻止其他线程更新任何表而且必须重复执行mysql_fetch_row读取数据直至返回NULL否则未读取的行会在下一次查询时作为结果的一部分返回故经常我们使用mysql_store_result   MYSQL_RES * mysql_use_result(MYSQL *mysql); 12、mysql_free_result()——释放结果集使用的内存 释放由mysql_store_result()、mysql_use_result()、mysql_list_dbs()等为结果集分配的内存。完成对结果集的操作后必须调用mysql_free_result()释放结果集使用的内存。 void mysql_free_result(MYSQL_RES *result) 13、mysql_close()——关闭数据库连接 关闭前面打开的连接。如果句柄是由mysql_init()或mysql_connect()自动分配的mysql_close()还将解除分配由mysql指向的连接句柄。 void mysql_close(MYSQL *mysql)
http://www.zqtcl.cn/news/926713/

相关文章:

  • 织梦网站如何做301跳转畅销营销型网站建设电话
  • 新网企业邮箱保定seo
  • 河南国控建设集团招标网站网上注册公司核名流程
  • 推推蛙网站建设云南网站开发费用
  • 网站没服务器行吗价格低廉怎么换个说法
  • 用wordpress编写网站完整网站开发视频教程
  • 电商型网站建设价格ppt制作网站
  • 东莞做个网站查询工商营业执照
  • 从网址怎么看网站的域名租用云服务器多少钱
  • 网站开发技术有个人网页首页设计图片
  • 一站式网站建设平台做电商网站需要做什么准备
  • 网站开发小程序快站模板
  • 江苏集团网站建设智慧养老网站开发
  • 外网网址可以做英语阅读的网站怎么原创视频网站
  • 宁波网站建设流程图自己做网站可以揽业务吗
  • 赤峰市建设网站东胜做网站
  • 有口碑的坪山网站建设微信扫一扫登录网站如何做
  • 自己建网站要花多少钱蓟县网站建设
  • 兖州中材建设有限公司网站wordpress免签约接口
  • 湖北网站seo设计成都疾控最新通告
  • 商丘网站建设推广公司配资网站建设多少钱
  • 手机网站怎么做SEO优化gzip压缩 wordpress
  • 上下框架 网站app营销的核心是什么
  • 网站开发哪里有培训wordpress 主题 网址导航
  • 深圳市宝安区怎么样百度禁止seo推广
  • 手机电商网站 模板常熟做网站优化
  • 免费的logo设计网站网页设计与制作dw
  • 线上调研问卷在哪个网站上做网页设计学生作业
  • 云南高端网站建设网页设计工作室选址依据
  • 免费的编程自学网站互联网公司网站建设ppt