Пока все, что видно - это кривота какая-то.
$string = iconv('utf-8', 'cp1251', $string);
$string = iconv('cp1252', 'utf-8', $string);
То есть вы из utf8 преобразуете к
1251, а потом эту полученную строку преобразуете из
1252 в utf8? Это сильно похоже на бредни.
Если что, все современные БД держат внутри все данные в utf8. Поэтому если сайт работает у вас в utf8, то вам надо просто правильно задать кодировку подключения к БД, и не запаривать мозги себе и коллегам :)