PHPで「SQLSTATE[HY000] [2019] Unknown character set」が出た時の対処法
522 回閲覧されました
みなさんこんにちは、jonioです。
生のPHPで作ったページでログインをした時に「SQLSTATE[HY000] [2019] Unknown character set」のエラーが表示されました。
「character set」が自分の中で引っかかったのですが「文字コード」を使っているのはPDOしかない状態でした。
そこでPDOが入っているファイルのコードを見直しました。
下記になります。
<?php
class connect{
const DB_NAME = "blog";
const HOST = "localhost";
const USER = "user";
const PASS = "pass";
private $dbh;
public function __construct(){
$dsn = "mysql:host=".self::HOST.";dbname=".self::DB_NAME.";charset=ftf8mb4";
try{
$this->dbh = new PDO($dsn, self::USER, self::PASS);
}catch(Exception $e){
exit($e->getMessage());
}
$this->dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}
public function query($sql, $param = null){
$stmt = $this->dbh->prepare($sql);
$stmt->execute($param);
return $stmt;
}
}
?>
8行目にcharasetがありますが値は「ftf8mb4」になっています。
こんな値はないですよね、正解は「utf8mb4」です。
これに変えたら今回のエラーは無くなりました。