Ik ben een beetje in de war door je vraag.
Ik sta op het raam
Bedoel je dat je PHP-code op een MSWindows-machine draait?
mijn server is in UNIX
Als de databaseserver en de databaseclient (PHP) op verschillende machines draaien, kunnen ze niet communiceren via UNIX-bestandssysteemsockets.
De onderstaande code werkt prima, als mijn server in TCP/IP staat.
Nee, uw interpretatie of uw beschrijving van gebeurtenissen is onjuist. Als u 'localhost' opgeeft als de doelhost in een libmysql-client (inclusief de mysql_-extensie van PHP), dan zal de client proberen verbinding te maken via de (Unix) bestandssysteem-socket. OTOH. als u 127.0.0.1 opgeeft, zal het een TCP-socket gebruiken.
In het eerste scenario krijgt de client het pad naar de socket van ~/.my.cnf, of bij afwezigheid van dat bestand /etc/my.cnf, of als je de client-lib zelf hebt gecompileerd, $PREFIX/etc /mijn.cnf