转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> MySql >> 正文
详细的MySQL C API [转]         ★★★★

详细的MySQL C API [转]

作者:闵涛 文章来源:闵涛的学习笔记 点击数:3433 更新时间:2009/4/22 20:49:07
MYSQL *mysql)

第二中形式在MySQL 3.22.24或更新版本上不能工作。为了传递一个MYSQL* 参数,你必须使用unsigned int mysql_field_count(MYSQL *mysql)。

20.4.35.1 说明
在结果集合中返回列的数量。

注意,你也可以通过一个指向一个结果集合或一个连接句柄的指针获得列的数量。如果mysql_store_result()或mysql_user_result()返回NULL,你将使用连接句柄(而这样你没有结果集合指针)。在这种情况下,你可以调用mysql_field_count()确定mysql_store_result()是否应该产生非空的结果。这允许客户程序采取成正确的行动,不必知道查询是否是一个SELECT(或类SELECT)语句。下面被显示出的例子说明这怎么可以被做。

见20.4.51 为什么在mysql_query()返回成功后,mysql_store_result()有时返回NULL?。

20.4.35.2 返回值
表示一个结果集合中字段数量的一个无符号整数。

20.4.35.3 错误
无。

20.4.35.4 范例
MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;

if (mysql_query(&mysql,query_string))
{
   // error
}
else // query succeeded, process any data returned by it
{
   result = mysql_store_result(&mysql);
   if (result)  // there are rows
   {
       num_fields = mysql_num_fields(result);
       // retrieve rows, then call mysql_free_result(result)
   }
   else  // mysql_store_result() returned nothing; should it have?
   {
       if (mysql_errno(&mysql))
{
          fprintf(stderr, "Error: %s\n", mysql_error(&mysql));
}
       else if (mysql_field_count(&mysql) == 0)
       {
           // query does not return data
           // (it was not a SELECT)
           num_rows = mysql_affected_rows(&mysql);
       }
   }
}

另一个选择(如果你知道你查询应该返回了一个结果结合)是用mysql_field_count(&mysql) = 0的一个检查来代替mysql_errno(&mysql)。这只会发生在出错了的情形。


20.4.36 mysql_num_rows()
my_ulonglong mysql_num_rows(MYSQL_RES *result)

20.4.36.1 说明
在结果集合中返回行的数量。

mysql_num_rows()的使用取决于你是否使用mysql_store_result()或mysql_use_result()返回一个结果集合。如果你使用mysql_store_result(),mysql_num_rows()可以马上被调用。如果你使用mysql_use_result(),mysql_num_rows()将不会返回正确的值,直到在结果集合中的所有行均被检索了。

20.4.36.2 返回值
在结果集合中行的数量。

20.4.36.3 错误
无。

20.4.37 mysql_options()
int mysql_options(MYSQL *mysql, enum mysql_option option, const char *arg)

20.4.37.1 说明
能用于设置额外连接选项并且影响一个连接的行为。这个函数可以被多次调用来设置多个选项。

mysql_options()应该在mysql_init()之后和mysql_connect()或mysql_real_connect()之前调用。

option参数是你想要设置的选项;arg参数是选项的值。如果选项是一个整数,那么arg应该指向整数值。

可能的选项值:

选项  参数类型  功能  
MYSQL_OPT_CONNECT_TIMEOUT  unsigned int *  以秒计的连接超时。  
MYSQL_OPT_COMPRESS  不使用 使用压缩的客户机/服务器协议。  
MYSQL_OPT_NAMED_PIPE  不使用 使用命名管道连接一个在NT上的MySQL服务器。  
MYSQL_INIT_COMMAND  char *  当连接MySQL服务器时执行的命令。当重新连接时,将自动重新执行。  
MYSQL_READ_DEFAULT_FILE  char *  从命名的选项文件而不是从“my.cnf”读取选项。
MYSQL_READ_DEFAULT_GROUP  char *  从“my.cnf”或用MYSQL_READ_DEFAULT_FILE指定的文件中的命名组中读取选项。

注意,如果你使用MYSQL_READ_DEFAULT_FILE或MYSQL_READ_DEFAULT_GROUP,总是读取client。

在选项文件中指定的组可能包含下列选项:

compress  使用压缩的客户机/服务器协议。  
database  如果在连接命令中没有指定数据库,使用这个数据库。
debug  调试选项
host  缺省主机名
init-command  在连接MySQL服务器时,执行的命令。当重新连接时,将自动重新执行。  
password  缺省口令
pipe  使用命名管道连接一个在NT上的MySQL服务器。  
port  缺省端口号
return-found-rows  告诉mysql_info()返回找到的行,而不是在使用UPDATE时,返回更新的行。  
socket  缺省套接字号
timeout  以秒计的连接超时。  
user  缺省用户


上一页  [1] [2] [3] [4] 


[网页制作]DreamWeaver+Css轻松实现网页段落首行缩进!  [网页制作]DIV+CSS+javascript实现DIV对象显示在页面任何位置…
[网页制作]div+css实现网页模块或栏目拖动(即拖拽效果)  [网页制作]XHTML+CSS兼容性解决方案
[网页制作]网页设计之css+div PK table+css  [网页制作]DIV+CSS三行两列经典布局
[网页制作]Div+Css页面布局—实现DIV自适应高度  [网页制作]Div+Css关键字—margin缩进(用法)
[网页制作]Div+Css菜鸟级网站导航栏代码  [网页制作]可折叠、关闭的文章显示栏目div+css源代码示例
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台