Mysql 插入中文及中文查詢 (修改+除錯)

neuyu發表於2021-09-09

           //我修改之,能正常執行,測試環境為mysql5.0,xp
//關鍵是設定對字符集,設定gbk,gb2312測試透過,utf8測試未透過
//在執行程式前先建立資料庫jj,注意下面幾個引數(修改為你自己的)
複製程式碼 程式碼如下:
// char *host = "localhost";
// char *user = "root";
// char *pass = "674800";
// char *db = "jj";
#include
#include
#include
#include
#include
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"); //設定字符集
coutreturn 0;
}
//關閉資料庫
int disconnDB()
{
mysql_close( mysql ) ;
coutreturn 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))
coutreturn 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) )
coutreturn 0;
}
int select_table()
{
mysql_set_character_set(mysql,"gb2312");
sprintf(szSqlText, "select * from mytable ");
if (mysql_query( mysql, szSqlText))
{
coutmysql_close( mysql ) ;
return FALSE ;
}
res = mysql_store_result( mysql) ;
i = (int) mysql_num_rows( res ) ;
coutfor ( i = 0 ; fd = mysql_fetch_field( res ) ; i++ )
coutnamecoutwhile(row = mysql_fetch_row( res ))
coutmysql_free_result( res ) ;
coutreturn 0;
}

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4550/viewspace-2810232/,如需轉載,請註明出處,否則將追究法律責任。

相關文章