why won't ethernet stay connected for more than a few hours?

   String data;
  data+="";
  data+="entry.0.single=";
  data+=analogRead(A2);
  data+="&submit=Submit";

I suspect your problem is here. There is a known issue with the String class and the way it manages memory, that will result in you running out of SRAM. I recommend you get rid of the above, and just Client.print() the elements separately.