質問編集履歴

3

修正

2017/04/13 09:01

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -17,175 +17,3 @@
17
17
  test_table
18
18
 
19
19
  ```
20
-
21
-
22
-
23
- ```php
24
-
25
- <?php /* js to sql */
26
-
27
-
28
-
29
- include(dirname(__FILE__).'/import.php');
30
-
31
-
32
-
33
- $inputData = json_decode($_POST['inputData']);
34
-
35
-
36
-
37
- //select結果格納用配列初期化
38
-
39
- $data = array();
40
-
41
- for($i=0;$i<count($inputData);$i++){
42
-
43
- $record = $inputData[$i];
44
-
45
- $rows = array();
46
-
47
- //sqlの情報を取得
48
-
49
- $sqlfile = array_shift($record);
50
-
51
- $sqlpath = get_sql_base_path(dirname(__FILE__)).$sqlfile;
52
-
53
- $sql = @file_get_contents($sqlpath);
54
-
55
-
56
-
57
- //sqlの内容がselectであるか
58
-
59
- if( mb_strtolower( substr($sql, 0, 6) ) !== 'select'){
60
-
61
- header('HTTP/1.0 403 Forbidden');
62
-
63
- exit;
64
-
65
- }
66
-
67
-
68
-
69
- if(!select($sql, $rows, $record)){
70
-
71
- //select失敗
72
-
73
- header('Content-Type: application/json');
74
-
75
- echo json_encode( false );
76
-
77
- exit;
78
-
79
- }
80
-
81
-
82
-
83
- array_push($data,$rows);
84
-
85
- }
86
-
87
- header('Content-Type: application/json');
88
-
89
- echo json_encode( $data );
90
-
91
- exit;
92
-
93
-
94
-
95
- ?>
96
-
97
- ```
98
-
99
-
100
-
101
- ```php
102
-
103
- function select($sql, &$data, $params){
104
-
105
- $data = array(); //データ配列初期化
106
-
107
- $mysqli = get_connection();
108
-
109
- if(is_null($mysqli)){
110
-
111
- return false;
112
-
113
- }
114
-
115
- if(!is_array($params))$params = array();
116
-
117
-
118
-
119
- if(count($params)>0){
120
-
121
- //パラメータが1つ以上存在する場合
122
-
123
- $stmt = mysqli_stmt_init($mysqli);
124
-
125
- if(!mysqli_stmt_prepare($stmt, $sql)){
126
-
127
- //SQLステートメント実行準備失敗
128
-
129
- return false;
130
-
131
- }
132
-
133
- $stmt_params = array($stmt, '');
134
-
135
- foreach($params as $idx => $value){
136
-
137
- if(is_int($value))$stmt_params[1] .= 'i';
138
-
139
- else if(is_float($value))$stmt_params[1] .= 'd';
140
-
141
- else if(is_string($value))$stmt_params[1] .= 's';
142
-
143
- //else return false;
144
-
145
- $stmt_params[] = &$params[$idx];
146
-
147
- }
148
-
149
- call_user_func_array( "mysqli_stmt_bind_param" ,$stmt_params );
150
-
151
- if(!mysqli_stmt_execute($stmt)){
152
-
153
- //SQLステートメント実行失敗
154
-
155
- return false;
156
-
157
- }
158
-
159
- $result = mysqli_stmt_get_result($stmt);
160
-
161
- }else{
162
-
163
- //上記以外の場合
164
-
165
- $result = mysqli_query($mysqli, $sql, MYSQLI_STORE_RESULT );
166
-
167
- }
168
-
169
-
170
-
171
- while ($row = mysqli_fetch_assoc($result)){
172
-
173
- //結果を処理
174
-
175
- array_push($data, $row);
176
-
177
- }
178
-
179
-
180
-
181
- mysqli_free_result($result);
182
-
183
- mysqli_close($mysqli);
184
-
185
-
186
-
187
- return true;
188
-
189
- }
190
-
191
- ```

2

修正

2017/04/13 09:01

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,84 @@
15
15
  from
16
16
 
17
17
  test_table
18
+
19
+ ```
20
+
21
+
22
+
23
+ ```php
24
+
25
+ <?php /* js to sql */
26
+
27
+
28
+
29
+ include(dirname(__FILE__).'/import.php');
30
+
31
+
32
+
33
+ $inputData = json_decode($_POST['inputData']);
34
+
35
+
36
+
37
+ //select結果格納用配列初期化
38
+
39
+ $data = array();
40
+
41
+ for($i=0;$i<count($inputData);$i++){
42
+
43
+ $record = $inputData[$i];
44
+
45
+ $rows = array();
46
+
47
+ //sqlの情報を取得
48
+
49
+ $sqlfile = array_shift($record);
50
+
51
+ $sqlpath = get_sql_base_path(dirname(__FILE__)).$sqlfile;
52
+
53
+ $sql = @file_get_contents($sqlpath);
54
+
55
+
56
+
57
+ //sqlの内容がselectであるか
58
+
59
+ if( mb_strtolower( substr($sql, 0, 6) ) !== 'select'){
60
+
61
+ header('HTTP/1.0 403 Forbidden');
62
+
63
+ exit;
64
+
65
+ }
66
+
67
+
68
+
69
+ if(!select($sql, $rows, $record)){
70
+
71
+ //select失敗
72
+
73
+ header('Content-Type: application/json');
74
+
75
+ echo json_encode( false );
76
+
77
+ exit;
78
+
79
+ }
80
+
81
+
82
+
83
+ array_push($data,$rows);
84
+
85
+ }
86
+
87
+ header('Content-Type: application/json');
88
+
89
+ echo json_encode( $data );
90
+
91
+ exit;
92
+
93
+
94
+
95
+ ?>
18
96
 
19
97
  ```
20
98
 

1

修正

2017/02/21 08:52

投稿

coko1
coko1

スコア276

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,6 @@
1
1
  タイトル通りの質問になるのですが、郵便番号を切り分けて取得するために、以下のようなSQLを記述しているのですが、取得結果で切り分けた状態で郵便番号が取得できません。なぜだかわかる方お力を貸していただけないでしょうか?
2
+
3
+ ※seelect事態は正常に行なわれています。
2
4
 
3
5
 
4
6