質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

2550閲覧

cloud9でのmysqlの日本語設定が上手くできない

bigin

総合スコア67

Cloud9

Cloud9は、クラウドからのプログラミングが可能になるWebサービス。IDEとしての機能が搭載されており、GitHubやHerokuなど他ツールとの連携も可能です。ブラウザ上で動くため、デバイスに関係なく開発環境を準備できます。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/08/13 05:18

編集2017/08/14 01:52

Macを使っています。

現在、cloud9でフォームを作成してデータベースに登録できるプログラムを書いています。

[困った点]
■フォームのtext型のカラムに入れた日本語がphpmyadminで見ると「???」になる

[試みたこと]
①下記ページを手順に日本語設定を行うも変わらず
http://qiita.com/hisashi629/items/7c5295c78f25b142a8a8
現在のshow variables like "chara%"は以下の通りです。

mysql> show variables like "chara%"; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec)

②新しいテーブルやデータベースを作って(既存のコピー)データを入力するも同じ

なお、フォームhtmlと登録用のphpファイルは以下の通りです。
utf8の設定はしているつもりなのですが。

present.html

<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>プレゼントフォーム</title> <link href="css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" type="text/css" href="form.css" > <script src="js/bootstrap.min.js"></script> </head> <body> <form action="present.php" method="post" name="sample" class="form" align="left"> <div class="form-group"> 商品名 <input type="text" name="name" placeholder="商品名" class="form-control" required> </div> <div class="form-group"> 商品説明<br> <TEXTAREA name="introduce" maxlength="150" cols="40" rows="6" wrap="off" required></TEXTAREA> </div> <div class="form-group"> 画像ファイル名 <input type="text" name="gazou" placeholder="半角英数、jpg/pngのみ" required> </div> <div class="form-group"> 会社名 <input type="text" name="companyname" placeholder="会社名" class="form-control" required maxlength="2"> </div> <div class="form-group"> URL <input type="url" name="url" value="" class="form-control"> </div> <button type="submit" class="btn btn-default registration">登録</button> </div> </form> </body> </html>

present.php

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>プレゼント登録</title> </head> <body> <?php try{ $db = new PDO('mysql:host=localhost;dbname=2017_t_autumn;charset=utf8','root',''); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING); $ftt=$db->prepare('INSERT INTO present2(name,introduce,gazou,companyname,url) VALUES(:name,:introduce,:gazou,:companyname,:url)'); $ftt->bindValue(':name',$_POST['name']); $ftt->bindValue(':introduce',$_POST['introduce']); $ftt->bindValue(':gazou',$_POST['gazou']); $ftt->bindValue(':companyname',$_POST['companyname']); $ftt->bindValue(':url',$_POST['url']); $ftt->execute(); $db = NULL; }catch(PDOException $e){ die('エラーメッセージ:'.$e->getMessage()); } ?> <p>登録が完了しました。<br /><a href='first.html'>戻る</a></p> </body> </html>

ぜひ、お知恵をお借りできますと幸いです。
何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

パッと見、確認した方が良さそうな内容としては、以下でしょうか。

1)phpmyadmin上で文字化けが発生するデータベース上で
「show variables like "chara%";」を行っても結果が同じかどうか。

2)対象のテーブル構造に文字セットがないか。
(例)

SQL

1CREATE TABLE( 23`title` varchar(255) CHARACTER SET latin1 DEFAULT NULL, 4`link` varchar(255) CHARACTER SET latin1 DEFAULT NULL, 56) DEFAULT CHARSET=latin1

3)フォームを表示から登録までのすべてのプログラムファイル(HTML+JS+CSS+PHP等)の保存形式が
全てUTF-8になっているかどうか。

投稿2017/08/13 18:05

tomari_perform

総合スコア760

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bigin

2017/08/14 01:53

ありがとうございます。 1)phpmyadmin上で文字化けが発生するデータベース上で 「show variables like "chara%";」を行っても結果が同じかどうか。 →結果は同じでした。 2)対象のテーブル構造に文字セットがないか。 →ありませんでした。 3)自分ではきちんとやっているつもりですが、質問内容にコードを追加してみました。一度ご確認頂けますと幸いです。
tomari_perform

2017/08/14 02:10 編集

質問文②で確認済みかもしれませんが、追加で確認した方が良さそうなのは、 4) phpmyadmin上で、INSERT文を実行して登録したデータが日本語として登録できるかどうか。 ⇒これで日本語が登録できなければ、DB側(phpmyadminを含めて)の問題で、  日本語が登録できれば、phpファイル等が悪さしてそうですね。 5) text型だけの現象なのか、varchar型でも発生するかどうか ⇒おそらく発生すると思いますが、一応。 ちなみに、3)の意図については、ファイルを保存する際の文字コードなので、 添付ファイルでないと、こちらでは確認できないですが、 追記されたhtml,phpの方は、パッと見大丈夫そうですね~。
bigin

2017/08/14 05:58

4) phpmyadmin上で、INSERT文を実行して登録したデータが日本語として登録できるかどうか。 ⇒これで日本語が登録できなければ、DB側(phpmyadminを含めて)の問題で、  日本語が登録できれば、phpファイル等が悪さしてそうですね。 ->ターミナルからinsert intoで日本語を入れましたが、ダメでした。やはりDB側の問題ですかね、、、 5) text型だけの現象なのか、varchar型でも発生するかどうか ⇒おそらく発生すると思いますが、一応。 ->こちらも試しましたが、varchar型でもダメでした。 何かかなり根本的な(基本的な)設定ミスがありそうな気もしてきたのですが。。。
tomari_perform

2017/08/14 06:08

4) phpmyadminのターミナルって何でしょう? phpmyadminの「SQL」タブ もしくは、「挿入」タブでのINSERTもダメですかね。 あと、考えられるとしたら、 my.ini等の default-character-set character-set-server default-character-set 等ですが、これらもUTF-8ですよね、きっと。 うーん。
bigin

2017/08/15 16:07

遅くなりました。 >phpmyadminのターミナルって何でしょう? 失礼しました。cloud9のターミナルです。 >phpmyadminの「SQL」タブ もしくは、「挿入」タブでのINSERTもダメですかね。 できませんでした。。。 >my.ini等の default-character-set character-set-server default-character-set これはまだ確認していないですが、my.iniファイル内を確認して上記表示があるかどうかということでしょうか?
bigin

2017/08/16 11:31

ありがとうございます。お送り頂いたページは私も参考にして、書き換えました。んーお手上げでしょうか^^;
tomari_perform

2017/08/16 12:18 編集

何でしょうね。 cloud9を使った事がないので、細かい事は分かりませんが、 cloud9のOSの言語設定が悪さしてるんですかね? cloud9の管理者に問い合わせて見ても良いと思います。 http://scorer.freeforums.net/thread/10/cloud9 ↑こんなのとかありましたが。
bigin

2017/08/17 13:58

返事が遅くなりました。ありがとうございます。いただいたURL確認しましたが、まだ私の知識ではちょっとよく理解できなかったので調べてみます。
bigin

2017/08/17 14:28

タイミングが悪いのか、元のデータベースをコピーして作ったから悪いのかわかりませんが、0から新しいデータベースを作ったらうまく日本語が入りました。ご協力ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問