オルタナティブ・ブログ > ビジネスをデザインするブログ >

事業開発ほどクリエイティブな行為は他に無いと思いこんでいる人間の日常

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',してます。

うーん。

Comment(0)