2
#include <iostream>
#include <Windows.h>
#include <mysql.h>
#include <string>
#include <stdio.h>
using namespace std;
MYSQL *connection, mysql;
MYSQL_RES *result;
MYSQL_ROW row;
int query_state;
int main(int argc, char** argv)
{
setlocale(LC_ALL, "");
mysql_init(&mysql);
mysql_real_connect(&mysql,"xxx","xxx","xxx","xxx",0,0,0);
mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "utf8");
mysql_options(&mysql, MYSQL_INIT_COMMAND, "SET NAMES 'utf8' [COLLATE 'utf8_slovak_ci']");
mysql_query(&mysql, "SELECT priezvisko FROM tour_pouzivatelia WHERE id_pouz=5");
result = mysql_store_result(&mysql);
if ((row = mysql_fetch_row(result)) != NULL) {
string sql;
sql = "UPDATE tour_pouzivatelia SET priezvisko='";
sql += row[0];
sql += "' WHERE id_pouz=2";
char* s = new char[sql.length()];
strcpy(s, sql.c_str());
mysql_query(&mysql, s);
}
getchar();
return 0;
}
데이터베이스의 값이 +ľščťžýáíéô§ň
이며, 테이블이 utf8
및 ut8_slovak_ci
정렬는 mysql_query가 제대로
그러나 다음 코드는 +¾šèžýáíéúäô§ò
로 결과를 저장을 캐릭터 세트 한 데이터를 저장하지 않습니다.
Visual Studio 2010 C++ express를 사용하고 있습니다.
문제는 mysql_query
이 전달 된 SQL을 처리하지 못하는 것 같고, š, č, ľ 같은 특정 문자를 제거합니다. 많은 변환을 시도했지만 함수 자체는 const char *
이되어야합니다.
char *
변수가 주어진 문자를 올바르게 저장할 수 있도록이 방법을 사용할 수 있습니까? 나는 데이터베이스에서 값을 읽을 경우
그들이 어떤 DML 전에 ... 제대로
시도 데이터베이스 그래서 지금은 작품 (비록 내가 전에), nvm 감사합니다 :) 맹세 하겠지만 – user1143348
그것은 여전히 작동하지 않습니다 sql = "UPDATE tour_pouzivatelia SET priezvisko = 'aľšč'어디 id_pouz = 1;"; a 문자 만 남겨 두었습니다. 나머지 문자는 저장하지 마십시오 – user1143348
UPDATE 쿼리를 하드 코딩 했습니까? 파일이 UTF8 인코딩이 아닐 수도 있습니다. VS2010이 UTF8로 파일을 인코딩하는지 확인하십시오 (예 : 확인 표시). http : // stackoverflow .com/questions/696627/how-to-set-standard-in-visual-studio – rkosegi