Функция привязки SQLite в подготовленном выражении - PullRequest
2 голосов
/ 29 февраля 2012

У меня проблема с привязкой текущей даты.Я хочу использовать функцию datetime('now') в качестве одного из вставленных значений.

Я использовал что-то вроде этого:

sqlite3_bind_text(stmt, i + 1, values[i], -1, SQLITE_STATIC);

, где values[i] равно char * text = datetime('now').Но, очевидно, он вставляет этот текст.Есть ли возможность связать такую ​​функцию: datetime('now')?

1 Ответ

1 голос
/ 29 февраля 2012

Привязка, по определению, хорошо экранирует все и гарантирует, что все является строкой, которую интерпретатор SQL фактически не воспринимает как компонент SQL.Это проблема безопасности данных.

Вместо этого, сделайте, чтобы ваша переменная stmt поместила дату и время ('сейчас') прямо туда, где они должны быть в исходном выражении SQL.IE, удалите связанный ? и поставьте datetime('now') на его место.

...