⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 月光软件站 - 编程文档 - 其他语言 - 详细的mysql c api [转].htm

📁 cmpp开发文档 cmpp开发文档
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<P>20.4.1 <B style='color:black;background-color:#ffff66'>mysql</B>_affected_rows()<BR>my_ulonglong <B style='color:black;background-color:#ffff66'>mysql</B>_affected_rows(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>) 
<P>20.4.1.1 说明<BR>返回受到最后一个UPDATE、DELETE或INSERT查询影响(变化)的行数。可以在针对UPDATE、DELETE或INSERT语句的<B style='color:black;background-color:#ffff66'>mysql</B>_query()之后立即调用。对于SELECT语句,<B style='color:black;background-color:#ffff66'>mysql</B>_affected_rows()的功能于<B style='color:black;background-color:#ffff66'>mysql</B>_num_rows()相同。 
<P><B style='color:black;background-color:#ffff66'>mysql</B>_affected_rows()目前以一个宏(macro)来实现。 
<P>20.4.1.2 返回值<BR>大于零的一个整数表示受到影响或检索出来的行数。零表示没有匹配查序中WHERE子句的记录或目前还没有查询被执行。-1表示查询返回一个错误,或对于一个SELECT查询,<B style='color:black;background-color:#ffff66'>mysql</B>_affected_rows()在调用<B style='color:black;background-color:#ffff66'>mysql</B>_store_result()之前被调用。 
<P>20.4.1.3 错误<BR>没有。 
<P>20.4.1.4 范例<BR><B style='color:black;background-color:#ffff66'>mysql</B>_query(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>,"UPDATE products SET cost=cost*1.25 WHERE group=10");<BR>printf("%d products updated",<B style='color:black;background-color:#ffff66'>mysql</B>_affected_rows(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>));<BR><BR>20.4.2 <B style='color:black;background-color:#ffff66'>mysql</B>_close()<BR>void <B style='color:black;background-color:#ffff66'>mysql</B>_close(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>) 
<P>20.4.2.1 说明<BR>关闭一个以前打开了的连接。如果句柄由<B style='color:black;background-color:#ffff66'>mysql</B>_init()或<B style='color:black;background-color:#ffff66'>mysql</B>_connect()自动分配,<B style='color:black;background-color:#ffff66'>mysql</B>_close()也释放被<B style='color:black;background-color:#ffff66'>mysql</B>指向的连接句柄。 
<P>20.4.2.2 返回值<BR>没有。 
<P>20.4.2.3 错误<BR>CR_COMMANDS_OUT_OF_SYNC <BR>命令以一个不正确的次序被执行。 <BR>CR_SERVER_GONE_ERROR <BR><B style='color:black;background-color:#ffff66'>MySQL</B>服务器关闭了。 <BR>CR_SERVER_LOST <BR>对服务者的连接在查询期间失去。 <BR>CR_UNKNOWN_ERROR <BR>发生一个未知的错误。 
<P>20.4.3 <B style='color:black;background-color:#ffff66'>mysql</B>_connect()<BR><B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>_connect(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>, const char *host, const char *user, const char *passwd) 
<P>20.4.3.1 说明<BR>该函数不推荐使用,而更好使用<B style='color:black;background-color:#ffff66'>mysql</B>_real_connect()。 
<P><B style='color:black;background-color:#ffff66'>mysql</B>_connect()试图建立一个对运行在host的一个<B style='color:black;background-color:#ffff66'>MySQL</B>数据库引擎的连接。<B style='color:black;background-color:#ffff66'>mysql</B>_connect()必须在你能执行其他<B style='color:black;background-color:#99ff99'>API</B>函数之前成功地完成,除了<B style='color:black;background-color:#ffff66'>mysql</B>_get_client_info()。 
<P>参数的含义与<B style='color:black;background-color:#ffff66'>mysql</B>_connect()相应的参数相同,不同的是连接参数可以是NULL。在这种情况下,<B style='color:black;background-color:#A0FFFF'>C</B> <B style='color:black;background-color:#99ff99'>API</B> 自动为连接结构分配内存,并且当你调用<B style='color:black;background-color:#ffff66'>mysql</B>_close(),释放它。这种方法的缺点是如果连接失败,你不能检索出一条错误消息。(为了从<B style='color:black;background-color:#ffff66'>mysql</B>_errno()或<B style='color:black;background-color:#ffff66'>mysql</B>_error()得到错误信息,你必须提供一个有效的<B style='color:black;background-color:#ffff66'>MYSQL</B>指针。) 
<P>20.4.3.2 返回值<BR>同<B style='color:black;background-color:#ffff66'>mysql</B>_real_connect()。 
<P>20.4.3.3 错误<BR>同<B style='color:black;background-color:#ffff66'>mysql</B>_real_connect()。 
<P><BR>20.4.4<B style='color:black;background-color:#ffff66'>mysql</B>_change_user()<BR>my_bool <B style='color:black;background-color:#ffff66'>mysql</B>_change_user(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>, const char *user, const char *password, const char *db) 
<P>20.4.4.1 说明<BR>改变用户并且使得由db指定数据库成为由<B style='color:black;background-color:#ffff66'>mysql</B>指定的连接上的缺省(当前)数据库。在随后的查询中,这个数据库是不包括一个明确的数据库指定符的表引用的缺省值。 
<P>这个函数功能在<B style='color:black;background-color:#ffff66'>MySQL</B> 3.23.3中引入。 
<P>除非连接的用户能被认证或如果他没有权限使用数据库,<B style='color:black;background-color:#ffff66'>mysql</B>_change_user()失败。在这种情况下,用户和数据库都没被改变。 
<P>如果你不想有一个缺省数据库,db参数可以被设置为NULL。 
<P>20.4.4.2 返回值<BR>成功,零。如果发生一个错误发生,非零。 
<P>20.4.4.3 错误<BR>与你能从<B style='color:black;background-color:#ffff66'>mysql</B>_real_connect()得到的相同。 
<P>CR_COMMANDS_OUT_OF_SYNC <BR>命令以一个不正确的次序被执行。 <BR>CR_SERVER_GONE_ERROR <BR><B style='color:black;background-color:#ffff66'>MySQL</B>服务者关闭了。 <BR>CR_SERVER_LOST <BR>对服务者的连接在查询期间失去。 <BR>CR_UNKNOWN_ERROR <BR>发生一个未知的错误。 <BR>ER_UNKNOWN_COM_ERROR <BR><B style='color:black;background-color:#ffff66'>MySQL</B>服务器未实现这个命令(可能是一个老的服务器) <BR>ER_ACCESS_DENIED_ERROR <BR>用户或口令错误。 <BR>ER_BAD_DB_ERROR <BR>数据库不存在。 <BR>ER_DBACCESS_DENIED_ERROR <BR>用户没有数据库的存取权利。 <BR>ER_WRONG_DB_NAME <BR>数据库名字太长。 <BR>20.4.4.4 范例<BR>if (<B style='color:black;background-color:#ffff66'>mysql</B>_change_user(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>, "user", "password", "new_database"))<BR>{<BR>&nbsp; fprintf(stderr, "Failed to change user. &nbsp;Error: %s\n",<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <B style='color:black;background-color:#ffff66'>mysql</B>_error(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>));<BR>}<BR><BR>20.4.5 <B style='color:black;background-color:#ffff66'>mysql</B>_create_db()<BR>int <B style='color:black;background-color:#ffff66'>mysql</B>_create_db(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>, const char *db) 
<P>20.4.5.1 说明<BR>创建由db参数命名的数据库。 
<P>这个函数不推荐,而最好使用<B style='color:black;background-color:#ffff66'>mysql</B>_query()发出一条SQL CREATE DATABASE语句。 
<P>20.4.5.2 返回值<BR>如果数据库成功地被创造,零。如果发生一个错误,非零。 
<P>20.4.5.3 错误<BR>CR_COMMANDS_OUT_OF_SYNC <BR>命令以一个不正确的次序被执行。 <BR>CR_SERVER_GONE_ERROR <BR><B style='color:black;background-color:#ffff66'>MySQL</B>服务器关闭了。 <BR>CR_SERVER_LOST <BR>对服务者的连接在查询期间失去。 <BR>CR_UNKNOWN_ERROR <BR>发生一个未知的错误。 &nbsp;<BR>20.4.5.4 范例<BR>if(<B style='color:black;background-color:#ffff66'>mysql</B>_create_db(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>, "my_database"))<BR>{<BR>&nbsp; fprintf(stderr, "Failed to create new database. &nbsp;Error: %s\n",<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <B style='color:black;background-color:#ffff66'>mysql</B>_error(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>));<BR>}<BR><BR>20.4.6 <B style='color:black;background-color:#ffff66'>mysql</B>_data_seek()<BR>void <B style='color:black;background-color:#ffff66'>mysql</B>_data_seek(<B style='color:black;background-color:#ffff66'>MYSQL</B>_RES *result, unsigned long long offset) 
<P>20.4.6.1 说明<BR>在一个查询结果集合中定位任意行。这要求结果集合结构包含查询的全部结果,这样<B style='color:black;background-color:#ffff66'>mysql</B>_data_seek()可以仅需与<B style='color:black;background-color:#ffff66'>mysql</B>_store_result()一起使用,不是与<B style='color:black;background-color:#ffff66'>mysql</B>_use_result()。 
<P>偏移量应该是从0到<B style='color:black;background-color:#ffff66'>mysql</B>_num_rows(result)-1范围的一个值。 
<P>20.4.6.2 返回值<BR>无。 
<P>20.4.6.3 错误<BR>无。 
<P>  
<P>20.4.7 <B style='color:black;background-color:#ffff66'>mysql</B>_debug()<BR>void <B style='color:black;background-color:#ffff66'>mysql</B>_debug(char *debug) 
<P>20.4.7.1 说明<BR>用一个给定字符串做一个DBUG_PUSH。<B style='color:black;background-color:#ffff66'>mysql</B>_debug()使用Fred Fish 调试库。为了使用这个函数,你必须编译客户库以支持调试。见G.1 调试一个<B style='color:black;background-color:#ffff66'>MySQL</B>服务器和节G.2 调试一个<B style='color:black;background-color:#ffff66'>MySQL</B>客户。 
<P>20.4.7.2 返回值<BR>无。 
<P>20.4.7.3 错误<BR>无。 
<P>20.4.7.4 范例<BR>下面所示的调用使得客户库在客户机器上的&#8220;/tmp/client.trace&#8221;中产生一个跟踪文件: 
<P><B style='color:black;background-color:#ffff66'>mysql</B>_debug("d:t:O,/tmp/client.trace");<BR><BR>20.4.8 <B style='color:black;background-color:#ffff66'>mysql</B>_drop_db()<BR>int <B style='color:black;background-color:#ffff66'>mysql</B>_drop_db(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>, const char *db) 
<P>20.4.8.1 说明<BR>抛弃由db参数命名的数据库。 
<P>这个函数不推荐,而最好使用<B style='color:black;background-color:#ffff66'>mysql</B>_query()发出一条SQL DROP DATABASE语句。 
<P>20.4.8.2 返回值<BR>如果数据库成功地被破抛弃,零。如果发生一个错误,非零。 
<P>20.4.8.3 错误<BR>CR_COMMANDS_OUT_OF_SYNC <BR>命令以一个不正确的次序被执行。 <BR>CR_SERVER_GONE_ERROR <BR><B style='color:black;background-color:#ffff66'>MySQL</B>服务器关闭了。 <BR>CR_SERVER_LOST <BR>对服务者的连接在查询期间失去。 <BR>CR_UNKNOWN_ERROR <BR>发生一个未知的错误。 &nbsp;<BR>20.4.8.4 范例<BR>if(<B style='color:black;background-color:#ffff66'>mysql</B>_drop_db(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>, "my_database"))<BR>&nbsp;fprintf(stderr, "Failed to drop the database: Error: %s\n",<BR>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<B style='color:black;background-color:#ffff66'>mysql</B>_error(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>));<BR><BR>20.4.9 <B style='color:black;background-color:#ffff66'>mysql</B>_dump_debug_info()<BR>int <B style='color:black;background-color:#ffff66'>mysql</B>_dump_debug_info(<B style='color:black;background-color:#ffff66'>MYSQL</B> *<B style='color:black;background-color:#ffff66'>mysql</B>) 
<P>20.4.9.1 说明<BR>指示服务者将一些调试信息写入日志文件。连接的用户对此必须有precess权限才能工作。 
<P>20.4.9.2 返回值<BR>如果命令成功,零。如果发生一个错误,非零。 
<P>20.4.9.3 错误<BR>CR_COMMANDS_OUT_OF_SYNC <BR>命令以一个不正确的次序被执行。 <BR>CR_SERVER_GONE_ERROR <BR><B style='color:black;background-color:#ffff66'>MySQL</B>服务者关闭了。 <BR>CR_SERVER_LOST <BR>对服务器的连接在查询期间失去。 <BR>CR_UNKNOWN_ERROR <BR>发生一个未知的错误。 <BR>  
<P>20.4.10 <B style='color:black;background-color:#ffff66'>mysql</B>_eof()<BR>my_bool <B style='color:black;background-color:#ffff66'>mysql</B>_eof(<B style='color:black;background-color:#ffff66'>MYSQL</B>_RES *result) 
<P>20.4.10.1 说明<BR>这个函数不推荐,而使用<B style='color:black;background-color:#ffff66'>mysql</B>_errno()或<B style='color:black;background-color:#ffff66'>mysql</B>_error()。 
<P><B style='color:black;background-color:#ffff66'>mysql</B>_eof()确定是否已经读到了一个结果集合的最后一行。 
<P>如果你从成功的<B style='color:black;background-color:#ffff66'>mysql</B>_store_result()调用获得一个结果集合,客户程序用一个操作收到全部集合。在这种情况下,从<B style='color:black;background-color:#ffff66'>mysql</B>_fetch_row()返回一个NULL总是意味着已经到达了结果集合的尾部,没必要调用<B style='color:black;background-color:#ffff66'>mysql</B>_eof()。 
<P>在另一方面,如果你使用<B style='color:black;background-color:#ffff66'>mysql</B>_use_result()初始化一个结果集合的检索,该集合的行随着你重复调用<B style='color:black;background-color:#ffff66'>mysql</B>_fetch_row()一个一个地从服务器获得。因为在这个过程中在连接上可能发生一个错误,从<B style='color:black;background-color:#ffff66'>mysql</B>_fetch_row()返回一个NULL值并不意味着集合正常到达了尾部。在这种情况下,你能使用<B style='color:black;background-color:#ffff66'>mysql</B>_eof()确定发生了什么。如果到达结果集合的尾部,<B style='color:black;background-color:#ffff66'>mysql</B>_eof()返回非零值,并且如果发生一个错误,返回零。 
<P>在时间上,<B style='color:black;background-color:#ffff66'>mysql</B>_eof()先于标准<B style='color:black;background-color:#ffff66'>MySQL</B>错误函数<B style='color:black;background-color:#ffff66'>mysql</B>_errno()和<B style='color:black;background-color:#ffff66'>mysql</B>_error()。因为这些错误函数提供相同的信息,他们的使用更好<B style='color:black;background-color:#ffff66'>mysql</B>_eof(),它现在不建议使用。(事实上,他们提供更多的信息,因为<B style='color:black;background-color:#ffff66'>mysql</B>_eof()值返回一个布尔值,而错误函数指出当发生错误时的出错原因。) 
<P>20.4.10.2 返回值<BR>如果发生一个错误,零。如果到达结果集合的结束,非零。 
<P>20.4.10.3 错误<BR>无。 
<P>20.4.10.4 范例<BR>下列例子显示你必须如何使用<B style='color:black;background-color:#ffff66'>mysql</B>_eof(): 
<P><B style='color:black;background-color:#ffff66'>mysql</B>_query(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>,"SELECT * FROM some_table");<BR>result = <B style='color:black;background-color:#ffff66'>mysql</B>_use_result(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>);<BR>while((row = <B style='color:black;background-color:#ffff66'>mysql</B>_fetch_row(result)))<BR>{<BR>&nbsp; &nbsp;// do something with data<BR>}<BR>if(!<B style='color:black;background-color:#ffff66'>mysql</B>_eof(result)) &nbsp;// <B style='color:black;background-color:#ffff66'>mysql</B>_fetch_row() failed due to an error<BR>{<BR>&nbsp; &nbsp;fprintf(stderr, "Error: %s\n", <B style='color:black;background-color:#ffff66'>mysql</B>_error(&amp;<B style='color:black;background-color:#ffff66'>mysql</B>));<BR>} 
<P>然而,你可以用标准<B style='color:black;background-color:#ffff66'>MySQL</B>错误函数完成同样的效果: 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -