Рассмотрим следующий код
char bar[] = "hello world \"One\", two, 'three'";
char *zSQL = sqlite3_mprintf("INSERT INTO stuff (`foo`) VALUES ('%q');", bar ) ;
sqlite3_exec(db, zSQL, 0, 0, 0);
sqlite3_free(zSQL);
/* Produces a exception error */
Проблема в том, что в операторе SQL кавычки не экранируются. Если бы я программировал на PHP, я бы использовал функцию типа sqlite_escape_string , чтобы экранировать строки перед вставкой их в запрос SQL, но я не могу найти эквивалентную функцию в C ++. Я мог бы построить свою собственную функцию, подобную sqlite_escape_string, но я уверен, что она должна быть уже написана / протестирована ...
Существует ли эквивалентная функция sqlite_escape_string () для c ++?