DBへ登録した全角文字が「???」になります。

もんもさん
2014-02-05 18:54 1781 1
DBへ登録した全角文字が「???」になります。
半角の英数字は問題なく入力できるのですが、平仮名、片仮名や漢字は正しく認識、登録されません。
データ型:varcharとtext
set names cp932 にしている状態で全角文字を登録で
??? と登録されてしまいます(その後phpで呼び出しても???)になります。
何を設定したら英数字以外の文字を正しく登録できるようになりますか?

コメント

2014年 02月 07日 (16:18)
こんにちは。
イノ(inno)です。

データ型をnvarcharに変更する必要があります。
またtextよりはnvarchar(max)型がおすすめです。

データを登録する時に下記のようになっているのを。。。。
INSERT INTO dbo.Table1 (UserName)
VALUES ('山田太郎')

「UserName」のデータ型を「nvarchar」に変更して
登録及び修正する際は下記のように文字列前に「N」大文字で入力する必要があります。

--登録する時
INSERT INTO dbo.Table1 (UserName)
VALUES (N'山田太郎')

--修正する時
UPDATE dbo.Table1
SET UserName = N'木村卓也'
WHERE Sn = 1

varcharをnvarcharに変更しても
既に登録されたデータは元に戻りません。
再度登録する必要があります。