Вот проблема: если я использую {} для команды обновления, как так:Tcl SQLite обновление подстановки переменная не может иметь апостроф
package require sqlite3
fileRepo eval {UPDATE uploads SET $col=$data WHERE rowid=$id}
Я не могу заменить переменные внутри фигурных скобок. все это должно быть жестко закодировано.
Однако, если я использую «» для команды обновления, как так:
fileRepo eval "UPDATE uploads SET $col='$data' WHERE rowid=$id"
я могу заменить переменные в двойных кавычках, но я должен использовать «» для того, чтобы поместить в данных с пробелами так SQL видит его как один вход. Если я не я получаю сообщение об ошибке, если я отправить что-то вроде
$data = "Legit Stack"
Поскольку это имеет место SQL-подавится на слово: Stack , если оно не помещается в одинарные кавычки
Таким образом .. .
Если я отправить эти данные в команде обновления:
$col = description
$data = "Stack's Pet"
Я получаю следующее сообщение об ошибке:
near "s": syntax error while executing "fileRepo eval "UPDATE uploads SET $col='$data' WHERE rowid=$id" ...
Таким образом, с учетом этих правил я не вижу возможности успешно передать одну цитату или апостроф команде обновления. Есть ли другой способ сделать это?
Спасибо!
Как глупо с моей стороны! Я просто не знаю, достаточно! –
Экранирование одиночных кавычек, подобных тому, что это действительно вещь SQL –