

このようにデータベースにデータを追加すると、テーブルをmysqlで表示したときに？マークが付いてしまいます。

[code]

     $sql = "INSERT INTO tbladdress
                (name, prefid, address, tel)
              VALUES
                (\"セレナ　ゴメス\", 21, \"東京都\", \"04-XXXX-9999\")";
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/LJxuQ.jpg)](https://i.stack.imgur.com/LJxuQ.jpg)

このように、「セレナ ゴメス」の前、「東京都」の前に？が付いてしまいます。どうすれば  
?が付かないようにできますか？


CC BY-SA 3.0
2016-07-08T05:46:12.830
27451
2016-07-08T15:03:19.420
2016-07-08T05:51:23.130
8000
10465
question
php mysql
phpファイルでデータをデータベースに追加すると?マークが付いてしまいます。


DBやテーブルの文字セット、文字コードを確認してみてください。


CC BY-SA 3.0
2016-07-08T06:38:00.990
27454
2016-07-08T09:14:21.693
2016-07-08T09:14:21.693
17014
17014
27451
answer


MySQLでは、文字コードの設定を持っています。  
?が表示されるのは、データベースの文字コードと参照しようとしているクライアントの文字コードが一致していない場合になります。

設定した意図がないようでしたら、おそらくデフォルトの文字コードが設定されているはずです。

その設定を確認するには、

[code]

    show variables like "character-set-server";
    
[/code]

とすると

utf8やsjisなどの値が出てくるはずです。

どの文字コードを利用したいかは、利用用途によるのでここでは一概に言えませんが、文字コードを意図したコードに設定することが重要かと思います。

設定するには、  
my.confに

[code]

    [mysql]
    default-character-set=文字コード
    
[/code]

などを設定しMySQLを再起動すると反映されるのではないかと思います。  
文字コード周りはおざなりにすますと後々面倒が発生しやすいので、少し調査してみて設定をしてみることをおすすめします。


CC BY-SA 3.0
2016-07-08T15:03:19.420
27462
2016-07-08T15:03:19.420
13509
27451
answer