Rozszerzając odpowiedź @ckruse, należy zadbać o użycie mysql_real_escape_string()
jeśli Twój ciąg pochodzi z dowolnych źródeł.
int insert_data(MYSQL * mysql, char * str, int len)
{
if (len < 0) {
len = strlen(str);
}
char esc[2*len+1];
unsigned long esclen = mysql_real_escape_string(mysql, esc, str, len);
char statement[512];
snprintf(statement, sizeof statement, "INSERT INTO table VALUES ('%s')", esc);
return mysql_query(mysql, statement);
}
(Alternatywą może być mysql_hex_string()
jeśli zostanie potraktowany poprawnie.)