2

我有时会在其中返回带有引号的 $title 。有没有合适的方法

  1. 插入时保留它或
  2. 只需简单地删除它,这样它就不会出现错误?

    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', updated='1';" \ | mysql -h$SQL_HOST -u$SQL_USERNAME -p$SQL_PASSWORD $SQL_DATABASE

4

2 回答 2

2

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

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

这将转变 It's a beautiful dayIt''s a beautiful day.

这是完整的命令行:

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';"
于 2013-03-22T09:33:51.950 回答
1

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

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

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

 title=$(echo $title | tr -cd "[:alnum:]")
于 2013-03-22T09:25:04.900 回答