mysql API

来源:互联网 发布:英雄钢笔 知乎 编辑:程序博客网 时间:2024/06/10 04:09

>数据库连接

  MYSQL *         STDCALL mysql_real_connect(MYSQL *mysql, const char *host,

                                           constchar *user,

                                           constchar *passwd,

                                           constchar *db,

                                           unsignedint port,

                                           constchar *unix_socket,

                                           unsignedint clientflag);

参数:

MYSQL *为mysql_init函数返回的指针,host为null链接的是本地的计算机,user是登录的用户名,passwd是登录密码(当mysql默认安装在unix(或类unix)系统中,root账户是没/有密码的,因此用户名使用root,密码为null),db是要连接的数据库,port是MySQL服务器的TCP/IP端口,unix_socket为null时,表明不使用socket或管道机制,最后一个参数经常设置为0。

返回值:成功返回 MYSQL*  值与第一个参数相同 失败返回NULL.

连接错误:

CR_CONN_HOST_ERROR

无法连接到MySQL服务器。

CR_CONNECTION_ERROR

无法连接到本地MySQL服务器。

 CR_IPSOCK_ERROR

无法创建IP套接字。

CR_OUT_OF_MEMORY

内存溢出。

CR_SOCKET_CREATE_ERROR

无法创建Unix套接字。

 CR_UNKNOWN_HOST

无法找到主机名的IP地址。

CR_VERSION_ERROR

协议不匹配,起因于:试图连接到具有特定客户端库(该客户端库使用了不同的协议版本)的服务器。如果使用很早的客户端库来建立与较新的服务器(未使用“--old-protocol”选项开始的)的连接,就会出现该情况。

CR_NAMEDPIPEOPEN_ERROR

无法在Windows平台下创建命名管道。

 

 CR_NAMEDPIPEWAIT_ERROR

在Windows平台下等待命名管道失败。

 CR_NAMEDPIPESETSTATE_ERROR

在Windows平台下获取管道处理程序失败。

 CR_SERVER_LOST

如果connect_timeout > 0,而且在连接服务器时所用时间长于connect_timeout秒,或在执行init-command时服务器消失。

用例:

示例:

MYSQL mysql;
 
mysql_init(&mysql);
mysql_options(&mysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
{
    fprintf(stderr, "Failed to connect to database: Error: %s\\n",
          mysql_error(&mysql));
}

 

>查询

原型:
int mysql_query(MYSQL *connection, const char *query)

 

mysql_query — 发送一条 MySQL 查询
mysql_query() 仅对 SELECT,SHOW,EXPLAIN 或 DESCRIBE 语句返回一个资源标识符,如果查询执行不正确则返回 FALSE。对于其它类型的 SQL 语句,mysql_query() 在执行成功时返回 TRUE,出错时返回 FALSE。非 FALSE 的返回值意味着查询是合法的并能够被服务器执行。这并不说明任何有关影响到的或返回的行数。 很有可能一条查询执行成功了但并未影响到或并未返回任何行。
 
mysql_num_rows 返回记录集包含的行数。

void mysql_data_seek(MYSQL_RES *result, my_ulonglong offset)

函数作用:定位到记录集中指定的行。

参数:

1 记录集指针

2 要偏移到的行号范围:(0到mysql_num_rows(result)-1)。

 

MYSQL_ROW_OFFSET mysql_row_tell(MYSQL_RES *result)

函数作用:返回行光标的当前偏移。

Mysql 查询操作流程:

   mysql_query()[执行指定的sql语句]

>mysql_store_result()[获得查询到的记录集]

> mysql_num_rows[返回查询得到的总行数]

>mysql_data_seek[定位到记录集中指定的行,一般为第一行(行号为0)]

>mysql_row_tell()[返回当前行光标的位置]

 
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 大学生毕业学生登记表涂改了怎么办 c语言挂科了怎么办 吸入腐蚀性气体鼻子流血了怎么办 腰劳损痛的厉害怎么办 两个宝宝斜颈左边力量差怎么办 姿势不正确引起的习惯性斜颈怎么办 一岁宝宝有点斜颈怎么办 六个月宝宝有点斜颈怎么办 5月宝宝有点斜颈怎么办 半岁宝宝头偏怎么办 肌性斜颈成年后怎么办 5个月孩子脖子歪怎么办 宝宝一岁多头歪怎么办 四个月宝宝歪脖子怎么办 1岁宝宝脖子歪怎么办 宝宝脖子是歪的怎么办 小孩脖子睡歪了怎么办 脸部三角区肿了怎么办 面部三角区挤了怎么办 胳膊扭着了肿了怎么办 多囊卵巢综合症治不好怎么办 胳膊受了风发麻怎么办 胳膊抻筋了很疼怎么办 腰抻了怎么办最有效 孩子胳膊抻着了怎么办 胳膊伤筋了疼怎么办 宝宝胳膊抻了疼怎么办 练完普拉提头晕怎么办 生完孩子腰背疼怎么办 宝宝不肯把屎尿怎么办 存的电话删除了怎么办 脚踝的韧带断了怎么办 买了双鞋子想退怎么办 鞋子大了一码怎么办 nba篮球大师身体素质满了怎么办 钉鞋大了一码怎么办 篮球鞋鞋垫会向里面跑怎么办 穿高跟鞋脚肿了怎么办 衣服弄到单车油怎么办 高低床孩子摔下来怎么办 量血压时老紧张怎么办