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

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

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

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

PHP

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

Q&A

解決済

2回答

457閲覧

PHP Mysql文字化けする。

teityann1225

総合スコア158

MySQL

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

UTF-8

UTF-8は8ビット符号単位の文字符号化形式及び文字符号化スキームです。データ交換方式、ファイル形式としては、一般的にUTF-8が使われる傾向があります。

PHP

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

0グッド

1クリップ

投稿2017/09/26 14:46

###エラー内容
追加するときに文字化けします。
対策を教えてください。
よろしくお願いします。
###コード

php

1コード 2 3//データベース接続 4$server = "ホスト"; 5$userName = "ユーザー名"; 6$password = "パスワード"; 7$dbName = "データベース名"; 8$charset=utf8; 9$mysqli = new mysqli($server, $userName, $password,$dbName,$chaset); 10 11 $mysqli->set_charset("utf-8"); 12 13if ($mysqli->connect_error){ 14 echo $mysqli->connect_error; 15$error="せつぞくしっぱい"; 16}else{ 17 $mysqli->set_charset("utf-8"); 18} 19 20 21 22 //プリペアドステートメント 23$stmt = $mysqli -> prepare("INSERT INTO massage (Message,GroupID,UserId) VALUES (?, ?, ?)"); 24 25 if($stmt){ 26$stmt->bind_param("sss", $text, $id, $userid); 27 28 29 if($stmt->execute()){ 30$error="送信完了しました。"; 31 }else{ 32 $error= $stmt->errno . $stmt->error; 33 } 34 35 //ステートメント切断 36 $stmt->close(); 37 }else{ 38 $error= $mysqli->errno . $mysqli->error; 39} 40// データベース切断 41$mysqli->close(); 42header( "Location: $url.'&error='.$error" ) ; 43}

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2017/09/27 01:43

phpinfo() で得られる mbstring まわりや mysqli まわりの情報も質問文に追加してください。「$mysqli->set_charset("utf-8");」実行前後で「echo $mysqli->character_set_name();」などとやってみて、接続エンコーディングが切り替わっているかどうか、「echo mb_internal_encoding();」もやってみて内部エンコーディングが何か、も把握してください。
guest

回答2

0

自己解決

PDOで接続することにしました。
ありがとうございました。

投稿2017/09/27 13:44

teityann1225

総合スコア158

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

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

0

まず、ログに出力するなりして、もともとの文字が化けていないか確認してください。

 もともとの文字が化けていないならば、文字列を mysqli::real_escape_string を使用してエスケープしてください。

http://jp2.php.net/manual/ja/mysqli.real-escape-string.php

投稿2017/09/26 22:48

showkit

総合スコア1638

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問