我想将 html 插入到 mysql longtext 列中,但我一直遇到错误:
/usr/bin/mysql: Argument list too long
当字符串大小很大时(至少我是这么认为的)
这是代码:
link="7red.no"
result=$( { stdout=$(wget -T10 -t1 "$link" -v -O -) ; } 2>&1; echo "--SePaRaToR--"; echo "$stdout");
dowload_stat=${result%$'\n'--SePaRaToR--*};
html=${result#*--SePaRaToR--$'\n'};
printf -v dowload_stat "%q" "$dowload_stat"
printf -v html "%q" "$html"
sqlHtml='INSERT INTO `'"${tableHtml}"'` (`extracted_link_ID`, `response_header`, `html`, `download_start`, `download_finish`) VALUES ('"'${link_id}'"', '"${dowload_stat:1}"', '"${html:1}"', '"'${start}'"', '"'${finish}'"');'
mysql -u$dbUser -p$dbPass -h$dbHost -P$dbPort -D$dbName --default_character_set utf8 -A -e "$sqlHtml"
我使用hacks编写了代码,因为在 bash 中默认情况下不提供mySQL 转义和在不同变量中输出 stderr 和 stdout之类的东西。
我计划在工作脚本中使用代码进行网络索引/缓存,所以速度很重要。这让我想到了第二个问题:在 bash 中是否有更快的方法来做到这一点?