Mysql 插入中文及中文查詢 (修改+調(diào)試)
更新時(shí)間:2009年07月09日 14:29:19 作者:
此程序從pudn上下載,但源程序編譯都通不過(guò),同時(shí)又有致命錯(cuò)誤,
//我修改之,能正常運(yùn)行,測(cè)試環(huán)境為mysql5.0,xp
//關(guān)鍵是設(shè)置對(duì)字符集,設(shè)置gbk,gb2312測(cè)試通過(guò),utf8測(cè)試未通過(guò)
//在運(yùn)行程序前先建立數(shù)據(jù)庫(kù)jj,注意下面幾個(gè)參數(shù)(修改為你自己的)
// char *host = "localhost";
// char *user = "root";
// char *pass = "674800";
// char *db = "jj";
#include <windows.h>
#include <iostream>
#include <mysql.h>
#include <stdio.h>
#include <string.h>
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;
}
///////////////子函數(shù)
int connDB()//連接數(shù)據(jù)庫(kù)
{
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 ) ; //鏈接到服務(wù)器
mysql_set_character_set(mysql,"gb2312"); //設(shè)置字符集
cout<<"conn OK!"<<endl;
return 0;
}
//關(guān)閉數(shù)據(jù)庫(kù)
int disconnDB()
{
mysql_close( mysql ) ;
cout<<"disconn OK!"<<endl;
return 0 ;
}
//創(chuàng)建表
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<<"occurred an error:"<<mysql_error(mysql)<<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',\
'清風(fēng)寒劍',\
'歲月情',\
2500)");
if( mysql_query( mysql, szSqlText) )
cout<<"occurred an error:"<<mysql_error(mysql)<<endl;
return 0;
}
int select_table()
{
mysql_set_character_set(mysql,"gb2312");
sprintf(szSqlText, "select * from mytable ");
if (mysql_query( mysql, szSqlText))
{
cout<<"occurred an error:"<<mysql_error(mysql)<<endl;
mysql_close( mysql ) ;
return FALSE ;
}
res = mysql_store_result( mysql) ;
i = (int) mysql_num_rows( res ) ;
cout<<"Query: "<<szSqlText<<"\n"<<i<<" records found:"<<endl;
for ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ )
cout<<fd->name<<"\t";
cout<<endl;
while(row = mysql_fetch_row( res ))
cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<endl;
mysql_free_result( res ) ;
cout<<"select OK!"<<endl;
return 0;
}
我機(jī)器上的運(yùn)行結(jié)果:

//關(guān)鍵是設(shè)置對(duì)字符集,設(shè)置gbk,gb2312測(cè)試通過(guò),utf8測(cè)試未通過(guò)
//在運(yùn)行程序前先建立數(shù)據(jù)庫(kù)jj,注意下面幾個(gè)參數(shù)(修改為你自己的)
復(fù)制代碼 代碼如下:
// char *host = "localhost";
// char *user = "root";
// char *pass = "674800";
// char *db = "jj";
#include <windows.h>
#include <iostream>
#include <mysql.h>
#include <stdio.h>
#include <string.h>
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;
}
///////////////子函數(shù)
int connDB()//連接數(shù)據(jù)庫(kù)
{
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 ) ; //鏈接到服務(wù)器
mysql_set_character_set(mysql,"gb2312"); //設(shè)置字符集
cout<<"conn OK!"<<endl;
return 0;
}
//關(guān)閉數(shù)據(jù)庫(kù)
int disconnDB()
{
mysql_close( mysql ) ;
cout<<"disconn OK!"<<endl;
return 0 ;
}
//創(chuàng)建表
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<<"occurred an error:"<<mysql_error(mysql)<<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',\
'清風(fēng)寒劍',\
'歲月情',\
2500)");
if( mysql_query( mysql, szSqlText) )
cout<<"occurred an error:"<<mysql_error(mysql)<<endl;
return 0;
}
int select_table()
{
mysql_set_character_set(mysql,"gb2312");
sprintf(szSqlText, "select * from mytable ");
if (mysql_query( mysql, szSqlText))
{
cout<<"occurred an error:"<<mysql_error(mysql)<<endl;
mysql_close( mysql ) ;
return FALSE ;
}
res = mysql_store_result( mysql) ;
i = (int) mysql_num_rows( res ) ;
cout<<"Query: "<<szSqlText<<"\n"<<i<<" records found:"<<endl;
for ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ )
cout<<fd->name<<"\t";
cout<<endl;
while(row = mysql_fetch_row( res ))
cout<<row[0]<<"\t"<<row[1]<<"\t"<<row[2]<<"\t"<<row[3]<<"\t"<<row[4]<<endl;
mysql_free_result( res ) ;
cout<<"select OK!"<<endl;
return 0;
}
我機(jī)器上的運(yùn)行結(jié)果:

相關(guān)文章
探究MySQL中索引和提交頻率對(duì)InnoDB表寫(xiě)入速度的影響
這篇文章主要介紹了MySQL中索引和提交頻率對(duì)InnoDB表寫(xiě)入速度的影響,作者通過(guò)實(shí)際測(cè)試運(yùn)行時(shí)間的對(duì)比來(lái)驗(yàn)證,需要的朋友可以參考下2015-05-05
詳解MySQL開(kāi)啟遠(yuǎn)程連接權(quán)限
這篇文章主要介紹了MySQL開(kāi)啟遠(yuǎn)程連接權(quán)限,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
mysql插入中文數(shù)據(jù)變成問(wèn)號(hào)的解決方案
這篇文章主要介紹了mysql插入中文數(shù)據(jù)變成問(wèn)號(hào)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
解決MySQL遇到錯(cuò)誤:1217 - Cannot delete or 
這篇文章主要介紹了解決MySQL遇到錯(cuò)誤:1217 - Cannot delete or update a parent row: a foreign key constraint fails問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06

