Назад | Перейти на главную страницу

Вставка нескольких строк в столбец sqlite с помощью сценария bash

Я пытаюсь вставить значение в свою базу данных 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, которую вы пытаетесь вставить.