1.前提・実現したいこと
XFREEという無料レンタルサーバーを使用してPHPでログインフォームの作成を勉強しています。
2.発生している問題・エラーメッセージ
localhost上では問題なくMySQLと接続出来るのですが、XFREEを使用するとエラーになります。表示されたエラーは下記のものになります。
SQLSTATE[HY000] [2019] Can't initialize character set utf8mb4 (path: /usr/share/mysql/charsets/)
こちらで実際に見れると思います。
(http://nanashi001.php.xdomain.jp/public/signup_form.php)
3.該当のソースコード
PHP/dbconnect.php
1<?php 2require_once 'env.php'; 3function connect() 4{ 5 $host = DB_HOST; 6 $db = DB_NAME; 7 $user = DB_USER; 8 $pass = DB_PASS; 9 10 $dns = "mysql:host=$host;dbname=$db;charset=utf8mb4"; 11 12 try { 13 $pdo = new PDO($dns, $user, $pass, [ 14 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 15 PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC 16 ]); 17 return $pdo; 18 } catch (PDOException $e) { 19 echo '接続失敗です!' . $e->getMessage(); 20 exit(); 21 } 22}
PHP/env.php
1<?php 2 3define('DB_HOST','mysql1.php.xdomain.ne.jp'); 4define('DB_NAME','#'); 5define('DB_USER','#'); 6define('DB_PASS','#'); 7 8(保護のため#としています。)
4.自分で調べたことや試したこと
エラーを調べてみたところ utf8 を utf8mb4 に変更する とあったのですが、コードの charset は ちゃんと utf8mb4 になっていて どこを変更すればいいのかわかりません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/06/07 00:07