質問編集履歴

2

MySQL情報追記しました。

2019/05/23 06:40

投稿

ringoman
ringoman

スコア17

test CHANGED
File without changes
test CHANGED
@@ -185,3 +185,15 @@
185
185
  レンタルサーバは[スターサーバ](https://www.star.ne.jp/?gclid=CjwKCAjw5pPnBRBJEiwAULZKvhZVZOjiGuz9ojl39X9JSc1uztf0IvUport_99HEF8lZ5udLYKiLoRoC9S0QAvD_BwE)です。
186
186
 
187
187
  先ほど、現状スターサーバとしてmysqlndを提供していないし、自身で導入することもできない。と回答をいただきました。
188
+
189
+
190
+
191
+ ### 追記3
192
+
193
+ MySQL関連の情報とは以下のような情報でよろしいでしょうか?
194
+
195
+ MySQL driver for PDO George Schlossnagle, Wez Furlong, Ilia Alshanetsky, Johannes Schlueter
196
+
197
+ MySQLi Zak Greant, Georg Richter, Andrey Hristov, Ulf Wendel
198
+
199
+ MySQLnd Andrey Hristov, Ulf Wendel, Georg Richter, Johannes Schlüter

1

コードを追加しました。サーバ名を追記しました。

2019/05/23 06:40

投稿

ringoman
ringoman

スコア17

test CHANGED
File without changes
test CHANGED
@@ -27,3 +27,161 @@
27
27
 
28
28
 
29
29
  よろしくお願いいたします。
30
+
31
+
32
+
33
+ ### 追記1
34
+
35
+ 実行したコードです。
36
+
37
+
38
+
39
+ ```php
40
+
41
+ $mysqli = new mysqli("localhost", "user", "password", "DB");
42
+
43
+
44
+
45
+ /* 接続状況をチェックします */
46
+
47
+ if (mysqli_connect_errno()) {
48
+
49
+ print_r('DB接続エラー<br>');
50
+
51
+ printf("Connect failed: %s\n", mysqli_connect_error());
52
+
53
+ exit();
54
+
55
+ }else{
56
+
57
+ print_r('DB接続成功<br>');
58
+
59
+ }
60
+
61
+
62
+
63
+ //プリペアードステートメントを作成
64
+
65
+ $stmt = $mysqli->prepare("SELECT t.* FROM test t WHERE user_name = ?");
66
+
67
+ //$stmt = $mysqli->prepare("SELECT t.col2 FROM test t WHERE user_name = ?");
68
+
69
+ print_r('プリペア作成した<br>');
70
+
71
+
72
+
73
+ if ($stmt) {
74
+
75
+ $u_name = 'テストユーザ1';
76
+
77
+
78
+
79
+ /* マーカにパラメータをバインドします */
80
+
81
+ $stmt->bind_param("s", $u_name);
82
+
83
+ print_r('バインド後<br>');
84
+
85
+
86
+
87
+ /* クエリを実行します */
88
+
89
+ $stmt->execute();
90
+
91
+ print_r('実行後<br>');
92
+
93
+
94
+
95
+ /* 結果変数をバインドします */
96
+
97
+ //$stmt->bind_result($un);
98
+
99
+ $result = $stmt->get_result();
100
+
101
+ print_r('結果バインド後<br>');
102
+
103
+
104
+
105
+ /* 値を取得します */
106
+
107
+ /*while ($stmt->fetch()) {
108
+
109
+ echo 'ユーザ名「 '.$un.'」<br>';
110
+
111
+ }*/
112
+
113
+ while ($row = $result->fetch_assoc()) {
114
+
115
+ echo 'ユーザ番号「 '.$row['col1'].'」<br>';
116
+
117
+ echo 'ユーザ名「 '.$row['col2'].'」<br>';
118
+
119
+ echo 'ユーザURL「 '.$row['col3'].'」<br>';
120
+
121
+ echo 'ユーザ郵便番号「 '.$row['col4'].'」<br>';
122
+
123
+ echo 'ユーザ都道府県「 '.$row['col5'].'」<br>';
124
+
125
+ }
126
+
127
+
128
+
129
+ /*指定したステートメントハンドルの結果を格納したメモリを開放する*/
130
+
131
+ $stmt->free_result();
132
+
133
+ print_r('メモリ開放後<br>');
134
+
135
+
136
+
137
+ /* ステートメントを閉じます */
138
+
139
+ $stmt->close();
140
+
141
+ print_r('ステートメント閉じ後<br>');
142
+
143
+
144
+
145
+ }
146
+
147
+ ```
148
+
149
+ ※上記コードを実行すると
150
+
151
+ ```php
152
+
153
+ /* クエリを実行します */
154
+
155
+ $stmt->execute();
156
+
157
+ print_r('実行後<br>');
158
+
159
+ ```
160
+
161
+ の「実行後」までしか表示されません。
162
+
163
+
164
+
165
+ ※上記コード中コメントアウトしてある以下のコードを使用すると最後まで正常実行され、ユーザ名も想定通りのものが表示されます。
166
+
167
+ ```php
168
+
169
+ //$stmt = $mysqli->prepare("SELECT t.col2 FROM test t WHERE user_name = ?");
170
+
171
+ //$stmt->bind_result($un);
172
+
173
+ /*while ($stmt->fetch()) {
174
+
175
+ echo 'ユーザ名「 '.$un.'」<br>';
176
+
177
+ }*/
178
+
179
+ ```
180
+
181
+
182
+
183
+ ### 追記2
184
+
185
+ レンタルサーバは[スターサーバ](https://www.star.ne.jp/?gclid=CjwKCAjw5pPnBRBJEiwAULZKvhZVZOjiGuz9ojl39X9JSc1uztf0IvUport_99HEF8lZ5udLYKiLoRoC9S0QAvD_BwE)です。
186
+
187
+ 先ほど、現状スターサーバとしてmysqlndを提供していないし、自身で導入することもできない。と回答をいただきました。