注册 登录
编程论坛 C语言论坛

数据库名和表名用了中文,连接不上怎么办?

星系隐 发布于 2020-01-20 16:10, 2521 次点击
#include <winsock.h>  //最好放在首位,位置关系会导致错误,mysql.h
#include "D:/新建文件夹/wamp/bin/mysql/mysql5.7.19/include/mysql.h"
#pragma comment (lib, "libmysql.lib")
#include <stdio.h>
#include <string.h>
#include <windows.h>


main(){

   
MYSQL * con; //= mysql_init((MYSQL*) 0);
MYSQL_RES *res;
MYSQL_ROW row;
char tmp[400];
//database configuartion
char dbuser[30]="root";
char dbpasswd[30]="";
char dbip[30]="127.0.0.1";
char dbname[50]="数据库0";
char tablename[50]="表0";
char *query=NULL;
int x;
int y;
int rt;//return value
unsigned int t;
int count = 0;

con = mysql_init((MYSQL*) 0);
if ( con !=NULL && mysql_real_connect(con,dbip,dbuser,dbpasswd,dbname,3306
/*TCP IP端口*/,NULL/*Unix Socket 连接类型*/,0/*运行成ODBC数据库标志*/) )
{
  if (!mysql_select_db(con,dbname))
  {
    printf("Select successfully the database!\n");
     
    con ->reconnect = 1;
     query = "set names \'GBK\'";
    //mysql_query(con,"set names \'GBK\'");
      rt=mysql_real_query(con,query,strlen(query));
    if (rt)
    {
      printf("Error making query: %s !!!\n",mysql_error(con));
    }
    else
    {
      printf("query %s succeed!\n",query);
    }
     
  }
}
  else
{
  MessageBoxA(NULL,"Unable to connect the database,check your configuration!","",NULL);
  
}




}
运行时连接不上..改英文就行,我想问问怎么用连接上中文的?我觉得可能是字符编码问题?
7 回复
#2
星系隐2020-01-20 16:33
但是我在数据库设置utf8以后程序可以显示英文名数据库英文名表里的汉字
只有本站会员才能查看附件,请 登录
#3
星系隐2020-01-20 16:37
这是连接中文数据库中文表时出现的错误,怎么搞?
只有本站会员才能查看附件,请 登录
#4
八画小子2020-01-20 17:23
改成英文
#5
星系隐2020-01-20 18:08
回复 4楼 八画小子
我改了英文放cgi-bin里变500错误了,改了apache的conf配置,怎么办
#6
星系隐2020-01-20 18:10
#include <winsock.h>  //最好放在首位,位置关系会导致错误,mysql.h
#include "D:/新建文件夹/wamp/bin/mysql/mysql5.7.19/include/mysql.h"
#pragma comment (lib, "libmysql.lib")
#include <stdio.h>
#include <string.h>
#include <windows.h>


main(){

   
MYSQL * con; //= mysql_init((MYSQL*) 0);
MYSQL_RES *res;
MYSQL_ROW row;
char tmp[400];
//database configuartion
char dbuser[30]="root";
char dbpasswd[30]="";
char dbip[30]="127.0.0.1";
char dbname[50]="e1";
char tablename[50]="e2";
char *query=NULL;
int x;
int y;
int rt;//return value
unsigned int t;
int count = 0;
printf("Content-type:text/html\n\n");
con = mysql_init((MYSQL*) 0);
if ( con !=NULL && mysql_real_connect(con,dbip,dbuser,dbpasswd,dbname,3306
/*TCP IP端口*/,NULL/*Unix Socket 连接类型*/,0/*运行成ODBC数据库标志*/) )
{
  if (!mysql_select_db(con,dbname))
  {
    printf("Select successfully the database!\n");
     
    con ->reconnect = 1;
     query = "set names \'GBK\'";
    //mysql_query(con,"set names \'GBK\'");
      rt=mysql_real_query(con,query,strlen(query));
    if (rt)
    {
      printf("Error making query: %s !!!\n",mysql_error(con));
    }
    else
    {
      printf("query %s succeed!\n",query);
    }
     
  }
}
  else
{
  MessageBoxA(NULL,"Unable to connect the database,check your configuration!","",NULL);
  
}




}
浏览器打开显示 500,心碎了
#7
星系隐2020-01-20 18:16
ok成了,可是我真没想到这么麻烦,天
只有本站会员才能查看附件,请 登录
#8
八画小子2020-01-20 22:53
建议提高基本能力,这种偏门的东西你现阶段了解感觉有些浪费时间。
1