SQL Server Driver for PHP って日本語カラム名はダメなのか?
週末にプチハマり気味。
もともとは、SQLAzureにPHPから繋げたかっただけ。
で、それはまあ、当然というか、できたのですが、Sampleコードをローカルで作っていた時、発生した問題が解決できず・・・。
で、その問題ですが、日本語で設定されたカラム名のデータをうまくFetchできないというもの。
「カラム名に日本語なんか使うなよ!」
と言うなかれ。
私が作ったDBではありません・・・。だから、なお厄介。勝手に変えられないし。
SQL Server Driver for PHP 2.0で起こる。
たぶん私の書き方が悪いのでしょう。そうだ、そうに違いない。
ちなみに、基本文字コードは、UTF-8
テーブルを
CREATE TABLE [dbo].[商品マスタ](
[商品コード] [int] NULL,
[商品名] [nvarchar](50) NULL,
[商品価格] [int] NULL
) ON [PRIMARY]
こんな感じでつくる。
で、
while($row = sqlsrv_fetch_array($res,SQLSRV_FETCH_ASSOC))
{
echo $row['商品コード'] . $row['商品名'] . $row['商品価格'] . "<br/>";
}
とすると音沙汰なし。
while($row = sqlsrv_fetch_array($res,SQLSRV_FETCH_NUMERIC)
{
echo $row[0] . $row[1] . $row[2] . "<br/>";
}
だと取れます。
なんか、配列のキー自体が文字化けしてる感じ。
もち、Connectで、'CharacterSet' => 'utf-8',してます。
うーん。