お世話になります。
知人から、php + Mysqlで動くウェブサイトの引っ越しを頼まれました。
10年ほど前に借りたというサーバーがphp5.2で動いていたため、この度、新たにphp7.4かつ、別のサーバー会社で運営したいというもので、旧サーバーのMySQL、phpファイルともに文字コードはEUC-JPで設定されており、下記のようなソースが所々にあります。
$con = mysql_connect("*******", "******", "******"); mysql_select_db("******", $con); $sql = "SET NAMES ujis"; mysql_query($sql); $sql = "SELECT * FROM tablename ORDER BY name_no"; $result = mysql_query($sql); $rows = mysql_num_rows($result); if($rows != 0){ while($row = mysql_fetch_array($result)){ ・ ・ ・
しかし、新サーバーで上記ソースのままだと、phpのバージョンが異なりmysqlのところでエラーとなるため、以下のようなソースとしmysqliで動かしたく考えています。
$host = "*******"; $username = "*******"; $password = "*******"; $dbname = "*******"; $mysqli = new mysqli($host, $username, $password, $dbname); $mysqli->set_charset("utf8"); if ($mysqli->connect_error) { error_log($mysqli->connect_error); exit; } $query = "SELECT * FROM tablename ORDER BY name_no"; $result = $mysqli->query($query); $row_cnt = $result->num_rows; if($row_cnt != 0){ while($row = $result->fetch_assoc()){ ・ ・ ・
新サーバーでもMySQL、PHPファイルは共に ”EUC-JPのまま” と考えていますが、SET NAMESがないためか、このままだと文字化けしてしまう状況です。
SET-NAMESは非推薦となった旨は承知していますが、調べ方が悪いのか、文字化けにおいてその対策まで辿り着けず質問した次第です。
上記ソースの場合の文字化け対策はどのようにしたら良いのでしょうか?
アドバイスのほど頂戴出来たら幸いです。
よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー