データのアップロードからDBに格納するまでの流れを考える

流れとしては
viewでユーザがファイルアップロードのformを使って飛ばす。
controllerのphpでデータを受け取り、SQL文を書いてあるphpファイル(SQL Loader)を呼び出してそいつにデータを渡す。
SQL Loaderではサーバを呼び出し、規定のフォルダ階層に保存していく。と同時にDBの形をとったカラムにする。

参考記事
特にこの記事にはサンプルソースが乗っているので参考になる。
CSVファイルのアップロード& SQL*Loader での登録
http://www.doyouphp.jp/sample/……ools.shtml

Zend Frameworkで

1. $table = new Bugs();
2.
3. $data = array < http://www.php.net/array>(
4. ‘created_on’ => ‘2007-03-22’,
5. ‘bug_description’ => ‘何かおかしい’,
6. ‘bug_status’ => ‘NEW’
7. );
8.
9. $table->insert($data);

参考
http://framework.zend.com/manu……table.html

で記述することが出来る。
これはテーブルの行を作っている。

次に考えることは
array()で一つ一つ記述するのではなく、(csv形式なのか、アップロードしたデータそのものの形なのかわからないが)
データそのものの順番で、上から行にデータを入れていく必要がありそう。

zendでexcelファイルの中身を見る方法はないか。csv形式か?

SQL*Loaderでできるのではないか。

結局、csv形式にするしかないのではないか。
csvでアップロードしたものを、DBに格納する。

参考
http://astrodeo.com/blog/archives/686

行を選択し、表示する際のコード

1. /**
2. * 行セットを取得します
3. */
4. $rows = $table->fetchAll(
5. ‘bug_status = “NEW”‘,
6. ‘bug_id ASC’,
7. 10,
8. 0
9. );
10. $rows = $table->fetchAll(
11. $table->select()
12. ->where(‘bug_status = ?’, ‘NEW’)
13. ->order(‘bug_id ASC’)
14. ->limit(10, 0)
15. );
16. // またはバインディングを用いて
17. $rows = $table->fetchAll(
18. $table->select()
19. ->where(‘bug_status = :status’)
20. ->bind(array < http://www.php.net/array>(‘:status’=>’NEW’)
21. ->order(‘bug_id ASC’)
22. ->limit(10, 0)
23. );
24.
25. /**
26. * 単一の行を取得します
27. */
28. $row = $table->fetchRow(
29. ‘bug_status = “NEW”‘,
30. ‘bug_id ASC’
31. );
32. $row = $table->fetchRow(
33. $table->select()
34. ->where(‘bug_status = ?’, ‘NEW’)
35. ->order(‘bug_id ASC’)
36. );
37. // またはバインディングを用いて
38. $row = $table->fetchRow(
39. $table->select()
40. ->where(‘bug_status = :status’)
41. ->bind(array < http://www.php.net/array>(‘:status’=>’NEW’)
42. ->order(‘bug_id ASC’)
43. );