Hello, I have been wrestling with my MySQL conversion now for a week or so, and everything is going quite well, I already got actions into MySQL, including the OLC part of it. One thing though, I sent a couple of questions a week or so ago about escaping ' from strings. I think Mike supplied a void, but I needed a char, so he sent me one off-list. We have used that and remodeled it slightly, and it seems to work ok, but for one thing. When I use it in a sprintf all the values set with the char function end up being the same. What am I doing wrong? Here's a faked query string: ----8<----8<----8<----8<----8<----8<----8<---- sprintf(query_str, "REPLACE INTO %s SET " "Name = '%s', " "Password = '%s', " "Email = '%s', " "Title = '%s', " "Description = '%s';" MYSQL_TABLE_PLAYER_INDEX, GET_NAME(ch), GET_PASSWD(ch), GET_EMAIL(ch), escape_quotes(GET_TITLE(ch)), escape_quotes(buf) ); ----8<----8<----8<----8<----8<----8<----8<---- Notice the escape_quotes(). When they are called within the sprintf both title and description are set to the same value. The actual char function: ----8<----8<----8<----8<----8<----8<----8<---- char *escape_quotes(char *source) { static char dest[MAX_STRING_LENGTH * 2]; *dest = 0; if (!source) { return ""; /* Error */ } else { while (*source) { if (*source == '\'') strcat(dest, "\\\'"); else strncat(dest, source, 1); source++; } } return dest; } ----8<----8<----8<----8<----8<----8<----8<---- Can anyone help me? Kind regards, /Artovil -- +---------------------------------------------------------------+ | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html | | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html | +---------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/06/01 PST