Je veux insérer du html dans une colonne mysql longtext mais je tombe toujours sur une erreur :
/usr/bin/mysql: Argument list too long
lorsque la taille de la corde est trop grande (c'est du moins ce que je pense)
voici le code :
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"
J'ai créé le code en utilisant hacks comme certaines choses telles que mySQL-escaping y sortie de stderr et stdout dans des variables différentes ne sont pas disponibles par défaut dans bash.
Je prévois d'utiliser le code dans un script pour l'indexation et la mise en cache sur le web, la vitesse est donc importante. Ce qui m'amène à ma deuxième question : Existe-t-il un moyen plus rapide de faire cela en bash ?