Mac OS 10.11.3でPHP 5.6.7でMAMP 5.5.42を使用しています。Unixソケット経由のMySQL接続は、mysqliでは動作しますが、PDOでは動作しません。
try{
$db = new PDO('mysql:host=localhost:8889;dbname=lacolshow_database;charset=utf8', 'root', 'root');
}
catch (PDOException $e) {
var_dump($e->getMessage());
}
上記のコードは、例外を発生させず、空のPDOオブジェクトを生成します。次のようにコードスニペットです。
localhost:8889
がちょうどlocalhost
上記のコードでで置き換えられている場合、例外がメッセージ SQLSTATE[HY000] [2002] No such file or directory
で上昇させます。
localhost:8889
は、上記のコードで127.0.0.1
により置換されている場合は、例外がメッセージ SQLSTATE[HY000] [2002] Connection refused
で上昇させます。
助けてください。
アップデート:私はPDOの代わりにmysqliのを使用する場合、接続が機能:
$mysqli=mysqli_connect('localhost', 'root', 'root', 'lacolshow_database', NULL, '/Applications/MAMP/tmp/mysql/mysql.sock');
http://php.net/manual/en/pdo.construct.phpにおける第二のコメントで助言以下は、私が試した次
$dsn = 'mysql:dbname=lacolshow_database;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock';
$db = new PDO($dsn,'root', 'root');
が、これも失敗し、空のPDOオブジェクトが生成されます。
あなたが提案するものは、空のPDOオブジェクトを生成します。また、私のPHPはPDO例外を単独では表示しません。私がtry/catchのものを追加しないと、ページをリクエストすると空白のページが表示されます –
エラーが表示されるようにするには、php.iniの表示エラーを有効にする必要があります –
本当に、 –