MYSQL API i C problemer med danske tegn i mysql i c
Hey.Vi står med et irriternede problem i noget c kode. Vi bruger mysql client lib (libmysql) i windows.
Problemet består i at når vi prøver at udfører en kommando hvor æ ø å indgår, kommer der underlige tegn i stedet.
Vi har sørget for at vælge latin-1 char settet (ISO-8859-1) - hvad kan der mon være galt?
Vi har kigget på query strengen, og der er ingen problemer der.
Koden er som følger:
int db_connect(char *server, char *user, char *password, char *database)
{
if(mysql_init(&mysql)==NULL)
{
printf("Failed to initate MySQL connection\n");
exit(1);
}
if (!mysql_real_connect(&mysql,server,user,password,NULL,0,NULL,0))
{
printf( "Failed to connect to MySQL: Error: %s\n", mysql_error(&mysql));
exit(1);
}
if(mysql_select_db(&mysql,database )==0)/*success*/
printf( "Database Selected\n");
else
printf( "Failed to connect to Database: Error: %s\n", mysql_error(&mysql));
}
int db_insert(char *number, char *text)
{
bzero(query, strlen(query));
strcpy( query , "SET CHARACTER SET \'latin1\'" );
if(mysql_exec_sql(&mysql,query)==0)/*success*/
printf( "Char set\n");
else
printf( "Failed to set char set\n", mysql_error(&mysql));
bzero(query, strlen(query));
text[strlen(text) - 1] = '\0';
text[strlen(text) - 2] = '\0';
sprintf(query,"INSERT INTO `sms` (`nr`,`tekst` ,`tjek`) VALUES ('%s', '%s', 'no');", number, text);
if(mysql_exec_sql(&mysql,query)==0)/*success*/
printf( "Record Added\n");
else
printf( "Failed to add records: Error: %s\n", mysql_error(&mysql));
}
int db_close()
{
mysql_close(&mysql);
}
På forhånd tak.