0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

MAMPでPDO接続の際にUnknown character set,Connection failed,が出た時の対応

Posted at

人生で初めてPDO接続したので速攻起きたエラーのまとめです。

SQLSTATE[HY000] [2019] Unknown character setへの対応

index.php
<?php

try{
    $db= new PDO('mysql:dbname=my_db;host=127.0.0.0;charset=utf-8',
    'root','root');

}catch(PDOException $e){
    echo "DB接続エラー".$e->getMessage();
}

?>
SQLSTATE[HY000] [2019] Unknown character set と出ました。

charcterってことは、utf-8
あたりが悪いだろうなと大体察しはつくのですが、
どこが悪いのかよくわかりません。

どこがいけないのだろうとググってみると.

charset=utf-8


utf-8ではなくutf8
で「-」(ハイフン)は不要とのこと!
これは罠ですよね...

index.php
<?php

try{
    $db= new PDO('mysql:dbname=my_db;host=127.0.0.0;charset=utf8',
    'root','root');

}catch(PDOException $e){
    echo "DB接続エラー".$e->getMessage();
}

?>

これで書き換えてOKかと思いきや...
次は「Connection failed」が発生しました。

全くわからないので、調べてみました。

Connection failed: SQLSTATE[HY000] [2002]への対応

Connection faildは接続が失敗している...
どうやら接続しているhostやportがいけないみたいですね。

index.php
host=127.0.0.0

ではなく

idenx.php
port=8889

に変えると、良いと書いてありました。

そういえばMAMPのportデフォルトのままだった...

index.php
<?php

try{
    $db= new PDO('mysql:dbname=my_db;port=8889;charset=utf8',
    'root','root');

}catch(PDOException $e){
    echo "DB接続エラー".$e->getMessage();
}

?>

これでエラーが解消しました!

参考にした記事

【解決方法と原因】PHPでConnection failed: SQLSTATE[HY000] [2002] のエラー

ざっくりん雑記 |SQLSTATE[HY000] [2019] Unknown character set

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?