我有1000条HTML
通讯,所有通讯都按顺序编号为1.txt 2.txt
我正在构建一个新的cms方式供员工编辑,所以我希望将内容输入到数据库(mysql)
我试图运行bash脚本
array..
for i in "${array[@]}"
do
value=`cat ../data/"$i".txt`
mysql -u$MYUSER -p$MYPASS "cms" -se "UPDATE nl SET site_html = '$value', update_date=TIMESTAMP(NOW()) WHERE sid ='$i' "
完成
但html似乎爆炸了更新声明
答案 0 :(得分:0)
在SQL字符串中使用单引号之前,必须将$value
中的单引号加倍(转义):
"UPDATE nl SET site_html = '${value//'/''}', update_date=TIMESTAMP(NOW()) WHERE sid ='$i' "
否则HTML中的任何单引号都会导致SQL字符串过早终止,这肯定会导致(SQL注入)语法错误。