私はあなたの質問に少し混乱しています。
私は窓際に立っています
PHPコードがMSWindowsマシンで実行されているということですか?
私のサーバーはUNIXです
データベースサーバーとデータベースクライアント(PHP)が異なるマシンで実行されている場合、UNIXファイルシステムソケットを介して通信することはできません。
サーバーがTCP/IPの場合、以下のコードは正常に機能します。
いいえ、あなたの解釈またはイベントの説明のいずれかが正しくありません。 libmysqlクライアント(PHPのmysql_拡張子を含む)のターゲットホストとして「localhost」を指定すると、クライアントは(Unix)ファイルシステムソケットを介して接続を試みます。 OTOH。 127.0.0.1を指定すると、TCPソケットが使用されます。
前者のシナリオでは、クライアントは〜/ .my.cnfからソケットへのパスを取得するか、そのファイル/etc/my.cnfがない場合、またはクライアントライブラリを自分でコンパイルした場合は$ PREFIX / etc /my.cnf