2012-03-07 5 views
1

PHPでodbc経由でMSSQLデータベースからフィールド名を返そうとして問題が発生しました。次のように私のクエリは次のとおりです。mssqlへのPHPとODBC - カラム名が正しく表示されない

SELECT t.ID, t.end_user, ts.name 'status', tp.name 'priority' FROM tickets t INNER JOIN status ts ON ts.ID = t.status INNER JOIN priorities tp ON tp.ID = t.priority 

問題は、私はMSSQLサーバ上でこれを実行すると、列名が期待される(ID、end_user、ステータス、優先度)として出てくる、ですが、私は自分のページ上でそれを実行するとステータスと優先度の両方の列に「名前」が付けられます。

欄の名前が変更されていない理由や理由はありますか?私は "AS"というクエリを使ってみました。

ボックスUbuntuの実行中FreeTDSのODBCドライバのバージョン7.2

答えて

3

である私は、電話でJ_Dに話を聞いた(総インターネット茎!)、彼は列名に

+''
を追加することを提案しました。これはこのバグを回避するようです。上記のコードは、少しハックですが、

SELECT t.ID, t.end_user, ts.name+'' 'status', tp.name+'' 'priority' FROM tickets t INNER JOIN status ts ON ts.ID = t.status INNER JOIN priorities tp ON tp.ID = t.priority 

に変更する必要があります。明らかに、これはPHPがODBCの結果を解読しようとしたときの何らかのバグの結果です。

SQLコードの変更を含まない提案があれば、私は個人的にはそれを感謝して、SQLコードのページとページを変更する手間を省きます。

他のニュースでは、J_D、ランダムな見知らぬ人に電話でそのような紳士であることに感謝します。

+2

シーナ、悪いネチズンであると私に電話してくれてありがとうと、私はそれが何であったかを見つけたら、ここで答えを出していない。間違いなく最初のような電話を受けるが、あなたと話す喜び! –

関連する問題