Przełącz "localhost" na 127.0.0.1.
Więc zamiast:
$db = new mysqli( 'localhost', 'root', 'pass', 'mydb');
Użyj:
$db = new mysqli( '127.0.0.1', 'root', 'pass', 'mydb');
Biorąc pod uwagę, że to pytanie wydaje się być dość popularne i wiele osób chciałoby wiedzieć DLACZEGO tak się dzieje :
Warto zauważyć, że ten problem wydaje się występować tylko w systemie Windows 7 i nowszych. Przed Windows 7, rozdzielczość localhost była obsługiwana przez plik hosts, który był wstępnie skonfigurowany z 127.0.0.1