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

网站设计策划书 模板/网店推广方案范文

网站设计策划书 模板,网店推广方案范文,郑州app开发多少钱,如何电话推销客户做网站1 简介 用C语言连接MySQL数据库有两个步骤: 1)初始化一个连接句柄结构 2)建立连接 2 库函数 2.1 函数mysql_init 初始化一个连接句柄结构函数原型: MYSQL *mysql_init(MYSQL * mysql); 参数说明: mysql&#xff1a…

1 简介

用C语言连接MySQL数据库有两个步骤:
1)初始化一个连接句柄结构
2)建立连接

2 库函数

2.1 函数mysql_init

初始化一个连接句柄结构

函数原型:
MYSQL *mysql_init(MYSQL * mysql);
参数说明:
mysql:为NULL,则分配一个(返回其指针)。或按照传入的结构指针进行初始化。
MYSQL:返回值,若为NULL表示出错。

两种常用的方法:

MYSQL my_connection;
mysql_init(&my_connection);//以参数传出
或者
MYSQL *conn_ptr;
conn_ptr = mysql_init(NULL);//以返回值传出

2.2 函数mysql_options

可用于设置额外的连接选项,并影响连接的行为。一次设置一个,可多次调用该函数来设置数个选项。

应在mysql_init()之后、以及mysql_connect()或mysql_real_connect()之前调用mysql_options()。

函数原型:
int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg);
参数说明:
int:返回值,该函数成功时返回0。如果使用了未知选项,返回非0值。

2.3 函数mysql_real_connect

与数据库建立连接。
函数原型:
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)
参数说明:
host:该值必须是主机名或IP地址。如果“host”是NULL或字符串"localhost",连接将被视为与本地主机的连接。
user:参数包含用户的MySQL登录ID。如果“user”是NULL或空字符串"",用户将被视为当前用户。在UNIX环境下,它是当前的登录名。
passwd:参数包含用户的密码。如果“passwd”是NULL,仅会对该用户的(拥有1个空密码字段的)用户表中的条目进行匹配检查。
db:是数据库名称。如果db为NULL,连接会将默认的数据库设为该值。
port:若不是0,其值将用作TCP/IP连接的端口号。
unix_socket:若不是NULL,该字符串描述了应使用的套接字或命名管道。
client_flag:的值通常为0。
MYSQL:如果连接成功,返回MYSQL*连接句柄。如果连接失败,返回NULL。对于成功的连接,返回值与第1个参数的值相同。

2.4 函数mysql_close

关闭数据库连接
函数原型:
void mysql_close(MYSQL *connection);
参数说明:

2.5 函数mysql_error

函数原型:
const char *mysql_error(MYSQL *mysql)
常用结构:
if(mysql_errno(&mysql))
{// an error occurred
}

2.6 函数mysql_errno

函数原型:
unsigned int mysql_errno(MYSQL *mysql)
参数说明:
int:对于由mysql指定的连接,mysql_errno()返回最近调用的API函数的错误代码,该函数调用可能成功也可能失败。“0”返回值表示未出现错误。

2.7 函数mysql_query

执行由“Null终结的字符串”查询指向的SQL查询。正常情况下,字符串必须包含1条SQL语句,而且不应为语句添加终结分号(‘;’)或“\g”。如果允许多语句执行,字符串可包含多条由分号隔开的语句。
函数原型:
int mysql_query(MYSQL *mysql, const char *query)
参数说明:
int:如果查询成功,返回0。如果出现错误,返回非0值。

2.8 函数mysql_real_query

2.9 函数mysql_affected_rows

返回上次UPDATE更改的行数,上次DELETE删除的行数,或上次INSERT语句插入的行数。对于UPDATE、DELETE或INSERT语句,可在mysql_query()后立刻调用。对于SELECT语句,mysql_affected_rows()的工作方式与mysql_num_rows()类似。
函数原型:
my_ulonglong mysql_affected_rows(MYSQL *mysql)
参数说明:
my_ulonglong:大于0的整数表明受影响或检索的行数。“0”表示UPDATE语句未更新记录,在查询中没有与WHERE匹配的行,或未执行查询。“-1”表示查询返回错误


2.10 函数mysql_use_result

对于成功检索数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN),必须调用mysql_store_result()或mysql_use_result()。

mysql_use_result()将初始化结果集检索,但并不像mysql_store_result()那样将结果集实际读取到客户端。它必须通过对mysql_fetch_row()的调用,对每一行分别进行检索。这将直接从服务器读取结果,而不会将其保存在临时表或本地缓冲区内,与mysql_store_result()相比,速度更快而且使用的内存也更少。客户端仅为当前行和通信缓冲区分配内存,分配的内存可增加到max_allowed_packet字节。

使用mysql_use_result()时,必须执行mysql_fetch_row(),直至返回NULL值,否则,未获取的行将作为下一个检索的一部分返回。

函数原型:
MYSQL_RES *mysql_use_result(MYSQL *mysql)
示例代码:

MYSQL_RES * res_ptr = mysql_use_result(&my_connection);
MYSQL_ROW sqlrow;
if (res_ptr) {while ((sqlrow = mysql_fetch_row(res_ptr))) {printf("We inserted childno %s\n", sqlrow[0]);
}
mysql_free_result(res_ptr);

2.11 函数mysql_store_result

mysql_store_result()将查询的全部结果读取到客户端,分配1个MYSQL_RES结构,并将结果置于该结构中。
如果查询未返回结果集,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()。

函数原型:
MYSQL_RES *mysql_store_result(MYSQL *mysql)

2.12 函数mysql_fetch_row

检索结果集的下一行。在mysql_store_result()之后使用时,如果没有要检索的行,mysql_fetch_row()返回NULL。在mysql_use_result()之后使用时,如果没有要检索的行或出现了错误,mysql_fetch_row()返回NULL。

函数原型:
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)

2.13 函数mysql_free_result

函数原型:
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result)


2.5 示例代码

#include <stdlib.h>
#include <stdio.h>
#include "mysql.h"
int main(int argc, char *argv[]) 
{MYSQL *conn_ptr;//mysql_init()conn_ptr = mysql_init(NULL);if (!conn_ptr) {fprintf(stderr, "mysql_init failed\n");return EXIT_FAILURE;}//mysql_real_connect()conn_ptr = mysql_real_connect(conn_ptr, "127.0.0.1", "root", "","shellge", 0, NULL, 0);if (conn_ptr) {printf("Connection success\n");} else {printf("Connection failed\n");}//mysql_close()mysql_close(conn_ptr);return EXIT_SUCCESS;
}

















http://www.jmfq.cn/news/5092327.html

相关文章:

  • dz 一步一步教你做网站/免费网站代理访问
  • 网站建设自/企业网站推广方案
  • 网站建设及网站推广/百度联盟个人怎么接广告
  • 网站后台做图片尺寸是多大/网上推广赚钱项目
  • 网站怎么做301跳转/免费网站推广网站不用下载
  • 北京网站建设哪家好/百度指数pc版
  • 手工活接单在家做有正规网站吗/seo是谁
  • 如何用ps做网站/广告视频
  • wordpress 做公司网站/关键词搜索站长工具
  • 关于网站开发的开题报告/有哪些推广平台和渠道
  • 翔安区建设网站/免费的网络推广渠道
  • 个人网站做淘宝客商城/好消息tvapp电视版
  • 国内公司网站需要备案/网络推广企划
  • 同样也是做严选的网站/360建站和凡科哪个好
  • 门窗企业网站建设/上海企业seo
  • 万年网站建设/成都网络推广公司
  • 地推/郑州关键词seo
  • 国内用react做的网站/网站优化排名软件推广
  • 有的网站为什么打不开怎么回事/天津关键词优化专家
  • 汕头教育学会网站建设/片多多可以免费看电视剧吗
  • 网站上哪个做相片书好/值得收藏的五个搜索引擎
  • 有哪些网站交互效果做的好的/河南郑州最近的热搜事件
  • 刚做淘客没有网站/seo自媒体运营技巧
  • 天津手机网站建设/武汉网站运营专业乐云seo
  • python建立简易网站/百度推广后台登陆入口
  • 在直播网站做前端注意/推广联盟平台
  • 找深圳网站建设/重庆seo排名方法
  • 芍药居网站建设公司/山西网络营销seo
  • 学软件开发的网站/seo优化排名百度教程
  • 免费自制app软件平台/长沙官网seo技术