学校的项目时遇到一个问题:用C语言把写一些含有中文的wchar_t类型数据写入mysql。 众所周知,对于C语言想在mysql中插入数据必须按如下写法:
const char *sql=
"insert into test_001 value(3,"bjj","1234",0),"
"(4,"djj","1234",0),"
"(5,"ejj","1234",0),"
"(6,"fjj","1234",0)";
if(mysql_query(&m,sql)){
printf("insert false %sn",mysql_error(&mysql_handle));
}else{
printf("insert successfuln");
}
以下提供一种将wchar_t类型写入Mysql的解决方案:
#include#include #include setlocale(LC_ALL,""); const char *insert_front="insert into test_001 value(13,'"; const char *insert_end ="',"asdf",0)"; wchar_t *p = L"我爱北京hello"; char insert_sql[1024] = {0}; sprintf(insert_sql,"%s%S%s",insert_front,p,insert_end); //使用sprintf将各个类型值拼接成一个字符串 printf("str:%sn",insert_sql); if(mysql_query(&m,insert_sql)){ printf("insert false %sn",mysql_error(&m)); }else{ printf("insert successfuln"); }
以上
真累啊,我感受到了做项目的无聊。真希望自己将来努力考研,起码不要做最低级的码农。



