Ich bin etwas verwirrt von deiner Frage.
Ich stehe am Fenster
Meinen Sie damit, dass Ihr PHP-Code auf einem MSWindows-Rechner läuft?
mein Server ist in UNIX
Wenn der Datenbankserver und der Datenbankclient (PHP) auf verschiedenen Rechnern laufen, können sie nicht über UNIX-Dateisystem-Sockets kommunizieren.
Der folgende Code funktioniert gut, wenn mein Server TCP/IP verwendet.
Nein, entweder Ihre Interpretation oder Ihre Beschreibung der Ereignisse ist falsch. Wenn Sie in einem libmysql-Client (einschließlich der mysql_-Erweiterung von PHP) als Zielhost 'localhost' angeben, versucht der Client, sich über den (Unix-) Dateisystem-Socket zu verbinden. OTOH. Wenn Sie 127.0.0.1 angeben, wird ein TCP-Socket verwendet.
Im ersten Szenario erhält der Client den Pfad zum Socket von ~/.my.cnf oder, falls diese Datei nicht vorhanden ist, /etc/my.cnf, oder wenn Sie die Clientbibliothek selbst kompiliert haben, $PREFIX/etc /my.cnf