1. Porównywanie znaków (nie żadnych połączeń) nie ma żadnego związku z samymi krzaczkami. Jak sama nazwa wskazuje parametr ten nie określa kodowania znaków, a sposób ich porównywania, czyli przykładowo czy znak "L" ma być traktowany jako równy znakowi "ł".
2. Nie ma właściwie żadnego konkretnego argumentu dla użycia kodowania ISO-8859-2 (latin2) zamiast Unikodu (kodowanego UTF-8) w nowych projektach. Lata 90-te i 10-te (dziwnie to brzmi

dawno już minęły.
3. Każda kolumna powinna mieć nadane kodowanie UTF-8. Możesz również ustawić je jako domyślne kodowanie wszystkich tabel i samej bazy danych - dzięki temu nowe kolumny/tabele automatycznie przyjmą to samo kodowanie. Nie mniej jednak, jeżeli zmieniasz kodowanie istniejącej kolumny musisz jeszcze zmienić zawartość każdej z komórek - sama zmiana kodowania nie konwertuje objętego nim tekstu. Google: MySQL iconv
4. Kodowanie dla połączenia z bazą danych (PDO) ustawia się w DNS-ie PDO:
mysql:host=...;dbname=...;charset=utf8;, nie trzeba korzystać z dodatkowych zapytań.
5. Oczywiście jeszcze dane przesyłane ze skryptu również muszą być kodowanie UTF-8 dlatego też zarówno pliki powinieneś zapisać w kodowaniu UTF-8 jak i stronę wyświetlać w tym kodowaniu (kodowanie w nagłówku Content-Type oraz w elemencie <meta /> HTML-a).