人生で初めて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();
}
?>
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();
}
?>
これでエラーが解消しました!
参考にした記事