Я пытаюсь вставить значение в свою базу данных sqlite, состоящую из нескольких строк и специальных символов.
Например:
{
"foo"="$BAR"
}
Я использую команду sqlite3, но не знаю, как ее получить.
Также в моем сценарии bash есть такие переменные, как $BAR
что нужно разобрать.
Обновленная команда (с примерами переменных.)
API=2039470928570983
USERNAME=Admin
PASSWORD=PASSWORD
sqlite3 /home/xbmc/test.db "INSERT INTO DownloadClients VALUES (1,1,Sabnzbd,Sabnzbd,'{"host": "localhost", "port": 8085, "apiKey": "$API", "username": "$USERNAME", "password": "$PASSWORD", "tvCategory": "tv", "recentTvPriority": 1, "olderTvPriority": -100, "useSsl": false}', SabnzbdSettings)"
Теперь я получаю Error: no such column: Sabnzbd
Я попытался перечислить имена столбцов перед оператором VALUES, но получил ту же ошибку.
Вся строка должна быть в двойных кавычках. "
Ценности должны быть в одинарных кавычках. '
sqlite3 /home/xbmc/test.db "INSERT INTO DownloadClients VALUES (NULL,'$USERNAME','Three','Four','{"host": "localhost", "port": 8085, "apiKey": "$API", "username": "$USERNAME", "password": "$PASSWORD", "tvCategory": "tv", "recentTvPriority": 1, "olderTvPriority": -100, "useSsl": false}', 5)"
попробуйте с этим
sqlite3 test.db "INSERT INTO table VALUES (1,1,Sabnzbd,Sabnzbd,q'{"host": "localhost", "port": 8085, "apiKey": "$API", "username": "$USERNAME", "password": "$PASSWORD", "tvCategory": "tv", "recentTvPriority": 1, "olderTvPriority": -100, "useSsl": false}', SabnzbdSettings)"
Таким образом вы получите $ VARIABLES для рендеринга внутри запроса. Если {} по-прежнему выдает ошибки, вам нужно будет найти способ избежать этой строки json, которую вы пытаетесь вставить.