回答編集履歴
22
追記
answer
CHANGED
@@ -44,7 +44,10 @@
|
|
44
44
|
------
|
45
45
|
実際XMLでSQLを外出しにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
46
46
|
xmlなので不等号(< や >)などのSQL文中にそのまま記述できないエスケープ文字がありましたね、そういえば。
|
47
|
+
※CDATAについて指摘があったので、追記。何れにせよエスケープ文字はあります。
|
48
|
+
> CDATAセクションは、 <や&をエスケープしなくてよい場所ですが、 ]]>という文字列が含まれる場合には ]]>のようにエスケープする必要があります。
|
47
49
|
|
50
|
+
|
48
51
|
じゃ、iniファイルではどうかというと、
|
49
52
|
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
50
53
|
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
21
修正
answer
CHANGED
@@ -49,6 +49,6 @@
|
|
49
49
|
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
50
50
|
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
51
51
|
|
52
|
-
と
|
52
|
+
何れにせよフォーマットがあるなら、エスケープ文字は付きまとうでしょうから、結局のところ、プレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
53
53
|
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
54
54
|
※もう古いですが([S2Dao.PHP5](http://s2dao.php5.seasar.org/))
|
20
追記
answer
CHANGED
@@ -50,4 +50,5 @@
|
|
50
50
|
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
51
51
|
|
52
52
|
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
53
|
-
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
53
|
+
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
54
|
+
※もう古いですが([S2Dao.PHP5](http://s2dao.php5.seasar.org/))
|
19
追記
answer
CHANGED
@@ -49,4 +49,5 @@
|
|
49
49
|
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
50
50
|
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
51
51
|
|
52
|
-
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
52
|
+
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
53
|
+
java系だと「2way-SQL方式」などという事で、外出し用のライブラリがあるので、PHPにも同様な物があるのかもしれませんが。
|
18
修正
answer
CHANGED
@@ -43,7 +43,7 @@
|
|
43
43
|
|
44
44
|
------
|
45
45
|
実際XMLでSQLを外出しにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
46
|
-
xmlなので不等号(< や >)などのSQL文中にそのまま記述できない文字
|
46
|
+
xmlなので不等号(< や >)などのSQL文中にそのまま記述できないエスケープ文字がありましたね、そういえば。
|
47
47
|
|
48
48
|
じゃ、iniファイルではどうかというと、
|
49
49
|
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
17
推敲
answer
CHANGED
@@ -49,4 +49,4 @@
|
|
49
49
|
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
50
50
|
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
51
51
|
|
52
|
-
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[
|
52
|
+
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[preg_split()](http://php.net/manual/ja/function.preg-split.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
16
推敲
answer
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
逆にどういった点を使いにくいと思われたのでしょう?
|
43
43
|
|
44
44
|
------
|
45
|
-
実際XMLでSQLを外
|
45
|
+
実際XMLでSQLを外出しにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
46
46
|
xmlなので不等号(< や >)などのSQL文中にそのまま記述できない文字というのがありましたね、そういえば。
|
47
47
|
|
48
48
|
じゃ、iniファイルではどうかというと、
|
15
追記
answer
CHANGED
@@ -39,4 +39,14 @@
|
|
39
39
|
|
40
40
|
> XMLやJSONを見ましたが、SQL文を外だしするという用途には、少し使いにくいような気がします。
|
41
41
|
|
42
|
-
逆にどういった点を使いにくいと思われたのでしょう?
|
42
|
+
逆にどういった点を使いにくいと思われたのでしょう?
|
43
|
+
|
44
|
+
------
|
45
|
+
実際XMLでSQLを外だしにするのはかなり前からありますし、その時のことを少し思い出したので追記。
|
46
|
+
xmlなので不等号(< や >)などのSQL文中にそのまま記述できない文字というのがありましたね、そういえば。
|
47
|
+
|
48
|
+
じゃ、iniファイルではどうかというと、
|
49
|
+
phpだと、[parse_ini_file()](http://php.net/manual/ja/function.parse-ini-file.php)で取得できるみたいですけど、多次元の配列で返却となってます。
|
50
|
+
この場合、改行の扱いがどうなるかですけど、ちょっとわかりませんでした。
|
51
|
+
|
52
|
+
ということで、やはりプレーンテキストで、セクションなどの決めを持たせて、読み込み後に、[str_getcsv()](http://www.php.net/manual/ja/function.str-getcsv.php)で分割して処理するなどとした方が、自由に加工出来て良いのではないでしょうか。
|
14
推敲
answer
CHANGED
@@ -35,7 +35,7 @@
|
|
35
35
|
上記からするとXMLじゃないでしょうか。
|
36
36
|
1.SQL文中には使用するDBMSのコメントが書けるし、XMLでのコメントも書ける。
|
37
37
|
2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
|
38
|
-
4.
|
38
|
+
4.読み出すのにどの道必要ですから、タグとして識別子を設定
|
39
39
|
|
40
40
|
> XMLやJSONを見ましたが、SQL文を外だしするという用途には、少し使いにくいような気がします。
|
41
41
|
|
13
追記
answer
CHANGED
@@ -35,4 +35,8 @@
|
|
35
35
|
上記からするとXMLじゃないでしょうか。
|
36
36
|
1.SQL文中には使用するDBMSのコメントが書けるし、XMLでのコメントも書ける。
|
37
37
|
2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
|
38
|
-
4.PHPから読み出すのにどの道必要ですから、タグとして識別子を設定
|
38
|
+
4.PHPから読み出すのにどの道必要ですから、タグとして識別子を設定
|
39
|
+
|
40
|
+
> XMLやJSONを見ましたが、SQL文を外だしするという用途には、少し使いにくいような気がします。
|
41
|
+
|
42
|
+
逆にどういった点を使いにくいと思われたのでしょう?
|
12
追記
answer
CHANGED
@@ -21,4 +21,18 @@
|
|
21
21
|
|
22
22
|
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルール等はきちんと決めて文書化しておかなければいけませんね。
|
23
23
|
|
24
|
-
責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。
|
24
|
+
責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。
|
25
|
+
|
26
|
+
追記2
|
27
|
+
--
|
28
|
+
質問の追記を見落としてましたので追記。
|
29
|
+
|
30
|
+
> 1(コメントを書ける)
|
31
|
+
> 2(join・サブクエリなどを利用すると長くなるので改行したい)
|
32
|
+
> 4(コメントと合わせて理解しやすいように重複しないユニークなエイリアスを付けたい。
|
33
|
+
> および、iniファイルのようなname=value型の構造をイメージしていた)
|
34
|
+
|
35
|
+
上記からするとXMLじゃないでしょうか。
|
36
|
+
1.SQL文中には使用するDBMSのコメントが書けるし、XMLでのコメントも書ける。
|
37
|
+
2.XMLのタグで囲まれた部分を、一つの文字列として取り出せば良いので改行を使用しても問題ない。
|
38
|
+
4.PHPから読み出すのにどの道必要ですから、タグとして識別子を設定
|
11
追記
answer
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
> 「SQL文を外だしするのに利用できるフォーマットはどのようなものがあるか」
|
2
2
|
|
3
|
-
そのファイル自体のメンテナンスとプログラムから読み込むということで、テキスト
|
3
|
+
そのファイル自体のメンテナンスとプログラムから読み込むということで、プレーンテキストで良いのじゃないでしょうか。
|
4
4
|
一般的なテキストエディタならSQLでのキーワードなどの強調文字などに対応していますし、文字コードの変更もしやすいですから。
|
5
5
|
|
6
6
|
[PHP内からの.sqlファイルの読み込みphp](https://code.i-harness.com/ja/q/2416d)
|
7
|
-
PHPには詳しくありませんが、
|
7
|
+
PHPには詳しくありませんが、プレースホルダを含めた形のSQLでも多分実行できると思います。
|
8
|
+
※同然プレースフォルダの値設定の処理は必要です。まあ、そこらへんは質問者さんは分かっておられると思いますけど。
|
8
9
|
但し、他の言語との互換性は低くなるでしょうが。
|
9
10
|
|
10
11
|
追記
|
@@ -12,6 +13,8 @@
|
|
12
13
|
質問者さんの参考にされたページのリンクに以下があります。
|
13
14
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
14
15
|
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
16
|
+
類似処理を一つのファイルに纏めるなどの拡張性を考えるとタグで管理できる、
|
17
|
+
XMLの方が良いかもしれませんね。
|
15
18
|
|
16
19
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
17
20
|
デメリットの方が大きいとするのは、関係が不明瞭になる、ってことですかね。
|
10
修正
answer
CHANGED
@@ -16,6 +16,6 @@
|
|
16
16
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
17
17
|
デメリットの方が大きいとするのは、関係が不明瞭になる、ってことですかね。
|
18
18
|
|
19
|
-
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
19
|
+
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルール等はきちんと決めて文書化しておかなければいけませんね。
|
20
20
|
|
21
21
|
責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。
|
9
修正
answer
CHANGED
@@ -16,4 +16,6 @@
|
|
16
16
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
17
17
|
デメリットの方が大きいとするのは、関係が不明瞭になる、ってことですかね。
|
18
18
|
|
19
|
-
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
19
|
+
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
20
|
+
|
21
|
+
責められるのは、「なんでこんな構成にした」よりも先に「なんで構成管理ができていないのか」だと思いますので。
|
8
推敲
answer
CHANGED
@@ -14,6 +14,6 @@
|
|
14
14
|
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
15
15
|
|
16
16
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
17
|
-
デメリットの方が大きいとするのは、
|
17
|
+
デメリットの方が大きいとするのは、関係が不明瞭になる、ってことですかね。
|
18
18
|
|
19
19
|
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
7
修正
answer
CHANGED
@@ -16,4 +16,4 @@
|
|
16
16
|
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
17
17
|
デメリットの方が大きいとするのは、人は忘れるものだからって、ことですかね。
|
18
18
|
|
19
|
-
モデル
|
19
|
+
モデルが複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
6
追記
answer
CHANGED
@@ -11,4 +11,9 @@
|
|
11
11
|
--
|
12
12
|
質問者さんの参考にされたページのリンクに以下があります。
|
13
13
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
14
|
-
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
14
|
+
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
15
|
+
|
16
|
+
私も分離した方が可読性は良くなるなどのメリットはあると思っています。
|
17
|
+
デメリットの方が大きいとするのは、人は忘れるものだからって、ことですかね。
|
18
|
+
|
19
|
+
モデルの構成要素が複数のソースファイルで構成されると、ドキュメント無しでは読めなくなってしまうという人が殆どって事なのでしょうから、後の人の事も考えてその構成のルールはきちんと決めて文書化しておかなければいけませんね。
|
5
推敲
answer
CHANGED
@@ -11,4 +11,4 @@
|
|
11
11
|
--
|
12
12
|
質問者さんの参考にされたページのリンクに以下があります。
|
13
13
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
14
|
-
この持ち方だと、修正などの影響範囲を少なくする事ができますね。
|
14
|
+
この持ち方だと、修正などでの影響範囲を少なくする事ができますね。
|
4
推敲
answer
CHANGED
@@ -11,4 +11,4 @@
|
|
11
11
|
--
|
12
12
|
質問者さんの参考にされたページのリンクに以下があります。
|
13
13
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
14
|
-
この持ち方だと、
|
14
|
+
この持ち方だと、修正などの影響範囲を少なくする事ができますね。
|
3
追記
answer
CHANGED
@@ -11,4 +11,4 @@
|
|
11
11
|
--
|
12
12
|
質問者さんの参考にされたページのリンクに以下があります。
|
13
13
|
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
14
|
-
この持ち方だと、SQLを外だしにも出来、使用しているソースとも1:1に
|
14
|
+
この持ち方だと、SQLを外だしにも出来、使用しているソースとも1:1に出来そうですね。
|
2
追記
answer
CHANGED
@@ -5,4 +5,10 @@
|
|
5
5
|
|
6
6
|
[PHP内からの.sqlファイルの読み込みphp](https://code.i-harness.com/ja/q/2416d)
|
7
7
|
PHPには詳しくありませんが、バインド変数を含めた形のSQLでも多分実行できると思います。
|
8
|
-
但し、他の言語との互換性は低くなるでしょうが。
|
8
|
+
但し、他の言語との互換性は低くなるでしょうが。
|
9
|
+
|
10
|
+
追記
|
11
|
+
--
|
12
|
+
質問者さんの参考にされたページのリンクに以下があります。
|
13
|
+
[SQLの共通を図ってはならない](http://isol.pro-s.co.jp/news/2008/11/26/sql-file2/)
|
14
|
+
この持ち方だと、SQLを外だしにも出来、使用しているソースとも1:1にも出来そうですね。
|
1
追記
answer
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
> 「SQL文を外だしするのに利用できるフォーマットはどのようなものがあるか」
|
2
2
|
|
3
3
|
そのファイル自体のメンテナンスとプログラムから読み込むということで、テキストファイルでいいのじゃないでしょうか。
|
4
|
+
一般的なテキストエディタならSQLでのキーワードなどの強調文字などに対応していますし、文字コードの変更もしやすいですから。
|
5
|
+
|
4
6
|
[PHP内からの.sqlファイルの読み込みphp](https://code.i-harness.com/ja/q/2416d)
|
5
|
-
|
6
7
|
PHPには詳しくありませんが、バインド変数を含めた形のSQLでも多分実行できると思います。
|
7
8
|
但し、他の言語との互換性は低くなるでしょうが。
|