アプリ版:「スタンプのみでお礼する」機能のリリースについて

MySQLにお詳しいかた教えてください
Xampp(バージョンは画面にXAMPP Control Panel v3.2.2と出ています)でMySQLを
動かしましてコマンドプロンプトをいじり始めました素人ですがレコードの登録にて
つまづいております。

・コマンドプロンプトの文字コードがデフォルトのShift-JISのままですとレコード
 登録出来ましたが文字化けしてしまいます
 ※PHPからDBを使いたくてUTF8で動かしたいです※
・chcp 65001 にてコマンドプロンプトの文字コードをUTF8へと変更し
・DBへアクセスします
・CREATE DATABASE honda; にてデータベース作成します
・USE honda; のあと
・CREATE TABLE honda (U_ID varchar(20), U_NAME varchar(20)); にてガワを作ります
ここまでは問題無さそうなのですけれど、この後
・INSERT INTO honda (U_ID, U_NAME) VALUES ('abc0001', '太一');
にて、コマンドが正常終了しませんで、シングルクウォートで閉じてなさそうでしたので
いったん閉じまして
・INSERT INTO honda (U_ID, U_NAME) VALUES ('abc0001', 'taichi');
にて、日本語をやめましたらレコード登録に成功しております
・太一を真凜へと変更しましても同様の現象でした

UTF8でレコード登録を行いたいのですけれど、どのようにしたらよろしいでしょうか。

「XamppのMySQLへとレコードが登録」の質問画像

質問者からの補足コメント

  • ありがとうございます。
    私の質問がヘンで申し訳ございません。
    画像を貼りたい為に『補足』へと書かせて頂いておりますが
    コマンドプロンプトの文字コードがデフォルトのままですと
    レコード追加出来ます代わりに文字化けをします
    コマンドプロンプトの文字コードを変更しますと
    レコード追加すら出来ませんです…

    「XamppのMySQLへとレコードが登録」の補足画像1
    No.2の回答に寄せられた補足コメントです。 補足日時:2020/05/31 08:48

A 回答 (3件)

すいません、補足の画像は解像度低すぎて何書いてあるかわかりません。


で、気づいたのですが最初の投稿に添付の画像ですでに chcp 65001 はやってましたね。
更に気づいたのですが、このスクショに記載されている
INSERT INTO honda (U_ID, U_NAME) VALUES ('abc0001', '太一');
って、『honda (』の間と、『VALUES (』の間に何かシングルクォテーションらしきものが見えるのと、 '太一'のクォテーションも2重に見えるのですが、違いますか?
    • good
    • 0
この回答へのお礼

ありがとうございます。
お礼が遅れまして申し訳ございません。
かっこの前のシングルクォーテーションのお話は画像作成時の問題の
様子でして、実際には入っておりませんでした。
そこで、
load data local infile 'D:/honda.csv' into table honda character set utf8 fields terminated by ',' optionally enclosed by '"' lines terminated by '\r\n';
としまして、csvを読み込ませます方法にて何とか凌いでおります。

しかし、
updateコマンドはcreate同様のエラーが出ますので、PHPにてブラウザ上
からupdateをしております。

引き続き調べてみます。

ありがとうございました。

お礼日時:2020/06/03 04:57

No.1です。


そうすると、クライアント側の文字コードの問題なんですかね。

> chcp 65001

でコマンドプロンプトの文字コードをUTF-8に変更するとどうでしょう?
https://www.adminweb.jp/command/display/index5.h …
この回答への補足あり
    • good
    • 0

Xamppに付属しているMySQLのバージョンが分かりませんが、↓こうすればどうでしょう?



> CREATE DATABASE honda DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
> USE honda;
> CREATE TABLE honda (U_ID varchar(20), U_NAME varchar(20));
> INSERT INTO honda (U_ID, U_NAME) VALUES ('abc0001', 'taichi');

Unix、Linux環境でしかMySQL使ったことが無いので、これでうまく行くか分かりませんが。
    • good
    • 0
この回答へのお礼

ありがとうございます。
MySQLのバージョンは『10.1.25-MariaDB』と表示されました。

また、お教え頂けました方法でも

コマンドプロンプトの文字コードがShift-JISのままですと
INSERT INTO honda (U_ID, U_NAME) VALUES ('abc0001', '太一');
の結果は文字化けしまして、
コマンドプロンプトの文字コードをUTF8に変更しますと
INSERT INTO honda (U_ID, U_NAME) VALUES ('abc0001', '太一');
今回のトラブル同様にクォーテーション待ちの状態になってしまいます(涙)

お礼日時:2020/05/30 09:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!