エクセルで作成したcsvファイルをphpファイルでサーバーのmysqlへインポートすると文字化けする
いつもお世話になっております。
ネット上のサイトにて拝見致しました以下のphpファイルの記述を元に、ローカル上で作成したエクセルのcsvファイルをサーバーのmysqlへインポートするとエクセル上でタイプした時点では日本語は当然のことながら問題なく表示されておりますし、データ自体もインポートされますが、mysql上で日本語が文字化けしてしまいます。
どのようにすれば文字化けせずにインポートできるかお教え願いませんでしょうか?(英語は問題ないと思われますが、他の言語も文字化けしないような設定方法をお教えいたただければ有難いです。)
<form method="post" action="ファイル名.php" enctype="multipart/form-data">
<input type="file" name="csvfile" /><br />
<input type="submit" name="csvsub" value="csv呼出" /><br />
</form>
<?php
//フォームから送られたデータは、 $_FILES["csvfile"]["tmp_name"]で受け取ることができる。
$tmp = fopen($_FILES['csvfile'] ['tmp_name'], "r");
while ($csv[] = fgetcsv($tmp, "1024")) {}
//fopen()関数で、ファイルを開く。"r"というのは「読み込み専用」という指示です。
//ここで2次元配列にする。fgetcsv()関数により、csvデータを読み込む。
mb_convert_variables("UTF-8", "SJIS-win", $csv);
//文字化け防止のため、UTF-8に変換する// 配列 $csv の文字コードをSJIS-winからUTF-8に変換
$lim = count($csv);//for文で読み込むために、配列の最大行数を出す
for($i=0; $i<=$lim; $i++){
if($i < ($lim-1)){
$ar = $csv[$i];
$aaa = implode("\",\"", $ar);
//echo $aaa,"\n";
$host = "サーバホスト";
$mysql_user = "ユーザ名";
$mysql_password = "パスワード";
$db = "データベース名";
$tb = "テーブル名";
$cn = mysql_connect($host,$mysql_user,$mysql_password);
if(!$cn){
die("db connect Error");
}
if(!(mysql_select_db("$db"))){
die("db select error");
}
$sql = "INSERT INTO tb1 VALUES(\"$aaa\");";
echo $sql;
$query = mysql_query($sql);
mysql_close($cn);
}
}
?>
Plesk バージョン: 17.0.17
構成名: Plesk 12 Web Admin for Linux
PHP: 5.3.3
OS: CentOS 6.9
MySQL:5.1.73
エクセル2010