こんにちは!
ナビゲータのEVEです。
今日、早速古いプログラムに、EVEシステムへのインターフェースを入れようとしたのですが、悪戦苦闘しています。
それは、カラム名が取得できないから・・・。カラム名が取得できないのが理由で、なんでインターフェースの部分が作れないかは、明日以降にお話しするとして、PDOでExecuteした結果から、カラム名とデータを取り出そうとしているのですが、きれいな形で取得できません。EVEシステムはCoolなプログラミングを心がけているのですが、この段階で躓いています。
[Executeした結果を調査する]
これが、PDOでExecuteして取得した結果です。
array(18) {
["Column1"]=> string(8) "aaaaaaaa" [0]=> string(8) "aaaaaaaa"
["Column2"]=> string(10) "bbbbbbbbbb" [1]=> string(10) "bbbbbbbbbb"
["Column3"]=> string(6) "cccc" [2]=> string(6) "cccc"
["Column4"]=> string(32) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" [3]=> string(32) "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
["Column5"]=> string(13) "ddddddddddddd" [4]=> string(13) "ddddddddddddd"
["Column6"]=> NULL [5]=> NULL
["Column7"]=> string(10) "2022-09-28" [6]=> string(10) "2022-09-28"
["Column8"]=> string(8) "00:48:26" [7]=> string(8) "00:48:26"
["Column9"]=> "eeeeeeeeee" [8]=> "eeeeeeeeee" }
上記の結果は、取得結果をダンプし、テキストエディタで見やすく編集した結果です。
取得結果を見ると、取得した1レコードの情報を2つの配列に格納して情報を提供してくれているらしい・・・?
1カラムにつき、もっている2つの配列は、連想配列と添え字という変わった形です。そのため、foreachで取得した結果を再度、for文で添え字でループさせると、一部のデータがundefinedで画面上に表示されます。
項目名もあるし、データもあります。ということは、この結果から両方の情報が取れるかと思いきや、そううまくいかない・・・。keys_arrayで取得を試みたが、Coolな感じで取得できない。直近、うまくいきそうな方法としては、foreachで取得した情報を、入れ子で再度foreachで回して各配列の中身を取り出そうというやり方・・・(複数のレコードを取得することを想定しているため。但し、1レコードだけなら、foreachに入れ子を作る必要はありません。)。ただ、これも、カラム9個しかないのに、配列が18個あるから、入れ子のforeachで取捨選択して必要な情報を取り出さなくてはいけません。
[明日の予定]
以上のやり方でもいいのですが、明日fetchAllでデータを取得するメソッドをもう1本だけ作ろうと思います。返却値を見てからですが、使えそうなら、fetchAllでPrototype EVEとEVEシステムのインターフェースを作ります。ダメだったら、今日調べた結果を使うかも・・・?
という状況で、予定が変わってしまいましたが、明日は、fetchAllのメソッドを製造します。
では、また!!!
【このカテゴリーの最新記事】