Je suis un peu confus par votre question.
Je suis debout sur la fenêtre
Voulez-vous dire que votre code PHP s'exécute sur une machine MSWindows ?
mon serveur est sous UNIX
Si le serveur de base de données et le client de base de données (PHP) s'exécutent sur des machines différentes, ils ne peuvent pas communiquer via les sockets du système de fichiers UNIX.
Le code ci-dessous fonctionne bien, si mon serveur est en TCP/IP.
Non, soit votre interprétation soit votre description des événements est incorrecte. Si vous spécifiez 'localhost' comme hôte cible dans un client libmysql (y compris l'extension mysql_ de PHP), le client essaiera de se connecter via le socket du système de fichiers (Unix). OTO. si vous spécifiez 127.0.0.1, il utilisera un socket TCP.
Dans le premier scénario, le client obtient le chemin d'accès au socket à partir de ~/.my.cnf, ou en l'absence de ce fichier /etc/my.cnf, ou si vous avez compilé la bibliothèque client vous-même, $PREFIX/etc /mon.cnf