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指向的连接句柄。
- 返回值:无
- 错误:无