質問編集履歴

3

コードの修正

2021/05/29 03:57

投稿

yy_hatena
yy_hatena

スコア12

test CHANGED
File without changes
test CHANGED
@@ -148,7 +148,7 @@
148
148
 
149
149
       $this->Class_A->method_1($date);
150
150
 
151
-
151
+      ++$d ;
152
152
 
153
153
     }
154
154
 

2

追加項目のため

2021/05/29 03:57

投稿

yy_hatena
yy_hatena

スコア12

test CHANGED
File without changes
test CHANGED
@@ -168,6 +168,10 @@
168
168
 
169
169
  このとき、method_1() という関数は、正常にデータベースに接続されるのか?を知りたいです。
170
170
 
171
+ ※ 現状、接続できずにエラーが出ています。
172
+
173
+
174
+
171
175
  また、上記のような場合に、もっと正しいデータベース接続箇所があれば、教えて頂きたいです。
172
176
 
173
177
  ※ フレームワーク等は使わずに、勉強のために知りたいです。

1

投稿時に、以前のセッションが残っていてそれが反映してしまい、最新の内容が投稿できなかったため

2021/05/29 03:54

投稿

yy_hatena
yy_hatena

スコア12

test CHANGED
File without changes
test CHANGED
@@ -2,9 +2,31 @@
2
2
 
3
3
 
4
4
 
5
- 早速ですが、下記のような接続はダメなやつでしょうか?
5
+ <利用環境>
6
6
 
7
+ PHP 7
8
+
9
+ MySQL 5.6
10
+
11
+
12
+
13
+ ##知りたいこと
14
+
15
+ php の PDO を利用したMySqlへの接続で、例えば、
16
+
7
- より良方法ありましら、教えて頂きたです。どぞが宜しくお願い致します。
17
+ 「A」とう名前のクラス内で、SQL文 書かれ method_1() という関数を、
18
+
19
+ 「B」という名前のクラス内で実行した場合、データベースへの接続は正常にされるのか?を知りたいです。
20
+
21
+ このとき、「A」という名前のクラスでは、データベースへの接続は行いません。
22
+
23
+
24
+
25
+ ---
26
+
27
+
28
+
29
+ コードで書くと下記のようなイメージです。
8
30
 
9
31
  ```PHP
10
32
 
@@ -15,6 +37,8 @@
15
37
 
16
38
 
17
39
  protected function DbConnect(){
40
+
41
+
18
42
 
19
43
  $this->user = 'user';
20
44
 
@@ -32,6 +56,8 @@
32
56
 
33
57
  $this->connect->query('SET NAMES utf8');
34
58
 
59
+
60
+
35
61
  }
36
62
 
37
63
 
@@ -44,17 +70,39 @@
44
70
 
45
71
  // php_2.php に記述
46
72
 
47
- class AAA {
73
+ class A extends DB{
48
74
 
49
75
 
50
76
 
51
-   public function method_1(){
77
+   public function method_1($var){
52
78
 
53
-    // 何らかのSQL処理が書かれた関数
54
79
 
55
-    // 色々なところで使われる関数です。データベースには接続しない状態です。
56
80
 
57
-    // 理由=> 関数をループ内も使用る場合があり、ここで接続をしてしまうとプの回数分、接続を繰り返すことで重くりそう、と勝手に考えてす。
81
+    // 色々なとろで使うことを想定した関数ですここでタベースには接続ない状態です。
82
+
83
+    /************************************************************************
84
+
85
+    理由
86
+
87
+    この関数をループ内でも使用する場合があり、ここで接続をしてしまうと、
88
+
89
+    ループの回数分、接続を繰り返すことで重くなりそう、と思ってたりしますがどうなんでしょうか?そんなことはないでしょうか...?
90
+
91
+    ***********************************************************************/
92
+
93
+    $this->getDate = $var ; // $var はエスケープされているものとします
94
+
95
+    $sql = 'SELECT * FROM `table_name` WHERE `date` = :date';
96
+
97
+    $stmt = $this->connect->prepare($sql);
98
+
99
+    $stmt->bindParam(":date", $this->getDate, PDO::PARAM_INT);
100
+
101
+    $stmt->execute();
102
+
103
+    $sql_error = $stmt->errorInfo();
104
+
105
+    // 以降はSQLの実行結果を分岐して結果を return で返します。
58
106
 
59
107
    }
60
108
 
@@ -70,7 +118,7 @@
70
118
 
71
119
  // php_3.php に記述
72
120
 
73
- class BBB extends DB {
121
+ class B extends DB {
74
122
 
75
123
 
76
124
 
@@ -80,17 +128,29 @@
80
128
 
81
129
     
82
130
 
83
-    // class AAA 読み込み処理など
131
+    // class A
84
132
 
85
-    $this->Class_AAA = new AAA();
133
+    $this->Class_A = new A();
134
+
135
+    
136
+
137
+    // 日付などのループ処理
138
+
139
+    while(checkdate($m, $d, $y)){
140
+
141
+      $date = $y.$m.$d;
142
+
143
+      /****************************************
144
+
145
+      ここが、ちゃんと接続されるのか?を知りたいです。
146
+
147
+      ****************************************/
148
+
149
+      $this->Class_A->method_1($date);
86
150
 
87
151
 
88
152
 
89
-    // class AAA の method_1() を実行
90
-
91
-    // ここが、接続されるのか?を知りたいです。
153
+    }
92
-
93
-    $this->Class_AAA->method_1();
94
154
 
95
155
 
96
156
 
@@ -104,10 +164,16 @@
104
164
 
105
165
 
106
166
 
167
+ ```
168
+
169
+ このとき、method_1() という関数は、正常にデータベースに接続されるのか?を知りたいです。
170
+
171
+ また、上記のような場合に、もっと正しいデータベース接続箇所があれば、教えて頂きたいです。
172
+
173
+ ※ フレームワーク等は使わずに、勉強のために知りたいです。
107
174
 
108
175
 
109
176
 
177
+ すみません、上記コードでは情報が足りないかもしれませんが、お分かりになる範囲で教えて頂けると幸いです。
110
178
 
111
-
112
-
113
- ```
179
+ どうぞ宜しくお願い申し上げます。