我试图插入一个值到我的sqlite数据库由多行和特殊字符组成。
例如:
{ "foo"="$BAR" }
我一直在使用sqlite3命令,但我不知道如何得到这个。
同样在我的bash脚本中,我还有像$BAR这样的variables需要被parsing。
更新的命令(带有样本variables)
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 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呈现内部查询,如果仍然抛出错误,你将需要找出一种方法来逃避你试图插入这个JSONstring。
整个string必须在双引号中。 "价值观必须用单引号”。
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)"