bash mysql插入单引号

时间:2013-03-22 09:16:41

标签: mysql bash insert quote

我有时会在其中带有$ title返回报价。

是否有适当的方法?
  1. 插入或
  2. 时保留
  3. 只是简单地删除它就不会反击错误了吗?

    echo“INSERT INTO $ SQL_DATABASE。$ SQL_TABLE SET $ SQL_FILENAME_FIELD ='$ OUTPUTFILENAME',title ='$ title',url ='$ OUTPUTFILENAME',cover ='$ OUTPUTFILENAME.jpg',server ='s2', dateadd = now(),lastplayed = now() - 间隔2天,记录='1000',频道='2',已下载='1';“ \ | mysql -h $ SQL_HOST -u $ SQL_USERNAME -p $ SQL_PASSWORD $ SQL_DATABASE

2 个答案:

答案 0 :(得分:2)

要保留你需要转义它们的引号,而不是使用$ title,而不是使用它:

${title//\'/\'\'}

这会改变 It's a beautiful day It''s a beautiful day。{/ p>

这是完整的命令行:

echo "INSERT INTO $SQL_DATABASE.$SQL_TABLE SET $SQL_FILENAME_FIELD='$OUTPUTFILENAME', title='"${title//\'/\'\'}"', url='$OUTPUTFILENAME', cover='$OUTPUTFILENAME.jpg', server='s2', dateadd=now(), lastplayed=now()-interval 2 day, record='1000', channel='2', downloaded='1';"

答案 1 :(得分:1)

此处使用tr命令从标题中删除'字符。

 title=$(echo $title | tr -d "'")

要仅输出字母数字字符,-cd选项将删除所有不是字母数字的字符。

 title=$(echo $title | tr -cd "[:alnum:]")