<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[怎样用c/c++编程连接mysql数据库？ ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 20 Mar 2008 07:51:39 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	http://www.mysql.com/doc/en/C.html&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;[转贴自http://homepage.qdcatv.com.cn/antonio/mysql/mysql.htm]&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;执行一个查询有以下几个步骤要做。首先执行一个查询，然后保存结果，&nbsp;&nbsp; <br/>&nbsp;&nbsp;得到的是一个子集。这里是一个小例子：&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;#include&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;#include&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;#include&nbsp;&nbsp; &quot;mysql.h&quot;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;MYSQL&nbsp;&nbsp; mysql;&nbsp;&nbsp; <br/>&nbsp;&nbsp;MYSQL_RES&nbsp;&nbsp; *res;&nbsp;&nbsp; <br/>&nbsp;&nbsp;MYSQL_ROW&nbsp;&nbsp; row;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;void&nbsp;&nbsp; exiterr(int&nbsp;&nbsp; exitcode)&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;fprintf(&nbsp;&nbsp; stderr,&nbsp;&nbsp; &quot;%s&#92;n&quot;,&nbsp;&nbsp; mysql_error(&amp;mysql)&nbsp;&nbsp; );&nbsp;&nbsp; <br/>&nbsp;&nbsp;exit(&nbsp;&nbsp; exitcode&nbsp;&nbsp; );&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;int&nbsp;&nbsp; main()&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp; <br/>&nbsp;&nbsp;uint&nbsp;&nbsp; i&nbsp;&nbsp; =&nbsp;&nbsp; 0;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;if&nbsp;&nbsp; (!(mysql_connect(&amp;mysql,&quot;host&quot;,&quot;username&quot;,&quot;password&quot;)))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;exiterr(1);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;if&nbsp;&nbsp; (mysql_select_db(&amp;mysql,&quot;payroll&quot;))&nbsp;&nbsp; <br/>&nbsp;&nbsp;exiterr(2);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;if&nbsp;&nbsp; (mysql_query(&amp;mysql,&quot;SELECT&nbsp;&nbsp; name,rate&nbsp;&nbsp; FROM&nbsp;&nbsp; emp_master&quot;))&nbsp;&nbsp; <br/>&nbsp;&nbsp;exiterr(3);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;if&nbsp;&nbsp; (!(res&nbsp;&nbsp; =&nbsp;&nbsp; mysql_store_result(&amp;mysql)))&nbsp;&nbsp; <br/>&nbsp;&nbsp;exiterr(4);&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;while((row&nbsp;&nbsp; =&nbsp;&nbsp; mysql_fetch_row(res)))&nbsp;&nbsp; {&nbsp;&nbsp; <br/>&nbsp;&nbsp;for&nbsp;&nbsp; (i=0&nbsp;&nbsp; ;&nbsp;&nbsp; i&nbsp;&nbsp; &lt;&nbsp;&nbsp; mysql_num_fields(res);&nbsp;&nbsp; i++)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;%s&#92;n&quot;,row[i]);&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;mysql_free_result(res);&nbsp;&nbsp; <br/>&nbsp;&nbsp;mysql_close(&amp;mysql);&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;mysql_query&nbsp;&nbsp; 函数将把查询送给服务器，如果查询成功，调用mysql_store_result&nbsp;&nbsp; <br/>&nbsp;&nbsp;函数将分配一个MYSQL_RES&nbsp;&nbsp; 结构并且重新从服务器获得一个结果集。你可以用&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;mysql_fetch_row&nbsp;&nbsp; 函数来查看数据。这样做你将获得一个&nbsp;&nbsp; MYSQL_ROW&nbsp;&nbsp; 指针指向数&nbsp;&nbsp; <br/>&nbsp;&nbsp;据中的一行。&nbsp;&nbsp; MYSQL_ROW&nbsp;&nbsp; 指针是一简单的字符串数组。所有的数据类型被转换成&nbsp;&nbsp; <br/>&nbsp;&nbsp;字符串送到客户端。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;mysql_num_fields&nbsp;&nbsp; 函数将告诉你返回的列数。你可以继续调用&nbsp;&nbsp; mysql_fetch_row&nbsp;&nbsp; <br/>&nbsp;&nbsp;直到它返回一个空指针以得到查询中的每一行。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;注意在这个例子里，我们没有检查有空指针的列。如果你不使用非空列的表，那么&nbsp;&nbsp; <br/>&nbsp;&nbsp;你必须检查一个特殊行的列是否为空。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;一旦你使用完毕一个结果集，你必须释放它。这通过&nbsp;&nbsp; mysql_free_result&nbsp;&nbsp; 来完成。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;最后调用&nbsp;&nbsp; mysql_close&nbsp;&nbsp; 来关闭你和数据库之间的连接。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;查看结果集&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;你可以不用调用&nbsp;&nbsp; mysql_fetch_row&nbsp;&nbsp; 就查出返回的结果集共有多少行。这由&nbsp;&nbsp; <br/>&nbsp;&nbsp;int&nbsp;&nbsp; mysql_num_rows(MYSQL_RES&nbsp;&nbsp; *result)来完成。&nbsp;&nbsp; <br/>&nbsp;&nbsp;改变到被下一个&nbsp;&nbsp; mysql_fetch_row&nbsp;&nbsp; 调用返回的行，你可以用&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;void&nbsp;&nbsp; mysql_data_seek(MYSQL_RES&nbsp;&nbsp; *res,&nbsp;&nbsp; uint&nbsp;&nbsp; offset)&nbsp;&nbsp; 改变到任意一行。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;获得更多的信息&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;你可以使用这几个额外的函数来找出关于一个查询的更多的信息，并从服务器获得&nbsp;&nbsp; <br/>&nbsp;&nbsp;这些信息。&nbsp;&nbsp; <br/>&nbsp;&nbsp;如果你执行一个UPDATE，&nbsp;&nbsp; INSERT&nbsp;&nbsp; 或者&nbsp;&nbsp; DELETE&nbsp;&nbsp; 查询，你可以用&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;int&nbsp;&nbsp; mysql_affected_rows&nbsp;&nbsp; 来查出共有多少行数据被你影响到。&nbsp;&nbsp; <br/>&nbsp;&nbsp;如果在你的数据库里有二进制数据，那么得知数据的长度将是有用的。unsigned&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;int&nbsp;&nbsp; *mysql_fetch_lengths(MYSQL_RES&nbsp;&nbsp; *mysql)&nbsp;&nbsp; 将返回一指出了结果集中每一列&nbsp;&nbsp; <br/>&nbsp;&nbsp;的长度的整型数组。&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;当你插入一个带有&nbsp;&nbsp; AUTO_INCREMENT&nbsp;&nbsp; 列的表的时候，你可以用&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;int&nbsp;&nbsp; mysql_insert_id(MYSQL&nbsp;&nbsp; *mysql)&nbsp;&nbsp; 来查出生成的那一行的ID。&nbsp;&nbsp; <br/>======================<br/><br/>我连过成功了！&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;#include&nbsp;&nbsp; &quot;/include/mysql/mysql.h&quot;&nbsp;&nbsp; /*为绝对路径*/&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;#include&nbsp;&nbsp; &lt;stdio.h&gt;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;int&nbsp;&nbsp; main(int&nbsp;&nbsp; argc,char&nbsp;&nbsp; *argv[])&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;char&nbsp;&nbsp; *user&nbsp;&nbsp; =&nbsp;&nbsp; &quot;root&quot;,&nbsp;&nbsp; *pwd&nbsp;&nbsp; =&nbsp;&nbsp; &quot;mysql&quot;,&nbsp;&nbsp; *dbname&nbsp;&nbsp; =&nbsp;&nbsp; &quot;mysql&quot;;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;MYSQL&nbsp;&nbsp; mysql;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;MYSQL_RES&nbsp;&nbsp; *mysql_ret;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;MYSQL_ROW&nbsp;&nbsp; mysql_row;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;unsigned&nbsp;&nbsp; long&nbsp;&nbsp; num_rows;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;int&nbsp;&nbsp; ret;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;mysql_init(&amp;mysql);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;if(mysql_real_connect(&amp;mysql,NULL,user,pwd,dbname,0,NULL,0))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;Connection&nbsp;&nbsp; success!&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;ret&nbsp;&nbsp; =&nbsp;&nbsp; mysql_query(&amp;mysql,&quot;select&nbsp;&nbsp; *&nbsp;&nbsp; from&nbsp;&nbsp; user&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;if(!ret)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;Query&nbsp;&nbsp; Success!&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;mysql_ret&nbsp;&nbsp; =&nbsp;&nbsp; mysql_store_result(&amp;mysql);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;if(mysql_ret&nbsp;&nbsp; !=&nbsp;&nbsp; NULL)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;Store&nbsp;&nbsp; Result&nbsp;&nbsp; Success!&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;num_rows&nbsp;&nbsp; =&nbsp;&nbsp; mysql_num_rows(mysql_ret);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;if(num_rows&nbsp;&nbsp; !=&nbsp;&nbsp; 0)&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;%d&#92;n&quot;,num_rows);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;while(mysql_row&nbsp;&nbsp; =&nbsp;&nbsp; mysql_fetch_row(mysql_ret))&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;%s&#92;t%s&#92;t%s&#92;t%s&#92;t%s&#92;t%s&#92;n&quot;,mysql_row[0],mysql_row[1],mysql_row[2],mysql_row[3],mysql_row[4],mysql_row[5]);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;mysql_num_rows&nbsp;&nbsp; Failed!&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;exit(-1);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;mysql_free_result(mysql_ret);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;exit(0);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;Store&nbsp;&nbsp; Result&nbsp;&nbsp; Failed!&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;exit(-1);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;Query&nbsp;&nbsp; Failed!&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;exit(-1);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;printf(&quot;Connection&nbsp;&nbsp; Failed&#92;n&quot;);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;exit(-1);&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;如果你包含了正确的头文件而在连接的时候，&nbsp;&nbsp; 告诉你没有符号连接&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;你应该连接你需要的库&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;我的/lib/mysql/libmysqlclient.so下面&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;gcc&nbsp;&nbsp; -L/lib/mysql&nbsp;&nbsp; -lmysqlclient&nbsp;&nbsp; -o&nbsp;&nbsp; tes&nbsp;&nbsp; tes.c&nbsp;&nbsp; 进行编译&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;RedHat_shu@hotmail.com 
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 怎样用c/c++编程连接mysql数据库？ ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>