MYSQLC

MYSQLC

函数名含义
mysql_affected_rows()返回上次UPDATE、DELETE或INSERT查询更改/删除/插入的行数。
mysql_close()关闭服务器连接。
mysql_commit()提交事务。
mysql_dump_bebug_info()让服务器将调试信息写入日志。
mysql_errno()返回上次调用的MySQL函数的错误编号。
mysql_error()返回上次调用的MySQL函数的错误消息。
mysql_debug()用给定的字符串执行DBUG_PUSH。
mysql_data_seek()在查询结果集中查找属性行编号。
mysql_escape_string()为了用在SQL语句中,对特殊字符进行转义处理。
mysql_fetch_field()返回下一个表字段的类型。
mysql_fetch_field_direct()给定字段编号,返回表字段的类型。
mysql_fetch_fields()返回所有字段结构的数组。
mysql_fetch_lengths()返回当前行中所有列的长度。
mysql_fetch_row()从结果集中获取下一行
mysql_field_seek()将列光标置于指定的列。
mysql_field_count()返回上次执行语句的结果列的数目。
mysql_field_tell()返回上次mysql_fetch_field()所使用字段光标的位置。
mysql_free_result()释放结果集使用的内存。
mysql_get_client_info()以字符串形式返回客户端版本信息。
mysql_get_client_version()以整数形式返回客户端版本信息。
mysql_get_host_info()返回描述连接的字符串。
mysql_get_server_version()以整数形式返回服务器的版本号。
mysql_get_proto_info()返回连接所使用的协议版本。
mysql_get_server_info()返回服务器的版本号。
mysql_info()返回关于最近所执行查询的信息。
mysql_init()获取或初始化MYSQL结构。
mysql_insert_id()返回上一个查询为AUTO_INCREMENT列生成的ID。
mysql_kill()杀死给定的线程。
mysql_library_end()最终确定MySQL C API库。
mysql_library_init()初始化MySQL C API库。
mysql_list_dbs()返回与简单正则表达式匹配的数据库名称。
mysql_list_fields()返回与简单正则表达式匹配的字段名称。
mysql_list_processes()返回当前服务器线程的列表。
mysql_list_tables()返回与简单正则表达式匹配的表名。
mysql_more_results()检查是否还存在其他结果。
mysql_next_result()在多语句执行过程中返回/初始化下一个结果。
mysql_num_fields()返回结果集中的列数。
mysql_num_rows()返回结果集中的行数。
mysql_options()为mysql_connect()设置连接选项。
mysql_ping()检查与服务器的连接是否工作,如有必要重新连接。
mysql_query()执行指定为“以Null终结的字符串”的SQL查询。
mysql_real_connect()连接到MySQL服务器。
mysql_real_escape_string()考虑到连接的当前字符集,为了在SQL语句中使用,对字符串中的特殊字符进行转义处理。
mysql_real_query()执行指定为计数字符串的SQL查询。
mysql_refresh()刷新或复位表和高速缓冲。
mysql_reload()通知服务器再次加载授权表。
mysql_rollback()回滚事务。
mysql_row_seek()使用从mysql_row_tell()返回的值,查找结果集中的行偏移。
mysql_row_tell()返回行光标位置。
mysql_select_db()选择数据库。
mysql_shutdown()关闭数据库服务器。
mysql_stat()以字符串形式返回服务器状态。
mysql_store_result()检索完整的结果集至客户端。
mysql_thread_id()返回当前线程ID。
mysql_thread_safe()如果客户端已编译为线程安全的,返回1。
mysql_use_result()初始化逐行的结果集检索。
客户端处理结果集

客户端处理结果集的方式还有两种:

通过调用mysql_store_result(),一次性的检索整个结果集。该函数能从服务器获得查询返回的所有行,并把他们保存在客户端。

通过调用mysql_use_result(),对“按行”结果集检索进行初始化处理。该函数能初始化检索结果,但不能从服务器获得任何实际行。

在这两种情况下均能通过调用mysql_fetch_row()访问行。通过mysql_store_result(),mysql_fetch_row()能够访问以前从服务器获得的行。通过mysql_use_result(),mysql_fetch_row()能够实际地检索来自服务器的行。通过调用mysql_fetch_lengths(),能获得关于各行中数据大小的信息。

完成结果集操作后,请调用mysql_free_result()释放结果集使用的内存。

关于个别几个函数的用法再强调一下
1.mysql_store_result()
  • 函数原型:
MYSQL_RES *mysql_store_result(MYSQL *mysql)
  • 说明:

    • 对于成功检索了数据的每个查询(SELECT、SHOW、DESCRIBE、EXPLAIN、CHECK TABLE等),必须调用mysql_store_result()或mysql_use_result() 。
    • 对于其他查询,不需要调用mysql_store_result()或mysql_use_result(),但是如果在任何情况下均调用了mysql_store_result(),它也不会导致任何伤害或性能降低。通过检查mysql_store_result()是否返回0,可检测查询是否没有结果集(以后会更多)。
    • mysql_store_result()将查询的全部结果读取到客户端,分配1个MYSQL_RES结构,并将结果置于该结构中。
  • 查询情况返回值
    查询未返回结果集mysql_store_result()将返回Null指针(例如,如果查询是INSERT语句)
    读取结果集失败mysql_store_result()还会返回Null指针。通过检查mysql_error()是否返回非空字符串,mysql_errno()是否返回非0值
2.mysql_fetch_row():
  • 原型:
MYSQL_ROW mysql_fetch_row(MYSQL_RES *result);
  • 说明:
    • 检索结果集的下一行。在mysql_store_result()之后使用,如果没有要检索的行,mysql_fetch_row()返回NULL
    • 行内值的数目由mysql_num_fields(result)给出。如果行中保存了调用mysql_fetch_row()返回的值,将按照row[0]到row[mysql_num_fields(result)-1],访问这些值的指针。行中的NULL值由NULL指针指明。
    • 可以通过调用mysql_fetch_lengths()来获得行中字段值的长度。对于空字段以及包含NULL的字段,长度为0。通过检查字段值的指针,能够区分它们。如果指针为NULL,字段为NULL,否则字段为空。
  • 返回值:
执行情况后续
执行成功执行下一行的MYSQL_ROW结构。如果没有要检索的行或出现了错误,返回NULL
执行错误含义
CR_SERVER_LOST在查询过程中,与服务器的连接丢失
CR_UNKNOWN_ERROR出现未知错误
3.mysql_free_result():
  • 原型:
void mysql_free_result(MYSQL_RES *result);
  • 说明:
    • 释放由mysql_store_result()、mysql_use_result()、mysql_list_dbs()等为结果集分配的内存。
    • 完成对结果集的操作后,必须调用mysql_free_result()释放结果集使用的内存。
    • 释放完成后,不要尝试访问结果集。
  • 返回值:无
  • 错误:无
4.MYSQL_close():
  • 原型:
void mysql_close(MYSQL *mysql);
  • 说明:
    • 关闭前面打开的连接。如果句柄是由mysql_init()或mysql_connect()自动分配的,mysql_close()还将解除分配由mysql指向的连接句柄。
  • 返回值:无
  • 错误:无
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值