我写了一个Bash脚本来向SQLite数据库插入值。命令如下:
sqlite3 ${db_name} "insert into ${table_name} (${column1},${column2}) values ('$f1','$f2');"
此命令可以正常工作,直到f1
变量包含一个单引号:
# E.g., f1="I'm just kidding"
# The command reported an error:
Error: near "m": syntax error
我们如何转义变量中的单引号?
3条答案
按热度按时间pokxtpni1#
要对SQL的单引号进行转义,可以将其加倍(https://www.sqlite.org/faq.html#q14):
所以
qnzebej02#
在Bash中,可以使用${varname//x/y}将varname变量中x的所有示例替换为y。
尽管@ignacioVazquez-Abrams有最好的答案,因为PHP,Perl和Python实现都有帮助净化输入的模块。
thtygnil3#
你可以用