Insert-sætningen skal sendes til mysql, ikke en anden linje i shell-scriptet, så du skal gøre det til et "here-dokument".
mysql --host=randomhost --user=randomuser --password=randompass randomdb << EOF
insert into table (field1,field2,field3) values('http://www.site.com/$hash','$file','$size');
EOF
<< EOF
betyder at tage alt før den næste linje, der ikke indeholder andet end EOF
(ingen mellemrum i begyndelsen) som standard input til programmet.