Mysql 插入中文及中文查询 (修改+调试)

//我修改之,能正常运行,测试环境为mysql5.0,xp //关键是设置对字符集,设置gbk,gb2312测试通过,utf8测试未通过 //在运行程序前先建立数据库jj,注意下面几个参数(修改为你自己的) 复制代码

                        //我修改之,能正常运行,测试环境为mysql5.0,xp //关键是设置对字符集,设置gbk,gb2312测试通过,utf8测试未通过 //在运行程序前先建立数据库jj,注意下面几个参数(修改为你自己的) 复制代码 代码如下: // char *host = "localhost"; // char *user = "root"; // char *pass = "674800"; // char *db = "jj"; #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;mysql.h&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; using namespace std; #pragma comment(lib,"libmysql.lib") int connDB(); int create_table(); int insert_table(); int select_table(); int disconnDB(); MYSQL *mysql; MYSQL_RES *res; MYSQL_FIELD * fd; MYSQL_ROW row; char szSqlText[500]=""; int i; int main() { connDB(); // create_table(); insert_table(); select_table(); disconnDB(); return 0; } ///////////////子函数 int connDB()//连接数据库 { char *host = "localhost"; char *user = "root"; char *pass = "674800"; char *db = "jj"; mysql = mysql_init((MYSQL*) 0); mysql_real_connect( mysql, host, user, pass, db,3306, NULL, 0 ) ; //链接到服务器 mysql_set_character_set(mysql,"gb2312"); //设置字符集 cout&lt;&lt;"conn OK!"&lt;&lt;endl; return 0; } //关闭数据库 int disconnDB() { mysql_close( mysql ) ; cout&lt;&lt;"disconn OK!"&lt;&lt;endl; return 0 ; } //创建表 int create_table() { mysql_set_character_set(mysql,"gb2312"); sprintf(szSqlText, \ "create table mytable \ (s0 varchar(100), \ s1 char(6),\ s2 varchar(4),\ s3 varchar(3),s4 int)\ ENGINE=InnoDB \ DEFAULT CHARSET=gb2312"); if(mysql_query( mysql, szSqlText)) cout&lt;&lt;"occurred an error:"&lt;&lt;mysql_error(mysql)&lt;&lt;endl; return 0; } int insert_table() { mysql_set_character_set(mysql,"gb2312"); sprintf(szSqlText, "insert into mytable\ values('2000-3-10 21:01:30',\ 'Test',\ '清风寒剑',\ '岁月情',\ 2500)"); if( mysql_query( mysql, szSqlText) ) cout&lt;&lt;"occurred an error:"&lt;&lt;mysql_error(mysql)&lt;&lt;endl; return 0; } int select_table() { mysql_set_character_set(mysql,"gb2312"); sprintf(szSqlText, "select * from mytable "); if (mysql_query( mysql, szSqlText)) { cout&lt;&lt;"occurred an error:"&lt;&lt;mysql_error(mysql)&lt;&lt;endl; mysql_close( mysql ) ; return FALSE ; } res = mysql_store_result( mysql) ; i = (int) mysql_num_rows( res ) ; cout&lt;&lt;"Query: "&lt;&lt;szSqlText&lt;&lt;"\n"&lt;&lt;i&lt;&lt;" records found:"&lt;&lt;endl; for ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ ) cout&lt;&lt;fd-&gt;name&lt;&lt;"\t"; cout&lt;&lt;endl; while(row = mysql_fetch_row( res )) cout&lt;&lt;row[0]&lt;&lt;"\t"&lt;&lt;row[1]&lt;&lt;"\t"&lt;&lt;row[2]&lt;&lt;"\t"&lt;&lt;row[3]&lt;&lt;"\t"&lt;&lt;row[4]&lt;&lt;endl; mysql_free_result( res ) ; cout&lt;&lt;"select OK!"&lt;&lt;endl; return 0; } 我机器上的运行结果: <img src="http://img.558idc.com/uploadfile/allimg/210707/204GT329-0.jpg" border="0"><img src="http://img.558idc.com/uploadfile/allimg/210707/204GUC0-1.jpg" border="0">