Subversion Repositories php-qbpwcf

Rev

Rev 220 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 220 Rev 226
Line 1... Line 1...
1
<?php
1
<?php
2
 
2
 
3
/*
3
/*
4
 
4
 
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
5
	QBPWCF, Quick Build PHP website Component base on Fedora Linux.
6
    Copyright (C) 2014~2025 Min-Jhin,Chen
6
    Copyright (C) 2014~2025 MIN ZHI, CHEN
7
 
7
 
8
    This file is part of QBPWCF.
8
    This file is part of QBPWCF.
9
 
9
 
10
    QBPWCF is free software: you can redistribute it and/or modify
10
    QBPWCF is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
11
    it under the terms of the GNU General Public License as published by
Line 46... Line 46...
46
	#$arguments,陣列,為呼叫方法時所用的參數.
46
	#$arguments,陣列,為呼叫方法時所用的參數.
47
	#參考資料:
47
	#參考資料:
48
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
48
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
49
	*/
49
	*/
50
	public function __call($method,$arguments){
50
	public function __call($method,$arguments){
51
		
51
 
52
		#取得當前執行的函式
52
		#取得當前執行的函式
53
		$result["function"]=__FUNCTION__;
53
		$result["function"]=__FUNCTION__;
54
		
54
 
55
		#設置執行不正常
55
		#設置執行不正常
56
		$result["status"]="false";
56
		$result["status"]="false";
57
		
57
 
58
		#設置執行錯誤
58
		#設置執行錯誤
59
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
59
		$result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
60
		
60
 
61
		#設置所丟入的參數
61
		#設置所丟入的參數
62
		$result["error"][]=$arguments;
62
		$result["error"][]=$arguments;
63
		
63
 
64
		#回傳結果
64
		#回傳結果
65
		return $result;
65
		return $result;
66
		
66
 
67
		}#function __call end
67
		}#function __call end
68
		
68
 
69
	/*
69
	/*
70
	#函式說明:
70
	#函式說明:
71
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
71
	#當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
72
	#回傳結果:
72
	#回傳結果:
73
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
73
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 78... Line 78...
78
	#$arguments,陣列,為呼叫方法時所用的參數.
78
	#$arguments,陣列,為呼叫方法時所用的參數.
79
	#參考資料:
79
	#參考資料:
80
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
80
	#__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
81
	*/
81
	*/
82
	public static function __callStatic($method,$arguments){
82
	public static function __callStatic($method,$arguments){
83
		
83
 
84
		#取得當前執行的函式
84
		#取得當前執行的函式
85
		$result["function"]=__FUNCTION__;
85
		$result["function"]=__FUNCTION__;
86
		
86
 
87
		#設置執行不正常
87
		#設置執行不正常
88
		$result["status"]="false";
88
		$result["status"]="false";
89
		
89
 
90
		#設置執行錯誤
90
		#設置執行錯誤
91
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
91
		$result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
92
		
92
 
93
		#設置所丟入的參數
93
		#設置所丟入的參數
94
		$result["error"][]=$arguments;
94
		$result["error"][]=$arguments;
95
		
95
 
96
		#回傳結果
96
		#回傳結果
97
		return $result;
97
		return $result;
98
		
98
 
99
		}#function __callStatic end
99
		}#function __callStatic end
100
 
100
 
101
	/*
101
	/*
102
	#函式說明:
102
	#函式說明:
103
	#連線到mysql-server,會回傳一個陣列
103
	#連線到mysql-server,會回傳一個陣列
Line 118... Line 118...
118
	#$conf["dbPort"]="3306";
118
	#$conf["dbPort"]="3306";
119
	#參考資料:
119
	#參考資料:
120
	#無.
120
	#無.
121
	#備註:
121
	#備註:
122
	#無.
122
	#無.
123
	*/	
123
	*/
124
	public static function mysqlConnect(&$conf){
124
	public static function mysqlConnect(&$conf){
125
 
125
 
126
		#初始化要回傳的內容
126
		#初始化要回傳的內容
127
		$result=array();
127
		$result=array();
128
 
128
 
129
		#取得當前執行的函數名稱
129
		#取得當前執行的函數名稱
130
		$result["function"]=__FUNCTION__;
130
		$result["function"]=__FUNCTION__;
131
 
131
 
132
		#如果 $conf 不為陣列
132
		#如果 $conf 不為陣列
133
		if(gettype($conf)!="array"){
133
		if(gettype($conf)!="array"){
134
			
134
 
135
			#設置執行失敗
135
			#設置執行失敗
136
			$result["status"]="false";
136
			$result["status"]="false";
137
			
137
 
138
			#設置執行錯誤訊息
138
			#設置執行錯誤訊息
139
			$result["error"][]="\$conf變數須為陣列形態";
139
			$result["error"][]="\$conf變數須為陣列形態";
140
 
140
 
141
			#如果傳入的參數為 null
141
			#如果傳入的參數為 null
142
			if($conf==null){
142
			if($conf==null){
143
				
143
 
144
				#設置執行錯誤訊息
144
				#設置執行錯誤訊息
145
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
145
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
146
				
146
 
147
				}#if end
147
				}#if end
148
 
148
 
149
			#回傳結果
149
			#回傳結果
150
			return $result;
150
			return $result;
151
			
151
 
152
			}#if end
152
			}#if end
153
 
153
 
154
		#檢查參數
154
		#檢查參數
155
		#函式說明:
155
		#函式說明:
156
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
156
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 167... Line 167...
167
		#必填參數:
167
		#必填參數:
168
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
168
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
169
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
169
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
170
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
170
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
171
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount");
171
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount");
172
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
172
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
173
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
173
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
174
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
174
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
175
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
175
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
176
		#可省略參數:
176
		#可省略參數:
177
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
177
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
178
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
178
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
179
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
179
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
180
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
180
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
181
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
181
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
182
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
182
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
183
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
183
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
184
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
184
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
185
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
185
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
186
		#$conf["arrayCountEqualCheck"][]=array();
186
		#$conf["arrayCountEqualCheck"][]=array();
187
		#參考資料:
187
		#參考資料:
188
		#array_keys=>http://php.net/manual/en/function.array-keys.php
188
		#array_keys=>http://php.net/manual/en/function.array-keys.php
189
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
189
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
190
		unset($conf["variableCheck::checkArguments"]);
190
		unset($conf["variableCheck::checkArguments"]);
191
		
191
 
192
		#如果檢查失敗
192
		#如果檢查失敗
193
		if($checkResult["status"]=="false"){
193
		if($checkResult["status"]=="false"){
194
			
194
 
195
			#設置錯誤識別
195
			#設置錯誤識別
196
			$result["status"]="false";
196
			$result["status"]="false";
197
			
197
 
198
			#設置錯誤訊息
198
			#設置錯誤訊息
199
			$result["error"]=$checkResult;
199
			$result["error"]=$checkResult;
200
			
200
 
201
			#回傳解果
201
			#回傳解果
202
			return $result;
202
			return $result;
203
			
203
 
204
			}#if end
204
			}#if end
205
 
205
 
206
		#如果 $checkResult["status"]等於"false";
206
		#如果 $checkResult["status"]等於"false";
207
		if($checkResult["passed"]=="false"){
207
		if($checkResult["passed"]=="false"){
208
			
208
 
209
			#設置錯誤識別
209
			#設置錯誤識別
210
			$result["status"]="false";
210
			$result["status"]="false";
211
			
211
 
212
			#設置錯誤訊息
212
			#設置錯誤訊息
213
			$result["error"]=$checkResult;
213
			$result["error"]=$checkResult;
214
			
214
 
215
			#回傳解果
215
			#回傳解果
216
			return $result;
216
			return $result;
217
			
217
 
218
			}#if end
218
			}#if end
219
 
219
 
220
		#如果是 localhost
220
		#如果是 localhost
221
		if($conf["dbAddress"]==="localhost"){
221
		if($conf["dbAddress"]==="localhost"){
222
		
222
 
223
			#卸除dbPort變數
223
			#卸除dbPort變數
224
			unset($conf["dbPort"]);
224
			unset($conf["dbPort"]);
225
		
225
 
226
			}#if end
226
			}#if end
227
 
227
 
228
		#如果密碼爲空,則爲不使用密碼進行連綫
228
		#如果密碼爲空,則爲不使用密碼進行連綫
229
		if(!isset($conf["dbPassword"])){
229
		if(!isset($conf["dbPassword"])){
230
 
230
 
Line 232... Line 232...
232
			if(!isset($conf["dbPort"])){
232
			if(!isset($conf["dbPort"])){
233
 
233
 
234
				#設定資料庫位置與帳號,並連線
234
				#設定資料庫位置與帳號,並連線
235
				#若連線失敗
235
				#若連線失敗
236
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"],$conf["dbAccount"]))){
236
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"],$conf["dbAccount"]))){
237
					
237
 
238
					#設置連線失敗的提示
238
					#設置連線失敗的提示
239
					$result["error"][]="連線失敗,請檢查帳號是否正確.";
239
					$result["error"][]="連線失敗,請檢查帳號是否正確.";
240
					
240
 
241
					#取得連線時的錯誤編號
241
					#取得連線時的錯誤編號
242
					$result["error"][]=mysqli_connect_errno();
242
					$result["error"][]=mysqli_connect_errno();
243
					
243
 
244
					#取得連線時的錯誤訊息
244
					#取得連線時的錯誤訊息
245
					$result["error"][]=mysqli_connect_error();
245
					$result["error"][]=mysqli_connect_error();
246
					
246
 
247
					#設置執行失敗
247
					#設置執行失敗
248
					$result["status"]="false";
248
					$result["status"]="false";
249
					
249
 
250
					#回傳結果
250
					#回傳結果
251
					return $result;
251
					return $result;
252
					
252
 
253
					}#if end
253
					}#if end
254
				
254
 
255
				}#if end
255
				}#if end
256
				
256
 
257
			#反之
257
			#反之
258
			else{
258
			else{
259
			
259
 
260
				#設定資料庫位置與port與帳號,並連線
260
				#設定資料庫位置與port與帳號,並連線
261
				#若連線失敗
261
				#若連線失敗
262
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"].":".$conf["dbPort"],$conf["dbAccount"]))){
262
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"].":".$conf["dbPort"],$conf["dbAccount"]))){
263
					
263
 
264
					#設置連線失敗的提示
264
					#設置連線失敗的提示
265
					$result["error"][]="連線失敗,請檢查帳號是否正確.";
265
					$result["error"][]="連線失敗,請檢查帳號是否正確.";
266
					
266
 
267
					#取得連線時的錯誤編號
267
					#取得連線時的錯誤編號
268
					$result["error"][]=mysqli_connect_errno();
268
					$result["error"][]=mysqli_connect_errno();
269
					
269
 
270
					#取得連線時的錯誤訊息
270
					#取得連線時的錯誤訊息
271
					$result["error"][]=mysqli_connect_error();
271
					$result["error"][]=mysqli_connect_error();
272
					
272
 
273
					#設置執行失敗
273
					#設置執行失敗
274
					$result["status"]="false";
274
					$result["status"]="false";
275
					
275
 
276
					#回傳結果
276
					#回傳結果
277
					return $result;
277
					return $result;
278
					
278
 
279
					}#if end
279
					}#if end
280
			
280
 
281
				}#else end
281
				}#else end
282
			
282
 
283
			}#if end
283
			}#if end
284
		
284
 
285
		#反之代表要使用密碼
285
		#反之代表要使用密碼
286
		else{
286
		else{
287
 
287
 
288
			#如果沒設定 dbPort
288
			#如果沒設定 dbPort
289
			if(!isset($conf["dbPort"])){
289
			if(!isset($conf["dbPort"])){
290
 
290
 
291
				#設定資料庫位置、帳號、密碼,並連綫
291
				#設定資料庫位置、帳號、密碼,並連綫
292
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"],$conf["dbAccount"],$conf["dbPassword"]))){
292
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"],$conf["dbAccount"],$conf["dbPassword"]))){
293
					
293
 
294
					#設置連線失敗的提示
294
					#設置連線失敗的提示
295
					$result["error"][]="連線失敗,請檢查帳號密碼是否正確.";
295
					$result["error"][]="連線失敗,請檢查帳號密碼是否正確.";
296
					
296
 
297
					#取得連線時的錯誤編號
297
					#取得連線時的錯誤編號
298
					$result["error"][]=mysqli_connect_errno();
298
					$result["error"][]=mysqli_connect_errno();
299
					
299
 
300
					#取得連線時的錯誤訊息
300
					#取得連線時的錯誤訊息
301
					$result["error"][]=mysqli_connect_error();
301
					$result["error"][]=mysqli_connect_error();
302
					
302
 
303
					#設置執行失敗
303
					#設置執行失敗
304
					$result["status"]="false";
304
					$result["status"]="false";
305
					
305
 
306
					#回傳結果
306
					#回傳結果
307
					return $result;
307
					return $result;
308
					
308
 
309
					}#if end
309
					}#if end
310
 
310
 
311
				}#if end
311
				}#if end
312
			
312
 
313
			#反之	
313
			#反之
314
			else{
314
			else{
315
			
315
 
316
				#設定資料庫位置、帳號、密碼,並連綫
316
				#設定資料庫位置、帳號、密碼,並連綫
317
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"].":".$conf["dbPort"],$conf["dbAccount"],$conf["dbPassword"]))){
317
				if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"].":".$conf["dbPort"],$conf["dbAccount"],$conf["dbPassword"]))){
318
					
318
 
319
					#設置連線失敗的提示
319
					#設置連線失敗的提示
320
					$result["error"][]="連線失敗,請檢查帳號密碼是否正確.";
320
					$result["error"][]="連線失敗,請檢查帳號密碼是否正確.";
321
					
321
 
322
					#取得連線時的錯誤編號
322
					#取得連線時的錯誤編號
323
					$result["error"][]=mysqli_connect_errno();
323
					$result["error"][]=mysqli_connect_errno();
324
					
324
 
325
					#取得連線時的錯誤訊息
325
					#取得連線時的錯誤訊息
326
					$result["error"][]=mysqli_connect_error();
326
					$result["error"][]=mysqli_connect_error();
327
					
327
 
328
					#設置執行失敗
328
					#設置執行失敗
329
					$result["status"]="false";
329
					$result["status"]="false";
330
					
330
 
331
					#回傳結果
331
					#回傳結果
332
					return $result;
332
					return $result;
333
					
333
 
334
					}#if end
334
					}#if end
335
					
335
 
336
				}#else end
336
				}#else end
337
 
337
 
338
			}#else end
338
			}#else end
339
	
339
 
340
		#使編碼為utf8
340
		#使編碼為utf8
341
		if(!(mysqli_query($result["connectInformation"],'SET NAMES UTF8'))){
341
		if(!(mysqli_query($result["connectInformation"],'SET NAMES UTF8'))){
342
			
342
 
343
			#設置連線編碼失敗的提示
343
			#設置連線編碼失敗的提示
344
			$result["error"][]="設置連線編碼失敗.";
344
			$result["error"][]="設置連線編碼失敗.";
345
			
345
 
346
			#取得連線時的錯誤編號
346
			#取得連線時的錯誤編號
347
			$result["error"][]=mysqli_connect_errno();
347
			$result["error"][]=mysqli_connect_errno();
348
			
348
 
349
			#取得連線時的錯誤訊息
349
			#取得連線時的錯誤訊息
350
			$result["error"][]=mysqli_connect_error();
350
			$result["error"][]=mysqli_connect_error();
351
			
351
 
352
			#設置執行失敗
352
			#設置執行失敗
353
			$result["status"]="false";
353
			$result["status"]="false";
354
			
354
 
355
			#回傳結果
355
			#回傳結果
356
			return $result;
356
			return $result;
357
			
357
 
358
			}#if end
358
			}#if end
359
			
359
 
360
		#設定 CHARACTER_SET_CLIENT 為 utf8
360
		#設定 CHARACTER_SET_CLIENT 為 utf8
361
		if(!(mysqli_query($result["connectInformation"],'SET CHARACTER_SET_CLIENT=utf8'))){
361
		if(!(mysqli_query($result["connectInformation"],'SET CHARACTER_SET_CLIENT=utf8'))){
362
			
362
 
363
			#設置連線編碼失敗的提示
363
			#設置連線編碼失敗的提示
364
			$result["error"][]="設置連線編碼失敗.";
364
			$result["error"][]="設置連線編碼失敗.";
365
			
365
 
366
			#取得連線時的錯誤編號
366
			#取得連線時的錯誤編號
367
			$result["error"][]=mysqli_connect_errno();
367
			$result["error"][]=mysqli_connect_errno();
368
			
368
 
369
			#取得連線時的錯誤訊息
369
			#取得連線時的錯誤訊息
370
			$result["error"][]=mysqli_connect_error();
370
			$result["error"][]=mysqli_connect_error();
371
			
371
 
372
			#設置執行失敗
372
			#設置執行失敗
373
			$result["status"]="false";
373
			$result["status"]="false";
374
			
374
 
375
			#回傳結果
375
			#回傳結果
376
			return $result;
376
			return $result;
377
			
377
 
378
			}#if end
378
			}#if end
379
			 
379
 
380
		#設定 CHARACTER_SET_RESULTS 為 utf8
380
		#設定 CHARACTER_SET_RESULTS 為 utf8
381
		if(!(mysqli_query($result["connectInformation"],'SET CHARACTER_SET_RESULTS=utf8'))){
381
		if(!(mysqli_query($result["connectInformation"],'SET CHARACTER_SET_RESULTS=utf8'))){
382
			
382
 
383
			#設置連線編碼失敗的提示
383
			#設置連線編碼失敗的提示
384
			$result["error"][]="設置連線編碼失敗.";
384
			$result["error"][]="設置連線編碼失敗.";
385
			
385
 
386
			#取得連線時的錯誤編號
386
			#取得連線時的錯誤編號
387
			$result["error"][]=mysqli_connect_errno();
387
			$result["error"][]=mysqli_connect_errno();
388
			
388
 
389
			#取得連線時的錯誤訊息
389
			#取得連線時的錯誤訊息
390
			$result["error"][]=mysqli_connect_error();
390
			$result["error"][]=mysqli_connect_error();
391
			
391
 
392
			#設置執行失敗
392
			#設置執行失敗
393
			$result["status"]="false";
393
			$result["status"]="false";
394
			
394
 
395
			#回傳結果
395
			#回傳結果
396
			return $result;
396
			return $result;
397
			
397
 
398
			}#if end
398
			}#if end
399
			 
399
 
400
		#執行正常
400
		#執行正常
401
		$result["status"]="true";
401
		$result["status"]="true";
402
 
402
 
403
		#回傳結果
403
		#回傳結果
404
		return $result;	 
404
		return $result;
405
 
405
 
406
		}#function mysqlConnect end
406
		}#function mysqlConnect end
407
 
407
 
408
	/*
408
	/*
409
	#函式說明:
409
	#函式說明:
410
	#關閉與mysql的連線,會回傳一個陣列。
410
	#關閉與mysql的連線,會回傳一個陣列。
411
	#回傳結果::
411
	#回傳結果::
412
	#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
412
	#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
413
	#$result["connectInformation"],爲回傳的mysql連線資訊。
413
	#$result["connectInformation"],爲回傳的mysql連線資訊。
414
	#$result["error"],爲錯誤訊息陣列.	
414
	#$result["error"],爲錯誤訊息陣列.
415
	#必填參數:
415
	#必填參數:
416
	#$conf["mysqli"],字串,mysqli物件.
416
	#$conf["mysqli"],字串,mysqli物件.
417
	$conf["mysqli"]=$mysqli;
417
	$conf["mysqli"]=$mysqli;
418
	#可省略參數:
418
	#可省略參數:
419
	#無.
419
	#無.
420
	#參考資料:
420
	#參考資料:
421
	#無.
421
	#無.
422
	#備註:
422
	#備註:
423
	#無.
423
	#無.
424
	*/	
424
	*/
425
	public static function mysqlClose(&$conf){
425
	public static function mysqlClose(&$conf){
426
	
426
 
427
		#初始化要回傳的內容
427
		#初始化要回傳的內容
428
		$result=array();
428
		$result=array();
429
 
429
 
430
		#取得當前執行的函數名稱
430
		#取得當前執行的函數名稱
431
		$result["function"]=__FUNCTION__;
431
		$result["function"]=__FUNCTION__;
432
 
432
 
433
		#如果 $conf 不為陣列
433
		#如果 $conf 不為陣列
434
		if(gettype($conf)!="array"){
434
		if(gettype($conf)!="array"){
435
			
435
 
436
			#設置執行失敗
436
			#設置執行失敗
437
			$result["status"]="false";
437
			$result["status"]="false";
438
			
438
 
439
			#設置執行錯誤訊息
439
			#設置執行錯誤訊息
440
			$result["error"][]="\$conf變數須為陣列形態";
440
			$result["error"][]="\$conf變數須為陣列形態";
441
 
441
 
442
			#如果傳入的參數為 null
442
			#如果傳入的參數為 null
443
			if($conf==null){
443
			if($conf==null){
444
				
444
 
445
				#設置執行錯誤訊息
445
				#設置執行錯誤訊息
446
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
446
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
447
				
447
 
448
				}#if end
448
				}#if end
449
 
449
 
450
			#回傳結果
450
			#回傳結果
451
			return $result;
451
			return $result;
452
			
452
 
453
			}#if end
453
			}#if end
454
		
454
 
455
		#檢查參數
455
		#檢查參數
456
		#函式說明:
456
		#函式說明:
457
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
457
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
458
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
458
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
459
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
459
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 468... Line 468...
468
		#必填參數:
468
		#必填參數:
469
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
469
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
470
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
470
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
471
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
471
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
472
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("mysqli");
472
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("mysqli");
473
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
473
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
474
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array(null);
474
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array(null);
475
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
475
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
476
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
476
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
477
		#可省略參數:
477
		#可省略參數:
478
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
478
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
479
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
479
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
480
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
480
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
481
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
481
		#$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
482
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
482
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
483
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
483
		#$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
484
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
484
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
485
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
485
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
486
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
486
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
487
		#$conf["arrayCountEqualCheck"][]=array();
487
		#$conf["arrayCountEqualCheck"][]=array();
488
		#參考資料:
488
		#參考資料:
489
		#array_keys=>http://php.net/manual/en/function.array-keys.php
489
		#array_keys=>http://php.net/manual/en/function.array-keys.php
490
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
490
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
491
		unset($conf["variableCheck::checkArguments"]);
491
		unset($conf["variableCheck::checkArguments"]);
492
		
492
 
493
		#如果檢查失敗
493
		#如果檢查失敗
494
		if($checkResult["status"]=="false"){
494
		if($checkResult["status"]=="false"){
495
			
495
 
496
			#設置錯誤識別
496
			#設置錯誤識別
497
			$result["status"]="false";
497
			$result["status"]="false";
498
			
498
 
499
			#設置錯誤訊息
499
			#設置錯誤訊息
500
			$result["error"]=$checkResult;
500
			$result["error"]=$checkResult;
501
			
501
 
502
			#回傳解果
502
			#回傳解果
503
			return $result;
503
			return $result;
504
			
504
 
505
			}#if end
505
			}#if end
506
 
506
 
507
		#如果 $checkResult["status"]等於"false";
507
		#如果 $checkResult["status"]等於"false";
508
		if($checkResult["passed"]=="false"){
508
		if($checkResult["passed"]=="false"){
509
			
509
 
510
			#設置錯誤識別
510
			#設置錯誤識別
511
			$result["status"]="false";
511
			$result["status"]="false";
512
			
512
 
513
			#設置錯誤訊息
513
			#設置錯誤訊息
514
			$result["error"]=$checkResult;
514
			$result["error"]=$checkResult;
515
			
515
 
516
			#回傳解果
516
			#回傳解果
517
			return $result;
517
			return $result;
518
			
518
 
519
			}#if end
519
			}#if end
520
 
520
 
521
		#關閉與資料庫的連線如果成功
521
		#關閉與資料庫的連線如果成功
522
		if(@mysqli_close($conf["mysqli"])){
522
		if(@mysqli_close($conf["mysqli"])){
523
		
523
 
524
			#則回傳"true"
524
			#則回傳"true"
525
			$result["status"]="true";
525
			$result["status"]="true";
526
 
526
 
527
			}#if end
527
			}#if end
528
 
528
 
529
		#連線失敗回傳"false"
529
		#連線失敗回傳"false"
530
		else{
530
		else{
531
			
531
 
532
			#設置連線編碼失敗的提示
532
			#設置連線編碼失敗的提示
533
			$result["error"][]="關閉連線失敗.";
533
			$result["error"][]="關閉連線失敗.";
534
			
534
 
535
			#取得連線時的錯誤編號
535
			#取得連線時的錯誤編號
536
			$result["error"][]=mysqli_connect_errno();
536
			$result["error"][]=mysqli_connect_errno();
537
			
537
 
538
			#取得連線時的錯誤訊息
538
			#取得連線時的錯誤訊息
539
			$result["error"][]=mysqli_connect_error();
539
			$result["error"][]=mysqli_connect_error();
540
			
540
 
541
			#設置執行失敗
541
			#設置執行失敗
542
			$result["status"]="false";
542
			$result["status"]="false";
543
 
543
 
544
			}#else end
544
			}#else end
545
 
545
 
Line 548... Line 548...
548
 
548
 
549
		#設置執行正常
549
		#設置執行正常
550
		$result["status"]="true";
550
		$result["status"]="true";
551
 
551
 
552
		#回傳結果
552
		#回傳結果
553
		return $result;	 
553
		return $result;
554
 
554
 
555
		}#funciton mysqlClose end
555
		}#funciton mysqlClose end
556
 
556
 
557
	/*
557
	/*
558
	#函式說明:
558
	#函式說明:
Line 586... Line 586...
586
		#取得當前執行的函數名稱
586
		#取得當前執行的函數名稱
587
		$result["function"]=__FUNCTION__;
587
		$result["function"]=__FUNCTION__;
588
 
588
 
589
		#如果 $conf 不為陣列
589
		#如果 $conf 不為陣列
590
		if(gettype($conf)!="array"){
590
		if(gettype($conf)!="array"){
591
			
591
 
592
			#設置執行失敗
592
			#設置執行失敗
593
			$result["status"]="false";
593
			$result["status"]="false";
594
			
594
 
595
			#設置執行錯誤訊息
595
			#設置執行錯誤訊息
596
			$result["error"][]="\$conf變數須為陣列形態";
596
			$result["error"][]="\$conf變數須為陣列形態";
597
 
597
 
598
			#如果傳入的參數為 null
598
			#如果傳入的參數為 null
599
			if($conf==null){
599
			if($conf==null){
600
				
600
 
601
				#設置執行錯誤訊息
601
				#設置執行錯誤訊息
602
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
602
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
603
				
603
 
604
				}#if end
604
				}#if end
605
 
605
 
606
			#回傳結果
606
			#回傳結果
607
			return $result;
607
			return $result;
608
			
608
 
609
			}#if end
609
			}#if end
610
 
610
 
611
		#檢查參數
611
		#檢查參數
612
		#函式說明:
612
		#函式說明:
613
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
613
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 624... Line 624...
624
		#必填參數:
624
		#必填參數:
625
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
625
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
626
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
626
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
627
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
627
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
628
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName");
628
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName");
629
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
629
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
630
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
630
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
631
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
631
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
632
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
632
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
633
		#可省略參數:
633
		#可省略參數:
634
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
634
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
635
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
635
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
636
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
636
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
637
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
637
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
638
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
638
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
639
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
639
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
640
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
640
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
641
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
641
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
642
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
642
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
643
		#$conf["arrayCountEqualCheck"][]=array();
643
		#$conf["arrayCountEqualCheck"][]=array();
644
		#參考資料:
644
		#參考資料:
645
		#array_keys=>http://php.net/manual/en/function.array-keys.php
645
		#array_keys=>http://php.net/manual/en/function.array-keys.php
646
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
646
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
647
		unset($conf["variableCheck::checkArguments"]);
647
		unset($conf["variableCheck::checkArguments"]);
648
		
648
 
649
		#如果檢查失敗
649
		#如果檢查失敗
650
		if($checkResult["status"]==="false"){
650
		if($checkResult["status"]==="false"){
651
			
651
 
652
			#設置錯誤識別
652
			#設置錯誤識別
653
			$result["status"]="false";
653
			$result["status"]="false";
654
			
654
 
655
			#設置錯誤訊息
655
			#設置錯誤訊息
656
			$result["error"]=$checkResult;
656
			$result["error"]=$checkResult;
657
			
657
 
658
			#回傳解果
658
			#回傳解果
659
			return $result;
659
			return $result;
660
			
660
 
661
			}#if end
661
			}#if end
662
 
662
 
663
		#如果 $checkResult["status"]等於"false";
663
		#如果 $checkResult["status"]等於"false";
664
		if($checkResult["passed"]==="false"){
664
		if($checkResult["passed"]==="false"){
665
			
665
 
666
			#設置錯誤識別
666
			#設置錯誤識別
667
			$result["status"]="false";
667
			$result["status"]="false";
668
			
668
 
669
			#設置錯誤訊息
669
			#設置錯誤訊息
670
			$result["error"]=$checkResult;
670
			$result["error"]=$checkResult;
671
			
671
 
672
			#回傳解果
672
			#回傳解果
673
			return $result;
673
			return $result;
674
			
674
 
675
			}#if end
675
			}#if end
676
 
676
 
677
		#函式說明:
677
		#函式說明:
678
		#連線到mysql-server,會回傳一個陣列
678
		#連線到mysql-server,會回傳一個陣列
679
		#回傳結果:
679
		#回傳結果:
Line 683... Line 683...
683
		#$result["error"],爲錯誤訊息陣列
683
		#$result["error"],爲錯誤訊息陣列
684
		#必填參數:
684
		#必填參數:
685
		$conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
685
		$conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
686
		$conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
686
		$conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
687
		#可省略參數:
687
		#可省略參數:
688
		
688
 
689
		#如果 $conf["dbPassword"] 有設定
689
		#如果 $conf["dbPassword"] 有設定
690
		if(isset($conf["dbPassword"])){
690
		if(isset($conf["dbPassword"])){
691
			
691
 
692
			$conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
692
			$conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
693
			
693
 
694
			}#if end
694
			}#if end
695
				
695
 
696
		#如果有設置 $conf["dbPort"]
696
		#如果有設置 $conf["dbPort"]
697
		if(isset($conf["dbPort"])){
697
		if(isset($conf["dbPort"])){
698
		
698
 
699
			$conf["db"]["mysqlConnect"]["dbPort"]=$conf["dbPort"];#字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
699
			$conf["db"]["mysqlConnect"]["dbPort"]=$conf["dbPort"];#字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
700
		
700
 
701
			}#if end
701
			}#if end
702
		
702
 
703
		$con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
703
		$con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
704
		unset($conf["db"]["mysqlConnect"]);
704
		unset($conf["db"]["mysqlConnect"]);
705
 
705
 
706
		#如果連線失敗
706
		#如果連線失敗
707
		if($con["status"]==="false"){
707
		if($con["status"]==="false"){
708
			
708
 
709
			#提示訊息
709
			#提示訊息
710
			$result["error"]=$con;
710
			$result["error"]=$con;
711
 
711
 
712
			#設置執行失敗
712
			#設置執行失敗
713
			$result["status"]="false";
713
			$result["status"]="false";
714
			
714
 
715
			#回傳結果
715
			#回傳結果
716
			return $result;
716
			return $result;
717
			
717
 
718
			}#if end
718
			}#if end
719
 
719
 
720
		#確認資料庫存在或可以被存取
720
		#確認資料庫存在或可以被存取
721
		#函式說明:
721
		#函式說明:
722
		#執行mysql指令
722
		#執行mysql指令
723
		#回傳結果::
723
		#回傳結果::
724
		#$result["status"],"true"為執行成功;"false"為執行失敗。
724
		#$result["status"],"true"為執行成功;"false"為執行失敗。
725
		#$result["error"],錯誤訊息的陣列
725
		#$result["error"],錯誤訊息的陣列
726
		#$result["function"],當前執行的涵式
726
		#$result["function"],當前執行的涵式
727
		#$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
727
		#$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
728
		#$result["queryConn"],mysql用來查尋的連資源. 
728
		#$result["queryConn"],mysql用來查尋的連資源.
729
		#$result["queryString"],要執行的sql內容.
729
		#$result["queryString"],要執行的sql內容.
730
		#必填參數:
730
		#必填參數:
731
		#$conf["dbSql"],字串,要執行sql語法
731
		#$conf["dbSql"],字串,要執行sql語法
732
		$conf["db::execMysqlQuery"]["dbSql"]="show databases;";
732
		$conf["db::execMysqlQuery"]["dbSql"]="show databases;";
733
		#可省略參數:
733
		#可省略參數:
734
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
734
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
735
		#$conf["db::execMysqlQuery"]["dbLink"]=$conf["dbName"];
735
		#$conf["db::execMysqlQuery"]["dbLink"]=$conf["dbName"];
736
		#$conf["dbAddress"],字串,爲mysql-Server的位置。
736
		#$conf["dbAddress"],字串,爲mysql-Server的位置。
737
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];
737
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];
738
		#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
738
		#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
739
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"]; 
739
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];
740
		
740
 
741
		#如果存在 $dbPassword
741
		#如果存在 $dbPassword
742
		if(isset($conf["dbPassword"])){
742
		if(isset($conf["dbPassword"])){
743
		
743
 
744
			#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
744
			#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
745
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];
745
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];
746
			
746
 
747
			}#if end
747
			}#if end
748
			
748
 
749
		#$conf["dbName"],字串,爲要連的資料庫名稱
749
		#$conf["dbName"],字串,爲要連的資料庫名稱
750
		#$conf["dbName"]="";
750
		#$conf["dbName"]="";
751
		
751
 
752
		#如果存在 $dbPort
752
		#如果存在 $dbPort
753
		if(isset($conf["dbPort"])){
753
		if(isset($conf["dbPort"])){
754
		
754
 
755
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
755
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
756
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];
756
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];
757
		
757
 
758
			}#if end
758
			}#if end
759
		
759
 
760
		#$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
760
		#$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
761
		#$conf["autoClose"]="true";
761
		#$conf["autoClose"]="true";
762
		#參考資料:
762
		#參考資料:
763
		#無.
763
		#無.
764
		#備註:
764
		#備註:
Line 766... Line 766...
766
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
766
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
767
		unset($conf["db::execMysqlQuery"]);
767
		unset($conf["db::execMysqlQuery"]);
768
 
768
 
769
		#如果執行失敗
769
		#如果執行失敗
770
		if($execMysqlQuery["status"]==="false"){
770
		if($execMysqlQuery["status"]==="false"){
771
		
771
 
772
			#設置連線失敗的提示
772
			#設置連線失敗的提示
773
			$result["error"][]="檢查資料庫可否存取出錯";
773
			$result["error"][]="檢查資料庫可否存取出錯";
774
			
774
 
775
			#設置錯誤訊息
775
			#設置錯誤訊息
776
			$result["error"][]=$execMysqlQuery["error"];
776
			$result["error"][]=$execMysqlQuery["error"];
777
			
777
 
778
			#設置執行失敗
778
			#設置執行失敗
779
			$result["status"]="false";
779
			$result["status"]="false";
780
			
780
 
781
			#回傳結果
781
			#回傳結果
782
			return $result;
782
			return $result;
783
			
783
 
784
			}#if end
784
			}#if end
785
		
785
 
786
		#解析 $execMysqlQuery["queryResource"] 看是否存在要存取的資料庫
786
		#解析 $execMysqlQuery["queryResource"] 看是否存在要存取的資料庫
787
		#函式說明:
787
		#函式說明:
788
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
788
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
789
		#回傳結果:
789
		#回傳結果:
790
		#$result["status"],執行結果"true"為成功;"false"為失敗
790
		#$result["status"],執行結果"true"為成功;"false"為失敗
Line 817... Line 817...
817
		$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
817
		$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
818
		unset($conf["db::sendQueryDataToVariabele"]);
818
		unset($conf["db::sendQueryDataToVariabele"]);
819
 
819
 
820
		#如果執行異常
820
		#如果執行異常
821
		if($sendQueryDataToVariabele["status"]==="false"){
821
		if($sendQueryDataToVariabele["status"]==="false"){
822
		
822
 
823
			#設置連線失敗的提示
823
			#設置連線失敗的提示
824
			$result["error"][]="檢查資料庫可否存取出錯";
824
			$result["error"][]="檢查資料庫可否存取出錯";
825
			
825
 
826
			#設置錯誤訊息
826
			#設置錯誤訊息
827
			$result["error"][]=$sendQueryDataToVariabele["error"];
827
			$result["error"][]=$sendQueryDataToVariabele["error"];
828
			
828
 
829
			#設置執行失敗
829
			#設置執行失敗
830
			$result["status"]="false";
830
			$result["status"]="false";
831
			
831
 
832
			#回傳結果
832
			#回傳結果
833
			return $result;
833
			return $result;
834
			
834
 
835
			}#if end
835
			}#if end
836
			
836
 
837
		#檢查資料庫是否可以存取
837
		#檢查資料庫是否可以存取
838
		#函式說明:
838
		#函式說明:
839
		#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
839
		#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
840
		#回傳結果:
840
		#回傳結果:
841
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
841
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
Line 856... Line 856...
856
		#無.
856
		#無.
857
		#備註:
857
		#備註:
858
		#無.
858
		#無.
859
		$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
859
		$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
860
		unset($conf["search::getEqualVar"]);
860
		unset($conf["search::getEqualVar"]);
861
		
861
 
862
		#如果執行失敗
862
		#如果執行失敗
863
		if($getEqualVar["status"]==="false"){
863
		if($getEqualVar["status"]==="false"){
864
		
864
 
865
			#設置錯誤的提示
865
			#設置錯誤的提示
866
			$result["error"][]="檢查資料庫可否存取出錯";
866
			$result["error"][]="檢查資料庫可否存取出錯";
867
			
867
 
868
			#設置錯誤訊息
868
			#設置錯誤訊息
869
			$result["error"][]=$sendQueryDataToVariabele["error"];
869
			$result["error"][]=$sendQueryDataToVariabele["error"];
870
			
870
 
871
			#設置執行失敗
871
			#設置執行失敗
872
			$result["status"]="false";
872
			$result["status"]="false";
873
			
873
 
874
			#回傳結果
874
			#回傳結果
875
			return $result;
875
			return $result;
876
		
876
 
877
			}#if end
877
			}#if end
878
			
878
 
879
		#如果無法存取資料庫
879
		#如果無法存取資料庫
880
		if($getEqualVar["founded"]==="false"){
880
		if($getEqualVar["founded"]==="false"){
881
			
881
 
882
			#設置錯誤的提示
882
			#設置錯誤的提示
883
			$result["error"][]="資料庫(".$conf["dbName"].")無法存取";
883
			$result["error"][]="資料庫(".$conf["dbName"].")無法存取";
884
			
884
 
885
			#設置錯誤訊息
885
			#設置錯誤訊息
886
			$result["error"][]=$sendQueryDataToVariabele;
886
			$result["error"][]=$sendQueryDataToVariabele;
887
			
887
 
888
			#設置執行失敗
888
			#設置執行失敗
889
			$result["status"]="false";
889
			$result["status"]="false";
890
			
890
 
891
			#回傳結果
891
			#回傳結果
892
			return $result;
892
			return $result;
893
		
893
 
894
			}#if end
894
			}#if end
895
 
895
 
896
		#選取資料庫
896
		#選取資料庫
897
		#如果連線失敗
897
		#如果連線失敗
898
		if(!(mysqli_select_db($con["connectInformation"],$conf["dbName"]))){
898
		if(!(mysqli_select_db($con["connectInformation"],$conf["dbName"]))){
899
 
899
 
900
			#設置連線失敗的提示
900
			#設置連線失敗的提示
901
			$result["error"][]="選取資料庫失敗";
901
			$result["error"][]="選取資料庫失敗";
902
			
902
 
903
			#取得連線時的錯誤編號
903
			#取得連線時的錯誤編號
904
			$result["error"][]=mysqli_connect_errno();
904
			$result["error"][]=mysqli_connect_errno();
905
			
905
 
906
			#取得連線時的錯誤訊息
906
			#取得連線時的錯誤訊息
907
			$result["error"][]=mysqli_connect_error();
907
			$result["error"][]=mysqli_connect_error();
908
			
908
 
909
			#設置執行失敗
909
			#設置執行失敗
910
			$result["status"]="false";
910
			$result["status"]="false";
911
			
911
 
912
			#回傳結果
912
			#回傳結果
913
			return $result;
913
			return $result;
914
 
914
 
915
			}#if end
915
			}#if end
916
 
916
 
Line 919... Line 919...
919
 
919
 
920
		#設置執行正常
920
		#設置執行正常
921
		$result["status"]="true";
921
		$result["status"]="true";
922
 
922
 
923
		#回傳結果
923
		#回傳結果
924
		return $result;	 
924
		return $result;
925
 
925
 
926
		}#function dbConnect end
926
		}#function dbConnect end
927
 
927
 
928
	/*
928
	/*
929
	#函式說明:
929
	#函式說明:
Line 931... Line 931...
931
	#回傳結果::
931
	#回傳結果::
932
	#$result["status"],"true"為執行成功;"false"為執行失敗。
932
	#$result["status"],"true"為執行成功;"false"為執行失敗。
933
	#$result["error"],錯誤訊息的陣列
933
	#$result["error"],錯誤訊息的陣列
934
	#$result["function"],當前執行的涵式
934
	#$result["function"],當前執行的涵式
935
	#$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
935
	#$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
936
	#$result["queryConn"],mysql用來查尋的連資源. 
936
	#$result["queryConn"],mysql用來查尋的連資源.
937
	#$result["queryString"],要執行的sql內容.
937
	#$result["queryString"],要執行的sql內容.
938
	#必填參數:
938
	#必填參數:
939
	#$conf["dbSql"],字串,要執行sql語法
939
	#$conf["dbSql"],字串,要執行sql語法
940
	$conf["dbSql"]="";
940
	$conf["dbSql"]="";
941
	#可省略參數:
941
	#可省略參數:
942
	#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
942
	#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
943
	$conf["dbLink"]="";
943
	$conf["dbLink"]="";
944
	#$conf["dbAddress"],字串,爲mysql-Server的位置。
944
	#$conf["dbAddress"],字串,爲mysql-Server的位置。
945
	$conf["dbAddress"]=$dbAddress;
945
	$conf["dbAddress"]=$dbAddress;
946
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
946
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
947
	$conf["dbAccount"]=$dbAccount; 
947
	$conf["dbAccount"]=$dbAccount;
948
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
948
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
949
	#$conf["dbPassword"]=$dbPassword;
949
	#$conf["dbPassword"]=$dbPassword;
950
	#$conf["dbName"],字串,爲要連的資料庫名稱
950
	#$conf["dbName"],字串,爲要連的資料庫名稱
951
	#$conf["dbName"]="";
951
	#$conf["dbName"]="";
952
	#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
952
	#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
Line 957... Line 957...
957
	#無.
957
	#無.
958
	#備註:
958
	#備註:
959
	#無.
959
	#無.
960
	*/
960
	*/
961
	public static function execMysqlQuery(&$conf){
961
	public static function execMysqlQuery(&$conf){
962
		
962
 
963
		#初始化要回傳的內容
963
		#初始化要回傳的內容
964
		$result=array();
964
		$result=array();
965
 
965
 
966
		#取得當前執行的函數名稱
966
		#取得當前執行的函數名稱
967
		$result["function"]=__FUNCTION__;
967
		$result["function"]=__FUNCTION__;
968
 
968
 
969
		#如果 $conf 不為陣列
969
		#如果 $conf 不為陣列
970
		if(gettype($conf)!="array"){
970
		if(gettype($conf)!="array"){
971
			
971
 
972
			#設置執行失敗
972
			#設置執行失敗
973
			$result["status"]="false";
973
			$result["status"]="false";
974
			
974
 
975
			#設置執行錯誤訊息
975
			#設置執行錯誤訊息
976
			$result["error"][]="\$conf變數須為陣列形態";
976
			$result["error"][]="\$conf變數須為陣列形態";
977
 
977
 
978
			#如果傳入的參數為 null
978
			#如果傳入的參數為 null
979
			if($conf===null){
979
			if($conf===null){
980
				
980
 
981
				#設置執行錯誤訊息
981
				#設置執行錯誤訊息
982
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
982
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
983
				
983
 
984
				}#if end
984
				}#if end
985
 
985
 
986
			#回傳結果
986
			#回傳結果
987
			return $result;
987
			return $result;
988
			
988
 
989
			}#if end
989
			}#if end
990
 
990
 
991
		#檢查參數
991
		#檢查參數
992
		#函式說明:
992
		#函式說明:
993
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
993
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 1004... Line 1004...
1004
		#必填參數:
1004
		#必填參數:
1005
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1005
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1006
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1006
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1007
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1007
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1008
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbSql");
1008
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbSql");
1009
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1009
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
1010
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1010
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
1011
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1011
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1012
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1012
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1013
		#可省略參數:
1013
		#可省略參數:
1014
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1014
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1015
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1015
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1016
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1016
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1017
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbLink","dbAddress","dbAccount","dbPassword","dbName","dbPort","autoClose","mysqli");
1017
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbLink","dbAddress","dbAccount","dbPassword","dbName","dbPort","autoClose","mysqli");
1018
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1018
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1019
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("object","string","string","string","string","string","string",null);
1019
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("object","string","string","string","string","string","string",null);
1020
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1020
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1021
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,"true",null);
1021
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,"true",null);
1022
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1022
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1023
		#$conf["arrayCountEqualCheck"][]=array();
1023
		#$conf["arrayCountEqualCheck"][]=array();
1024
		#參考資料:
1024
		#參考資料:
1025
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1025
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1026
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1026
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1027
		unset($conf["variableCheck::checkArguments"]);
1027
		unset($conf["variableCheck::checkArguments"]);
1028
		
1028
 
1029
		#如果檢查失敗
1029
		#如果檢查失敗
1030
		if($checkResult["status"]=="false"){
1030
		if($checkResult["status"]=="false"){
1031
			
1031
 
1032
			#設置錯誤識別
1032
			#設置錯誤識別
1033
			$result["status"]="fasle";
1033
			$result["status"]="fasle";
1034
			
1034
 
1035
			#設置錯誤訊息
1035
			#設置錯誤訊息
1036
			$result["error"]=$checkResult;
1036
			$result["error"]=$checkResult;
1037
			
1037
 
1038
			#回傳解果
1038
			#回傳解果
1039
			return $result;
1039
			return $result;
1040
			
1040
 
1041
			}#if end
1041
			}#if end
1042
 
1042
 
1043
		#如果 $checkResult["status"]等於"false";
1043
		#如果 $checkResult["status"]等於"false";
1044
		if($checkResult["passed"]==="false"){
1044
		if($checkResult["passed"]==="false"){
1045
			
1045
 
1046
			#設置錯誤識別
1046
			#設置錯誤識別
1047
			$result["status"]="false";
1047
			$result["status"]="false";
1048
			
1048
 
1049
			#設置錯誤訊息
1049
			#設置錯誤訊息
1050
			$result["error"]=$checkResult;
1050
			$result["error"]=$checkResult;
1051
			
1051
 
1052
			#回傳解果
1052
			#回傳解果
1053
			return $result;
1053
			return $result;
1054
			
1054
 
1055
			}#if end
1055
			}#if end
1056
		
1056
 
1057
		#如果沒有 dbLink
1057
		#如果沒有 dbLink
1058
		if(!isset($conf["dbLink"])){
1058
		if(!isset($conf["dbLink"])){
1059
		
1059
 
1060
			#初始化儲存mysqli物件的變數
1060
			#初始化儲存mysqli物件的變數
1061
			$con="";
1061
			$con="";
1062
			
1062
 
1063
			#如果有指定資料庫
1063
			#如果有指定資料庫
1064
			if(isset($conf["dbName"])){
1064
			if(isset($conf["dbName"])){
1065
				
1065
 
1066
				#函式說明:
1066
				#函式說明:
1067
				#連線到資料庫,結果會回傳一個陣列.
1067
				#連線到資料庫,結果會回傳一個陣列.
1068
				#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
1068
				#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
1069
				#$result["connectInformation"],爲回傳的mysql連線資訊.
1069
				#$result["connectInformation"],爲回傳的mysql連線資訊.
1070
				#$result["error"],錯誤訊息	.
1070
				#$result["error"],錯誤訊息	.
Line 1072... Line 1072...
1072
				#必填參數:
1072
				#必填參數:
1073
				$conf["db::dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
1073
				$conf["db::dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
1074
				$conf["db::dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
1074
				$conf["db::dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
1075
				$conf["db::dbConnect"]["dbName"]=$conf["dbName"];#爲要連的資料庫名稱
1075
				$conf["db::dbConnect"]["dbName"]=$conf["dbName"];#爲要連的資料庫名稱
1076
				#可省略參數:
1076
				#可省略參數:
1077
				
1077
 
1078
				#如果 $conf["dbPassword"] 有設置
1078
				#如果 $conf["dbPassword"] 有設置
1079
				if(isset($conf["dbPassword"])){
1079
				if(isset($conf["dbPassword"])){
1080
					
1080
 
1081
					$conf["db::dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
1081
					$conf["db::dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
1082
					
1082
 
1083
					}#if end
1083
					}#if end
1084
					
1084
 
1085
				#如果有設置 $conf["dbPort"] 
1085
				#如果有設置 $conf["dbPort"]
1086
				if(isset($conf["dbPort"])){
1086
				if(isset($conf["dbPort"])){
1087
				
1087
 
1088
					#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
1088
					#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
1089
					$conf["db::dbConnect"]["dbPort"]=$conf["dbPort"];
1089
					$conf["db::dbConnect"]["dbPort"]=$conf["dbPort"];
1090
				
1090
 
1091
					}#if end
1091
					}#if end
1092
				
1092
 
1093
				$con=db::dbConnect($conf["db::dbConnect"]);
1093
				$con=db::dbConnect($conf["db::dbConnect"]);
1094
				unset($conf["db::dbConnect"]);
1094
				unset($conf["db::dbConnect"]);
1095
				
1095
 
1096
				#如果連線失敗
1096
				#如果連線失敗
1097
				if($con["status"]=="false"){
1097
				if($con["status"]=="false"){
1098
					
1098
 
1099
					#設置執行失敗的訊息
1099
					#設置執行失敗的訊息
1100
					$result["status"]="false";
1100
					$result["status"]="false";
1101
					
1101
 
1102
					#紀錄錯誤訊息
1102
					#紀錄錯誤訊息
1103
					$result["error"]=$con;
1103
					$result["error"]=$con;
1104
					
1104
 
1105
					#回傳結果
1105
					#回傳結果
1106
					return $result;
1106
					return $result;
1107
					
1107
 
1108
					}#if end
1108
					}#if end
1109
				
1109
 
1110
				#儲存mysqli物件
1110
				#儲存mysqli物件
1111
				$result["queryConn"]=$con["connectInformation"];
1111
				$result["queryConn"]=$con["connectInformation"];
1112
				
1112
 
1113
				#解析可以取得的資料庫清單
1113
				#解析可以取得的資料庫清單
1114
				#函式說明:
1114
				#函式說明:
1115
				#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
1115
				#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
1116
				#回傳結果:
1116
				#回傳結果:
1117
				#$result["status"],執行結果"true"為成功;"false"為失敗
1117
				#$result["status"],執行結果"true"為成功;"false"為失敗
Line 1129... Line 1129...
1129
				#可省略參數:
1129
				#可省略參數:
1130
				#$conf["dbAddress"],字串,爲mysql-Server的位置,目前沒有用途.
1130
				#$conf["dbAddress"],字串,爲mysql-Server的位置,目前沒有用途.
1131
				$conf["db::sendQueryDataToVariabele"]["dbAddress"]=$dbAddress;
1131
				$conf["db::sendQueryDataToVariabele"]["dbAddress"]=$dbAddress;
1132
				#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號,目前沒有用途.
1132
				#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號,目前沒有用途.
1133
				$conf["db::sendQueryDataToVariabele"]["dbAccount"]=$dbAccount;
1133
				$conf["db::sendQueryDataToVariabele"]["dbAccount"]=$dbAccount;
1134
				
1134
 
1135
				#如果有設置 $conf["dbPassword"]
1135
				#如果有設置 $conf["dbPassword"]
1136
				if(isset($conf["dbPassword"])){
1136
				if(isset($conf["dbPassword"])){
1137
				
1137
 
1138
					#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼,目前沒有用途.
1138
					#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼,目前沒有用途.
1139
					$conf["db::sendQueryDataToVariabele"]["dbPassword"]=$dbPassword;
1139
					$conf["db::sendQueryDataToVariabele"]["dbPassword"]=$dbPassword;
1140
				
1140
 
1141
					}#if end
1141
					}#if end
1142
				
1142
 
1143
				#如果有設置 $conf["dbPort"]
1143
				#如果有設置 $conf["dbPort"]
1144
				if(isset($conf["dbPort"])){
1144
				if(isset($conf["dbPort"])){
1145
				
1145
 
1146
					#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port,目前沒有用途.
1146
					#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port,目前沒有用途.
1147
					$conf["db::sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];
1147
					$conf["db::sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];
1148
				
1148
 
1149
					}#if end
1149
					}#if end
1150
				
1150
 
1151
				#$conf["valueName"],字串陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
1151
				#$conf["valueName"],字串陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
1152
				#$conf["valueName"]=$conf["tableValueName"];
1152
				#$conf["valueName"]=$conf["tableValueName"];
1153
				#參考資料:
1153
				#參考資料:
1154
				#http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
1154
				#http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
1155
				#備註:
1155
				#備註:
1156
				#無.
1156
				#無.
1157
				$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
1157
				$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
1158
				unset($conf["db::sendQueryDataToVariabele"]);
1158
				unset($conf["db::sendQueryDataToVariabele"]);
1159
				
1159
 
1160
				#如果連線失敗
1160
				#如果連線失敗
1161
				if($sendQueryDataToVariabele["status"]==="false"){
1161
				if($sendQueryDataToVariabele["status"]==="false"){
1162
					
1162
 
1163
					#設置執行失敗的訊息
1163
					#設置執行失敗的訊息
1164
					$result["status"]="false";
1164
					$result["status"]="false";
1165
					
1165
 
1166
					#紀錄錯誤訊息
1166
					#紀錄錯誤訊息
1167
					$result["error"]=$sendQueryDataToVariabele;
1167
					$result["error"]=$sendQueryDataToVariabele;
1168
					
1168
 
1169
					#回傳結果
1169
					#回傳結果
1170
					return $result;
1170
					return $result;
1171
					
1171
 
1172
					}#if end
1172
					}#if end
1173
				
1173
 
1174
				#尋找目標資料庫是否存在
1174
				#尋找目標資料庫是否存在
1175
				#函式說明:
1175
				#函式說明:
1176
				#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
1176
				#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
1177
				#回傳結果:
1177
				#回傳結果:
1178
				#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
1178
				#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
Line 1193... Line 1193...
1193
				#無.
1193
				#無.
1194
				#備註:
1194
				#備註:
1195
				#無.
1195
				#無.
1196
				$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
1196
				$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
1197
				unset($conf["search::getEqualVar"]);
1197
				unset($conf["search::getEqualVar"]);
1198
				
1198
 
1199
				#如果連線失敗
1199
				#如果連線失敗
1200
				if($getEqualVar["status"]==="false"){
1200
				if($getEqualVar["status"]==="false"){
1201
					
1201
 
1202
					#設置執行失敗的訊息
1202
					#設置執行失敗的訊息
1203
					$result["status"]="false";
1203
					$result["status"]="false";
1204
					
1204
 
1205
					#紀錄錯誤訊息
1205
					#紀錄錯誤訊息
1206
					$result["error"]=$getEqualVar;
1206
					$result["error"]=$getEqualVar;
1207
					
1207
 
1208
					#回傳結果
1208
					#回傳結果
1209
					return $result;
1209
					return $result;
1210
					
1210
 
1211
					}#if end
1211
					}#if end
1212
					
1212
 
1213
				#如果不存在
1213
				#如果不存在
1214
				if($getEqualVar["founded"]==="false"){
1214
				if($getEqualVar["founded"]==="false"){
1215
					
1215
 
1216
					#設置執行失敗的訊息
1216
					#設置執行失敗的訊息
1217
					$result["status"]="false";
1217
					$result["status"]="false";
1218
					
1218
 
1219
					#紀錄錯誤訊息
1219
					#紀錄錯誤訊息
1220
					$result["error"][]="目標資料庫 ".$conf["dbName"]." 不存在";
1220
					$result["error"][]="目標資料庫 ".$conf["dbName"]." 不存在";
1221
					
1221
 
1222
					#紀錄錯誤訊息
1222
					#紀錄錯誤訊息
1223
					$result["error"][]=$getEqualVar;
1223
					$result["error"][]=$getEqualVar;
1224
					
1224
 
1225
					#回傳結果
1225
					#回傳結果
1226
					return $result;
1226
					return $result;
1227
					
1227
 
1228
					}#if end
1228
					}#if end
1229
				
1229
 
1230
				}#if end
1230
				}#if end
1231
			
1231
 
1232
			#反之沒有指定資料庫
1232
			#反之沒有指定資料庫
1233
			else{
1233
			else{
1234
				
1234
 
1235
				#連線到mysql
1235
				#連線到mysql
1236
				#函式說明:
1236
				#函式說明:
1237
				#連線到mysql-server,會回傳一個陣列
1237
				#連線到mysql-server,會回傳一個陣列
1238
				#回傳結果:
1238
				#回傳結果:
1239
				#$result["connectStatus"],若連線成功則爲0,連線失敗則爲1。
1239
				#$result["connectStatus"],若連線成功則爲0,連線失敗則爲1。
Line 1241... Line 1241...
1241
				#$result["error"],爲錯誤訊息
1241
				#$result["error"],爲錯誤訊息
1242
				#必填參數:
1242
				#必填參數:
1243
				$conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
1243
				$conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
1244
				$conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
1244
				$conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
1245
				#可省略參數:
1245
				#可省略參數:
1246
				
1246
 
1247
				#如果 $conf["dbPassword"] 有設置
1247
				#如果 $conf["dbPassword"] 有設置
1248
				if(isset($conf["dbPassword"])){
1248
				if(isset($conf["dbPassword"])){
1249
					
1249
 
1250
					$conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
1250
					$conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
1251
					
1251
 
1252
					}#if end
1252
					}#if end
1253
					
1253
 
1254
				#如果有設置 $conf["dbPort"] 
1254
				#如果有設置 $conf["dbPort"]
1255
				if(isset($conf["dbPort"])){
1255
				if(isset($conf["dbPort"])){
1256
				
1256
 
1257
					#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
1257
					#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
1258
					$conf["db::dbConnect"]["dbPort"]=$conf["dbPort"];
1258
					$conf["db::dbConnect"]["dbPort"]=$conf["dbPort"];
1259
				
1259
 
1260
					}#if end
1260
					}#if end
1261
				
1261
 
1262
				$con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
1262
				$con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
1263
				unset($conf["db"]);
1263
				unset($conf["db"]);
1264
				
1264
 
1265
				#如果連線失敗
1265
				#如果連線失敗
1266
				if($con["status"]==="false"){
1266
				if($con["status"]==="false"){
1267
					
1267
 
1268
					#設置執行失敗的訊息
1268
					#設置執行失敗的訊息
1269
					$result["status"]="false";
1269
					$result["status"]="false";
1270
					
1270
 
1271
					#紀錄錯誤訊息
1271
					#紀錄錯誤訊息
1272
					$result["error"]=$con;
1272
					$result["error"]=$con;
1273
					
1273
 
1274
					#回傳結果
1274
					#回傳結果
1275
					return $result;
1275
					return $result;
1276
					
1276
 
1277
					}#if end
1277
					}#if end
1278
				
1278
 
1279
				#debug
1279
				#debug
1280
				#var_dump(__LINE__,$con);
1280
				#var_dump(__LINE__,$con);
1281
				
1281
 
1282
				#儲存mysqli物件
1282
				#儲存mysqli物件
1283
				$result["queryConn"]=$con["connectInformation"];
1283
				$result["queryConn"]=$con["connectInformation"];
1284
				
1284
 
1285
				}#else end
1285
				}#else end
1286
		
1286
 
1287
			}#if end
1287
			}#if end
1288
		
1288
 
1289
		#反之存在 $conf["dbLink"]
1289
		#反之存在 $conf["dbLink"]
1290
		else{
1290
		else{
1291
		
1291
 
1292
			#取得db物件
1292
			#取得db物件
1293
			$result["queryConn"]=$conf["dbLink"];
1293
			$result["queryConn"]=$conf["dbLink"];
1294
		
1294
 
1295
			}#else end
1295
			}#else end
1296
		
1296
 
1297
		#設置sql的查詢語言
1297
		#設置sql的查詢語言
1298
		$result["queryStringOri"]=$conf["dbSql"];
1298
		$result["queryStringOri"]=$conf["dbSql"];
1299
		
1299
 
1300
		#設置sql的查詢語言
1300
		#設置sql的查詢語言
1301
		$result["queryString"]=$conf["dbSql"];
1301
		$result["queryString"]=$conf["dbSql"];
1302
		
1302
 
1303
		#debug
1303
		#debug
1304
		#var_dump(__LINE__,$result["queryString"]);
1304
		#var_dump(__LINE__,$result["queryString"]);
1305
		
1305
 
1306
		#進行查詢
1306
		#進行查詢
1307
		#如果有錯誤訊息
1307
		#如果有錯誤訊息
1308
		if(!($mysqli_query=mysqli_query($result["queryConn"],$result["queryString"]))){
1308
		if(!($mysqli_query=mysqli_query($result["queryConn"],$result["queryString"]))){
1309
			
1309
 
1310
			#設置執行失敗的訊息
1310
			#設置執行失敗的訊息
1311
			$result["status"]="false";
1311
			$result["status"]="false";
1312
			
1312
 
1313
			#設置提示執行mysql語法失敗
1313
			#設置提示執行mysql語法失敗
1314
			$result["error"][]="執行mysql語法失敗";
1314
			$result["error"][]="執行mysql語法失敗";
1315
			
1315
 
1316
			#取得錯誤訊息
1316
			#取得錯誤訊息
1317
			$result["error"]["mysqlErrorNo"]=mysqli_errno($result["queryConn"]);
1317
			$result["error"]["mysqlErrorNo"]=mysqli_errno($result["queryConn"]);
1318
			$result["error"]["mysqlErrorDetail"]=mysqli_error($result["queryConn"]);
1318
			$result["error"]["mysqlErrorDetail"]=mysqli_error($result["queryConn"]);
1319
			
1319
 
1320
			#回傳結果
1320
			#回傳結果
1321
			return $result;
1321
			return $result;
1322
			
1322
 
1323
			}#if end
1323
			}#if end
1324
			
1324
 
1325
		#取得正確的mysqli_resource
1325
		#取得正確的mysqli_resource
1326
		$result["queryResource"]=$mysqli_query;
1326
		$result["queryResource"]=$mysqli_query;
1327
		
1327
 
1328
		#如果要自動斷線
1328
		#如果要自動斷線
1329
		if($conf["autoClose"]==="true"){
1329
		if($conf["autoClose"]==="true"){
1330
		
1330
 
1331
			#連線結束
1331
			#連線結束
1332
			#函式說明:
1332
			#函式說明:
1333
			#關閉與mysql的連線,會回傳一個陣列。
1333
			#關閉與mysql的連線,會回傳一個陣列。
1334
			#回傳結果::
1334
			#回傳結果::
1335
			#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
1335
			#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
1336
			#$result["connectInformation"],爲回傳的mysql連線資訊。
1336
			#$result["connectInformation"],爲回傳的mysql連線資訊。
1337
			#$result["error"],爲錯誤訊息陣列.		
1337
			#$result["error"],爲錯誤訊息陣列.
1338
			#必填參數:
1338
			#必填參數:
1339
			#$conf["mysqli"],字串,mysqli物件.
1339
			#$conf["mysqli"],字串,mysqli物件.
1340
			$conf["db::mysqlClose"]["mysqli"]=$result["queryConn"];
1340
			$conf["db::mysqlClose"]["mysqli"]=$result["queryConn"];
1341
			$mysqlClose=db::mysqlClose($conf["db::mysqlClose"]);
1341
			$mysqlClose=db::mysqlClose($conf["db::mysqlClose"]);
1342
			unset($conf["db::mysqlClose"]);
1342
			unset($conf["db::mysqlClose"]);
1343
				
1343
 
1344
			#如果關閉mysql連線失敗
1344
			#如果關閉mysql連線失敗
1345
			if($mysqlClose["status"]=="false"){
1345
			if($mysqlClose["status"]=="false"){
1346
				
1346
 
1347
				#設置執行失敗的訊息
1347
				#設置執行失敗的訊息
1348
				$result["status"]="false";
1348
				$result["status"]="false";
1349
				
1349
 
1350
				#紀錄錯誤訊息
1350
				#紀錄錯誤訊息
1351
				$result["error"]=$mysqlClose;
1351
				$result["error"]=$mysqlClose;
1352
				
1352
 
1353
				#回傳結果
1353
				#回傳結果
1354
				return $result;
1354
				return $result;
1355
				
1355
 
1356
				}#if end
1356
				}#if end
1357
		
1357
 
1358
			}#if end
1358
			}#if end
1359
		
1359
 
1360
		#設置執行成功的訊息
1360
		#設置執行成功的訊息
1361
		$result["status"]="true";
1361
		$result["status"]="true";
1362
		
1362
 
1363
		#回傳查詢後的結果
1363
		#回傳查詢後的結果
1364
		return $result;
1364
		return $result;
1365
		
1365
 
1366
		}#function execMysqlQuery end
1366
		}#function execMysqlQuery end
1367
 
1367
 
1368
	/*
1368
	/*
1369
	#函式說明:
1369
	#函式說明:
1370
	#用shell執行mysql指令.
1370
	#用shell執行mysql指令.
Line 1375... Line 1375...
1375
	#$result["queryString"],mysql查詢的語言.
1375
	#$result["queryString"],mysql查詢的語言.
1376
	#必填參數:
1376
	#必填參數:
1377
	#$conf["fileArgu"],字串,變數__FILE__的內容.
1377
	#$conf["fileArgu"],字串,變數__FILE__的內容.
1378
	$conf["fileArgu"]=__FILE__;
1378
	$conf["fileArgu"]=__FILE__;
1379
	#$conf["dbSql"],字串,要執行sql語法
1379
	#$conf["dbSql"],字串,要執行sql語法
1380
	$conf["dbSql"]="";	
1380
	$conf["dbSql"]="";
1381
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
1381
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
1382
	$conf["dbAccount"]=$dbAccount; 
1382
	$conf["dbAccount"]=$dbAccount;
1383
	#可省略參數:
1383
	#可省略參數:
1384
	#$conf["dbAddress"],字串,爲mysql-Server的位置,若設置為"localhost",則會忽略,預設為不指定,會嘗試透過unix domain socket來存取資料庫.
1384
	#$conf["dbAddress"],字串,爲mysql-Server的位置,若設置為"localhost",則會忽略,預設為不指定,會嘗試透過unix domain socket來存取資料庫.
1385
	#$conf["dbAddress"]=$dbAddress;
1385
	#$conf["dbAddress"]=$dbAddress;
1386
	#$conf["pre"],陣列,要在本指令前執行的每個指令與參數.$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
1386
	#$conf["pre"],陣列,要在本指令前執行的每個指令與參數.$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
1387
	#$conf["pre"]=array();
1387
	#$conf["pre"]=array();
Line 1395... Line 1395...
1395
	#無.
1395
	#無.
1396
	#備註:
1396
	#備註:
1397
	#無.
1397
	#無.
1398
	*/
1398
	*/
1399
	public static function shell(&$conf){
1399
	public static function shell(&$conf){
1400
	
1400
 
1401
		#初始化要回傳的內容
1401
		#初始化要回傳的內容
1402
		$result=array();
1402
		$result=array();
1403
 
1403
 
1404
		#取得當前執行的函數名稱
1404
		#取得當前執行的函數名稱
1405
		$result["function"]=__FUNCTION__;
1405
		$result["function"]=__FUNCTION__;
1406
 
1406
 
1407
		#如果 $conf 不為陣列
1407
		#如果 $conf 不為陣列
1408
		if(gettype($conf)!="array"){
1408
		if(gettype($conf)!="array"){
1409
			
1409
 
1410
			#設置執行失敗
1410
			#設置執行失敗
1411
			$result["status"]="false";
1411
			$result["status"]="false";
1412
			
1412
 
1413
			#設置執行錯誤訊息
1413
			#設置執行錯誤訊息
1414
			$result["error"][]="\$conf變數須為陣列形態";
1414
			$result["error"][]="\$conf變數須為陣列形態";
1415
 
1415
 
1416
			#如果傳入的參數為 null
1416
			#如果傳入的參數為 null
1417
			if($conf===null){
1417
			if($conf===null){
1418
				
1418
 
1419
				#設置執行錯誤訊息
1419
				#設置執行錯誤訊息
1420
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1420
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1421
				
1421
 
1422
				}#if end
1422
				}#if end
1423
 
1423
 
1424
			#回傳結果
1424
			#回傳結果
1425
			return $result;
1425
			return $result;
1426
			
1426
 
1427
			}#if end
1427
			}#if end
1428
 
1428
 
1429
		#檢查參數
1429
		#檢查參數
1430
		#函式說明:
1430
		#函式說明:
1431
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
1431
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 1442... Line 1442...
1442
		#必填參數:
1442
		#必填參數:
1443
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1443
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
1444
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1444
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
1445
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1445
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
1446
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileArgu","dbSql","dbAccount");
1446
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileArgu","dbSql","dbAccount");
1447
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
1447
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
1448
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
1448
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
1449
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1449
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
1450
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1450
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
1451
		#可省略參數:
1451
		#可省略參數:
1452
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1452
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
1453
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1453
		$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
1454
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1454
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
1455
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("pre","dbAddress","dbPassword","dbName","dbPort");
1455
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("pre","dbAddress","dbPassword","dbName","dbPort");
1456
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
1456
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
1457
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","string","string","string","string");
1457
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","string","string","string","string");
1458
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1458
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
1459
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"3306");
1459
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"3306");
1460
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1460
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
1461
		#$conf["arrayCountEqualCheck"][]=array();
1461
		#$conf["arrayCountEqualCheck"][]=array();
1462
		#參考資料:
1462
		#參考資料:
1463
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1463
		#array_keys=>http://php.net/manual/en/function.array-keys.php
1464
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1464
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
1465
		unset($conf["variableCheck::checkArguments"]);
1465
		unset($conf["variableCheck::checkArguments"]);
1466
		
1466
 
1467
		#如果檢查失敗
1467
		#如果檢查失敗
1468
		if($checkResult["status"]=="false"){
1468
		if($checkResult["status"]=="false"){
1469
			
1469
 
1470
			#設置錯誤識別
1470
			#設置錯誤識別
1471
			$result["status"]="false";
1471
			$result["status"]="false";
1472
			
1472
 
1473
			#設置錯誤訊息
1473
			#設置錯誤訊息
1474
			$result["error"]=$checkResult;
1474
			$result["error"]=$checkResult;
1475
			
1475
 
1476
			#回傳解果
1476
			#回傳解果
1477
			return $result;
1477
			return $result;
1478
			
1478
 
1479
			}#if end
1479
			}#if end
1480
 
1480
 
1481
		#如果 $checkResult["status"]等於"false";
1481
		#如果 $checkResult["status"]等於"false";
1482
		if($checkResult["passed"]=="false"){
1482
		if($checkResult["passed"]=="false"){
1483
			
1483
 
1484
			#設置錯誤識別
1484
			#設置錯誤識別
1485
			$result["status"]="false";
1485
			$result["status"]="false";
1486
			
1486
 
1487
			#設置錯誤訊息
1487
			#設置錯誤訊息
1488
			$result["error"]=$checkResult;
1488
			$result["error"]=$checkResult;
1489
			
1489
 
1490
			#回傳解果
1490
			#回傳解果
1491
			return $result;
1491
			return $result;
1492
			
1492
 
1493
			}#if end
1493
			}#if end
1494
		
1494
 
1495
		#避免亂碼
1495
		#避免亂碼
1496
		$sql="SET NAMES UTF8;"."SET CHARACTER_SET_CLIENT=utf8;"."SET CHARACTER_SET_RESULTS=utf8;".$conf["dbSql"];
1496
		$sql="SET NAMES UTF8;"."SET CHARACTER_SET_CLIENT=utf8;"."SET CHARACTER_SET_RESULTS=utf8;".$conf["dbSql"];
1497
	
1497
 
1498
		#初始化參數
1498
		#初始化參數
1499
		$argu=array();
1499
		$argu=array();
1500
	
1500
 
1501
		#精簡的參數
1501
		#精簡的參數
1502
		$argu[]=$sql;
1502
		$argu[]=$sql;
1503
		$argu[]="|";
1503
		$argu[]="|";
1504
		$argu[]="mysql";
1504
		$argu[]="mysql";
1505
		$argu[]="-u";
1505
		$argu[]="-u";
1506
		$argu[]=$conf["dbAccount"];
1506
		$argu[]=$conf["dbAccount"];
1507
	
1507
 
1508
		#如果有設置 $conf["dbPassword"]
1508
		#如果有設置 $conf["dbPassword"]
1509
		if(isset($conf["dbPassword"])){
1509
		if(isset($conf["dbPassword"])){
1510
		
1510
 
1511
			#加上密碼參數
1511
			#加上密碼參數
1512
			$argu[]="-p".$conf["dbPassword"];
1512
			$argu[]="-p".$conf["dbPassword"];
1513
		
1513
 
1514
			}#if end
1514
			}#if end
1515
		
1515
 
1516
		#如果有指定 dbAddress
1516
		#如果有指定 dbAddress
1517
		if(isset($conf["dbAddress"])){
1517
		if(isset($conf["dbAddress"])){
1518
		
1518
 
1519
			#如果不為 localhost
1519
			#如果不為 localhost
1520
			if($conf["dbAddress"]!=="localhost"){
1520
			if($conf["dbAddress"]!=="localhost"){
1521
			
1521
 
1522
				#加上 位置參數
1522
				#加上 位置參數
1523
				$argu[]="-h".$conf["dbAddress"];
1523
				$argu[]="-h".$conf["dbAddress"];
1524
			
1524
 
1525
				}#if end
1525
				}#if end
1526
		
1526
 
1527
			}#if end
1527
			}#if end
1528
		
1528
 
1529
		#如果有設置 $conf["dbName"]
1529
		#如果有設置 $conf["dbName"]
1530
		if(isset($conf["dbName"])){
1530
		if(isset($conf["dbName"])){
1531
		
1531
 
1532
			#加上資料庫名稱參數
1532
			#加上資料庫名稱參數
1533
			$argu[]=$conf["dbName"];
1533
			$argu[]=$conf["dbName"];
1534
		
1534
 
1535
			}#if end
1535
			}#if end
1536
		
1536
 
1537
		#函式說明:
1537
		#函式說明:
1538
		#呼叫shell執行系統命令,並取得回傳的內容.
1538
		#呼叫shell執行系統命令,並取得回傳的內容.
1539
		#回傳結果:
1539
		#回傳結果:
1540
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1540
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
1541
		#$result["error"],錯誤訊息陣列.
1541
		#$result["error"],錯誤訊息陣列.
Line 1555... Line 1555...
1555
		$conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
1555
		$conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
1556
		#可省略參數:
1556
		#可省略參數:
1557
		#$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
1557
		#$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
1558
		$conf["external::callShell"]["argu"]=$argu;
1558
		$conf["external::callShell"]["argu"]=$argu;
1559
		#$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
1559
		#$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
1560
		#$conf["arguIsAddr"]=array();	
1560
		#$conf["arguIsAddr"]=array();
1561
		
1561
 
1562
		#如果有參數
1562
		#如果有參數
1563
		if(count($argu)>0){
1563
		if(count($argu)>0){
1564
			
1564
 
1565
			#$conf["thereIsShellVar"],陣列字串,指令搭配的參數"argu",若含有「\'」,則取代為「"」.每個argu參數都要有對應的元素."true"代表要置換.
1565
			#$conf["thereIsShellVar"],陣列字串,指令搭配的參數"argu",若含有「\'」,則取代為「"」.每個argu參數都要有對應的元素."true"代表要置換.
1566
			$conf["external::callShell"]["thereIsShellVar"]=array();
1566
			$conf["external::callShell"]["thereIsShellVar"]=array();
1567
			
1567
 
1568
			#針對每個參數
1568
			#針對每個參數
1569
			for($i=0;$i<count($argu);$i++){
1569
			for($i=0;$i<count($argu);$i++){
1570
			
1570
 
1571
				#第一個參數
1571
				#第一個參數
1572
				if($i===0){
1572
				if($i===0){
1573
				
1573
 
1574
					#含有shell變數
1574
					#含有shell變數
1575
					$conf["external::callShell"]["thereIsShellVar"][$i]="true";
1575
					$conf["external::callShell"]["thereIsShellVar"][$i]="true";
1576
				
1576
 
1577
					}#if end
1577
					}#if end
1578
				
1578
 
1579
				#反之
1579
				#反之
1580
				else{
1580
				else{
1581
				
1581
 
1582
					#不含有shell變數
1582
					#不含有shell變數
1583
					$conf["external::callShell"]["thereIsShellVar"][$i]="false";
1583
					$conf["external::callShell"]["thereIsShellVar"][$i]="false";
1584
				
1584
 
1585
					}#else 
1585
					}#else
1586
			
1586
 
1587
				}#for end
1587
				}#for end
1588
		
1588
 
1589
			}#if end
1589
			}#if end
1590
		
1590
 
1591
		#如果有設置 pre
1591
		#如果有設置 pre
1592
		if(isset($conf["pre"])){
1592
		if(isset($conf["pre"])){
1593
		
1593
 
1594
			#$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
1594
			#$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
1595
			#$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
1595
			#$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
1596
			#$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
1596
			#$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
1597
			$conf["external::callShell"]["pre"]=$conf["pre"];
1597
			$conf["external::callShell"]["pre"]=$conf["pre"];
1598
			
1598
 
1599
			}#if end
1599
			}#if end
1600
		
1600
 
1601
		#$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
1601
		#$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
1602
		#$conf["enablePrintDescription"]="true";
1602
		#$conf["enablePrintDescription"]="true";
1603
		#$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
1603
		#$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
1604
		#$conf["printDescription"]="";
1604
		#$conf["printDescription"]="";
1605
		#$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
1605
		#$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
Line 1630... Line 1630...
1630
		#debug
1630
		#debug
1631
		#var_dump(__LINE__,$callShell);
1631
		#var_dump(__LINE__,$callShell);
1632
 
1632
 
1633
		#如果檢查參數作業出錯
1633
		#如果檢查參數作業出錯
1634
		if($callShell["status"]=="false"){
1634
		if($callShell["status"]=="false"){
1635
			
1635
 
1636
			#設置執行錯誤識別
1636
			#設置執行錯誤識別
1637
			$result["status"]="false";
1637
			$result["status"]="false";
1638
			
1638
 
1639
			#設置錯誤訊息
1639
			#設置錯誤訊息
1640
			$result["error"]=$callShell;
1640
			$result["error"]=$callShell;
1641
			
1641
 
1642
			#回傳結果
1642
			#回傳結果
1643
			return $result;
1643
			return $result;
1644
			
1644
 
1645
			}#if end
1645
			}#if end
1646
		
1646
 
1647
		#函式說明:
1647
		#函式說明:
1648
		#連線到 unixDomainSockServer 提供的 unix domain socket.
1648
		#連線到 unixDomainSockServer 提供的 unix domain socket.
1649
		#回傳結果:
1649
		#回傳結果:
1650
		#$result["status"],"true"代表執行正常;"false"代表執行不正常.
1650
		#$result["status"],"true"代表執行正常;"false"代表執行不正常.
1651
		#$result["error"],錯誤訊息陣列.
1651
		#$result["error"],錯誤訊息陣列.
Line 1671... Line 1671...
1671
		#備註:
1671
		#備註:
1672
		#無.
1672
		#無.
1673
		$paramsOfUnixDomainSockClient=$conf["sock::unixDomainSockClient"];
1673
		$paramsOfUnixDomainSockClient=$conf["sock::unixDomainSockClient"];
1674
		$unixDomainSockClient=sock::unixDomainSockClient($conf["sock::unixDomainSockClient"]);
1674
		$unixDomainSockClient=sock::unixDomainSockClient($conf["sock::unixDomainSockClient"]);
1675
		unset($conf["sock::unixDomainSockClient"]);
1675
		unset($conf["sock::unixDomainSockClient"]);
1676
		
1676
 
1677
		#如果執行失敗
1677
		#如果執行失敗
1678
		if($unixDomainSockClient["status"]==="false"){
1678
		if($unixDomainSockClient["status"]==="false"){
1679
		
1679
 
1680
			#設置執行錯誤識別
1680
			#設置執行錯誤識別
1681
			$result["status"]="false";
1681
			$result["status"]="false";
1682
			
1682
 
1683
			#設置錯誤訊息
1683
			#設置錯誤訊息
1684
			$result["error"]=$unixDomainSockClient;
1684
			$result["error"]=$unixDomainSockClient;
1685
			
1685
 
1686
			#回傳結果
1686
			#回傳結果
1687
			return $result;
1687
			return $result;
1688
		
1688
 
1689
			}#if end
1689
			}#if end
1690
		
1690
 
1691
		#取得json回應
1691
		#取得json回應
1692
		$jsonRes=json_decode($unixDomainSockClient["content"]);
1692
		$jsonRes=json_decode($unixDomainSockClient["content"]);
1693
		
1693
 
1694
		#如果執行失敗
1694
		#如果執行失敗
1695
		if($jsonRes===null){
1695
		if($jsonRes===null){
1696
		
1696
 
1697
			#設置執行錯誤識別
1697
			#設置執行錯誤識別
1698
			$result["status"]="false";
1698
			$result["status"]="false";
1699
			
1699
 
1700
			#設置錯誤訊息
1700
			#設置錯誤訊息
1701
			$result["error"]=$unixDomainSockClient;
1701
			$result["error"]=$unixDomainSockClient;
1702
			
1702
 
1703
			#回傳結果
1703
			#回傳結果
1704
			return $result;
1704
			return $result;
1705
		
1705
 
1706
			}#if end
1706
			}#if end
1707
			
1707
 
1708
		#如果沒有產生新id
1708
		#如果沒有產生新id
1709
		if(!isset($jsonRes->id)){
1709
		if(!isset($jsonRes->id)){
1710
		
1710
 
1711
			#設置執行錯誤識別
1711
			#設置執行錯誤識別
1712
			$result["status"]="false";
1712
			$result["status"]="false";
1713
			
1713
 
1714
			#設置錯誤訊息
1714
			#設置錯誤訊息
1715
			$result["error"]=$unixDomainSockClient;
1715
			$result["error"]=$unixDomainSockClient;
1716
			
1716
 
1717
			#回傳結果
1717
			#回傳結果
1718
			return $result;
1718
			return $result;
1719
		
1719
 
1720
			}#if end
1720
			}#if end
1721
			
1721
 
1722
		#用新的id再傳送一次要求給 qbpwcf_usock_path
1722
		#用新的id再傳送一次要求給 qbpwcf_usock_path
1723
		$paramsOfUnixDomainSockClient["id"]=$jsonRes->id;
1723
		$paramsOfUnixDomainSockClient["id"]=$jsonRes->id;
1724
		$unixDomainSockClient=sock::unixDomainSockClient($paramsOfUnixDomainSockClient);
1724
		$unixDomainSockClient=sock::unixDomainSockClient($paramsOfUnixDomainSockClient);
1725
		unset($paramsOfUnixDomainSockClient);
1725
		unset($paramsOfUnixDomainSockClient);
1726
		
1726
 
1727
		#var_dump($unixDomainSockClient);
1727
		#var_dump($unixDomainSockClient);
1728
		
1728
 
1729
		#如果執行失敗
1729
		#如果執行失敗
1730
		if($unixDomainSockClient["status"]==="false"){
1730
		if($unixDomainSockClient["status"]==="false"){
1731
		
1731
 
1732
			#設置執行錯誤識別
1732
			#設置執行錯誤識別
1733
			$result["status"]="false";
1733
			$result["status"]="false";
1734
			
1734
 
1735
			#設置錯誤訊息
1735
			#設置錯誤訊息
1736
			$result["error"]=$unixDomainSockClient;
1736
			$result["error"]=$unixDomainSockClient;
1737
			
1737
 
1738
			#回傳結果
1738
			#回傳結果
1739
			return $result;
1739
			return $result;
1740
		
1740
 
1741
			}#if end
1741
			}#if end
1742
		
1742
 
1743
		#執行正常
1743
		#執行正常
1744
		$result["status"]="true";
1744
		$result["status"]="true";
1745
	
1745
 
1746
		#設置執行的結果
1746
		#設置執行的結果
1747
		$result["content"]=$unixDomainSockClient;
1747
		$result["content"]=$unixDomainSockClient;
1748
	
1748
 
1749
		#回傳結果
1749
		#回傳結果
1750
		return $result;
1750
		return $result;
1751
	
1751
 
1752
		}#function shell end
1752
		}#function shell end
1753
 
1753
 
1754
	/*
1754
	/*
1755
	#函式說明:
1755
	#函式說明:
1756
	#建立資料庫,會回傳一個陣列。
1756
	#建立資料庫,會回傳一個陣列。
Line 1763... Line 1763...
1763
	$conf["dbAddress"]=$dbAddress;
1763
	$conf["dbAddress"]=$dbAddress;
1764
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
1764
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
1765
	$conf["dbAccount"]=$dbAccount;
1765
	$conf["dbAccount"]=$dbAccount;
1766
	#$conf["newDatabaseName"],字串,爲要新增的資料庫名稱.
1766
	#$conf["newDatabaseName"],字串,爲要新增的資料庫名稱.
1767
	$conf["newDatabaseName"]="";
1767
	$conf["newDatabaseName"]="";
1768
	#可省略參數: 
1768
	#可省略參數:
1769
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
1769
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
1770
	#$conf["dbPassword"]=$dbPassword;
1770
	#$conf["dbPassword"]=$dbPassword;
1771
	#$conf["dbName"],字串,爲要連的資料庫名稱
1771
	#$conf["dbName"],字串,爲要連的資料庫名稱
1772
	#$conf["dbName"]="";
1772
	#$conf["dbName"]="";
1773
	#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,預設為3306.
1773
	#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,預設為3306.
Line 1777... Line 1777...
1777
	#備註:
1777
	#備註:
1778
	#無.
1778
	#無.
1779
	*/
1779
	*/
1780
	public static function createDatabase($conf){
1780
	public static function createDatabase($conf){
1781
 
1781
 
1782
		#初始化錯誤訊息 
1782
		#初始化錯誤訊息
1783
		$result=array();
1783
		$result=array();
1784
 
1784
 
1785
		#取得當前執行的函數名稱
1785
		#取得當前執行的函數名稱
1786
		$result["function"]=__FUNCTION__;
1786
		$result["function"]=__FUNCTION__;
1787
 
1787
 
1788
		#如果 $conf 不為陣列
1788
		#如果 $conf 不為陣列
1789
		if(gettype($conf)!="array"){
1789
		if(gettype($conf)!="array"){
1790
			
1790
 
1791
			#設置執行失敗
1791
			#設置執行失敗
1792
			$result["status"]="false";
1792
			$result["status"]="false";
1793
			
1793
 
1794
			#設置執行錯誤訊息
1794
			#設置執行錯誤訊息
1795
			$result["error"][]="\$conf變數須為陣列形態";
1795
			$result["error"][]="\$conf變數須為陣列形態";
1796
 
1796
 
1797
			#如果傳入的參數為 null
1797
			#如果傳入的參數為 null
1798
			if($conf==null){
1798
			if($conf==null){
1799
				
1799
 
1800
				#設置執行錯誤訊息
1800
				#設置執行錯誤訊息
1801
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1801
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1802
				
1802
 
1803
				}#if end
1803
				}#if end
1804
 
1804
 
1805
			#回傳結果
1805
			#回傳結果
1806
			return $result;
1806
			return $result;
1807
			
1807
 
1808
			}#if end
1808
			}#if end
1809
 
1809
 
1810
		#檢查參數
1810
		#檢查參數
1811
		#函式說明:
1811
		#函式說明:
1812
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
1812
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
Line 1816... Line 1816...
1816
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1816
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1817
		#必填參數:
1817
		#必填參數:
1818
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
1818
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
1819
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbPassword","newDatabaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
1819
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbPassword","newDatabaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
1820
		#可省略參數:
1820
		#可省略參數:
1821
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
1821
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
1822
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
1822
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
1823
		#備註:
1823
		#備註:
1824
		#功能與checkExistAndType函式相同
1824
		#功能與checkExistAndType函式相同
1825
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
1825
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
1826
		unset($conf["variableCheck"]["isexistMuti"]);
1826
		unset($conf["variableCheck"]["isexistMuti"]);
1827
 
1827
 
1828
		#如果 $checkResult["passed"] 等於 "fasle"
1828
		#如果 $checkResult["passed"] 等於 "fasle"
1829
		if($checkResult["passed"]=="false"){
1829
		if($checkResult["passed"]=="false"){
1830
			
1830
 
1831
			#設置錯誤識別
1831
			#設置錯誤識別
1832
			$result["status"]="false";
1832
			$result["status"]="false";
1833
			
1833
 
1834
			#設置錯誤訊息
1834
			#設置錯誤訊息
1835
			$result["error"]=$checkResult;
1835
			$result["error"]=$checkResult;
1836
			
1836
 
1837
			#回傳結果
1837
			#回傳結果
1838
			return $result;
1838
			return $result;
1839
			
1839
 
1840
			}#if end
1840
			}#if end
1841
 
1841
 
1842
		#建立資料庫的sql語法
1842
		#建立資料庫的sql語法
1843
		$sql="CREATE DATABASE ".$conf["newDatabaseName"]."  CHARACTER SET='utf8' COLLATE='utf8_unicode_ci'";
1843
		$sql="CREATE DATABASE ".$conf["newDatabaseName"]."  CHARACTER SET='utf8' COLLATE='utf8_unicode_ci'";
1844
 
1844
 
Line 1852... Line 1852...
1852
		#查詢號的解果,需要解析。
1852
		#查詢號的解果,需要解析。
1853
		#必填參數:
1853
		#必填參數:
1854
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
1854
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
1855
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
1855
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
1856
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
1856
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
1857
		#可省略參數: 
1857
		#可省略參數:
1858
		
1858
 
1859
		#如果 $conf["dbPassword"] 有設定
1859
		#如果 $conf["dbPassword"] 有設定
1860
		if(isset($conf["dbPassword"])){
1860
		if(isset($conf["dbPassword"])){
1861
		
1861
 
1862
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
1862
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
1863
		
1863
 
1864
			}#if end
1864
			}#if end
1865
			 
1865
 
1866
		#如果 $conf["dbPort"] 有設定
1866
		#如果 $conf["dbPort"] 有設定
1867
		if(isset($conf["dbPort"])){
1867
		if(isset($conf["dbPort"])){
1868
		
1868
 
1869
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
1869
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
1870
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
1870
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
1871
		
1871
 
1872
			}#if end
1872
			}#if end
1873
					
1873
 
1874
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
1874
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
1875
		unset($conf["db"]["execMysqlQuery"]);
1875
		unset($conf["db"]["execMysqlQuery"]);
1876
 
1876
 
1877
		#如果 $db["execMysqlQuery"]["status"] 等於 "false"
1877
		#如果 $db["execMysqlQuery"]["status"] 等於 "false"
1878
		if($db["execMysqlQuery"]["status"]=="false"){
1878
		if($db["execMysqlQuery"]["status"]=="false"){
1879
			
1879
 
1880
			#設置錯誤識別
1880
			#設置錯誤識別
1881
			$result["status"]="false";
1881
			$result["status"]="false";
1882
			
1882
 
1883
			#設置錯誤訊息
1883
			#設置錯誤訊息
1884
			$result["error"]=$db["execMysqlQuery"];
1884
			$result["error"]=$db["execMysqlQuery"];
1885
			
1885
 
1886
			#回傳結果
1886
			#回傳結果
1887
			return $result;
1887
			return $result;
1888
			
1888
 
1889
			}#if end
1889
			}#if end
1890
 
1890
 
1891
		#執行道這邊代表執行正確
1891
		#執行道這邊代表執行正確
1892
		$result["status"]="true";
1892
		$result["status"]="true";
1893
 
1893
 
1894
		#回傳結果
1894
		#回傳結果
1895
		return $result;
1895
		return $result;
1896
	
1896
 
1897
		}#function createDatabase end
1897
		}#function createDatabase end
1898
 
1898
 
1899
	/*
1899
	/*
1900
	#函式說明:
1900
	#函式說明:
1901
	#建立資料表,會回傳一個陣列。
1901
	#建立資料表,會回傳一個陣列。
Line 1907... Line 1907...
1907
	#必填參數:
1907
	#必填參數:
1908
	#$conf["dbAddress"],字串,爲mysql-Server的位置
1908
	#$conf["dbAddress"],字串,爲mysql-Server的位置
1909
	$conf["dbAddress"]=$dbAddress;
1909
	$conf["dbAddress"]=$dbAddress;
1910
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
1910
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
1911
	$conf["dbAccount"]=$dbAccount;
1911
	$conf["dbAccount"]=$dbAccount;
1912
	#$conf["selectedDataBaseName"],字串,要選取的資料庫名稱	
1912
	#$conf["selectedDataBaseName"],字串,要選取的資料庫名稱
1913
	$conf["selectedDataBaseName"]=$dbName;
1913
	$conf["selectedDataBaseName"]=$dbName;
1914
	#$conf["newDataTableName"],字串,爲要新增的資料表名稱.
1914
	#$conf["newDataTableName"],字串,爲要新增的資料表名稱.
1915
	$conf["newDataTableName"]="";
1915
	$conf["newDataTableName"]="";
1916
	#$conf["newDataTableColmunName"],字串,為新資料表的欄位名稱.
1916
	#$conf["newDataTableColmunName"],字串,為新資料表的欄位名稱.
1917
	$conf["newDataTableColmunName"]=array("id","lastUpdatedTime");
1917
	$conf["newDataTableColmunName"]=array("id","lastUpdatedTime");
Line 1920... Line 1920...
1920
	#$conf["newDataTableColmunDefault"],字串陣列,為該欄位的預設值,若為currentTime則為當前時間;若為updatedCurrentTime則為初始為當前時間,之後每更動一次就更新為當次時間;若為null則代表空值;若為""則為不設定;以外的內容視為指定的數值.
1920
	#$conf["newDataTableColmunDefault"],字串陣列,為該欄位的預設值,若為currentTime則為當前時間;若為updatedCurrentTime則為初始為當前時間,之後每更動一次就更新為當次時間;若為null則代表空值;若為""則為不設定;以外的內容視為指定的數值.
1921
	$conf["newDataTableColmunDefault"]=array("","updatedCurrentTime");
1921
	$conf["newDataTableColmunDefault"]=array("","updatedCurrentTime");
1922
	#$conf["newDataTableColmunLength"],字串陣列,為新資料表的欄位儲存的長度,""代表不指定長度.
1922
	#$conf["newDataTableColmunLength"],字串陣列,為新資料表的欄位儲存的長度,""代表不指定長度.
1923
	$conf["newDataTableColmunLength"]=array("","");
1923
	$conf["newDataTableColmunLength"]=array("","");
1924
	#$conf["newDataTableColmunNull"],字串陣列,為新資料表的欄位是否可為NULL.若為no則代表不能為null;若為yes則代表可以為null.
1924
	#$conf["newDataTableColmunNull"],字串陣列,為新資料表的欄位是否可為NULL.若為no則代表不能為null;若為yes則代表可以為null.
1925
	$conf["newDataTableColmunNull"]=array("no","no","no","no");	
1925
	$conf["newDataTableColmunNull"]=array("no","no","no","no");
1926
	#$conf["newDataTableColmunAutoAdd"],字串陣列,"true"為新資料表的欄位自動+1;反之設為""即可.
1926
	#$conf["newDataTableColmunAutoAdd"],字串陣列,"true"為新資料表的欄位自動+1;反之設為""即可.
1927
	$conf["newDataTableColmunAutoAdd"]=array("true","","","");
1927
	$conf["newDataTableColmunAutoAdd"]=array("true","","","");
1928
	#$conf["newDataTableColmunKeyType"],字串陣列,為該欄位的鍵屬性:primary key代表主鍵;留"",代表不指定。
1928
	#$conf["newDataTableColmunKeyType"],字串陣列,為該欄位的鍵屬性:primary key代表主鍵;留"",代表不指定。
1929
	$conf["newDataTableColmunKeyType"]=array("primary key","","","");
1929
	$conf["newDataTableColmunKeyType"]=array("primary key","","","");
1930
	#可省略參數:
1930
	#可省略參數:
Line 1936... Line 1936...
1936
	#無.
1936
	#無.
1937
	#備註:
1937
	#備註:
1938
	#無.
1938
	#無.
1939
	*/
1939
	*/
1940
	public static function createDataTable($conf){
1940
	public static function createDataTable($conf){
1941
		
1941
 
1942
		#初始化要回傳的結果
1942
		#初始化要回傳的結果
1943
		$result=array();
1943
		$result=array();
1944
		
1944
 
1945
		#取得當前執行的函數名稱
1945
		#取得當前執行的函數名稱
1946
		$result["function"]=__FUNCTION__;
1946
		$result["function"]=__FUNCTION__;
1947
		
1947
 
1948
		#如果 $conf 不為陣列
1948
		#如果 $conf 不為陣列
1949
		if(gettype($conf)!="array"){
1949
		if(gettype($conf)!="array"){
1950
			
1950
 
1951
			#設置執行失敗
1951
			#設置執行失敗
1952
			$result["status"]="false";
1952
			$result["status"]="false";
1953
			
1953
 
1954
			#設置執行錯誤訊息
1954
			#設置執行錯誤訊息
1955
			$result["error"][]="\$conf變數須為陣列形態";
1955
			$result["error"][]="\$conf變數須為陣列形態";
1956
 
1956
 
1957
			#如果傳入的參數為 null
1957
			#如果傳入的參數為 null
1958
			if($conf==null){
1958
			if($conf==null){
1959
				
1959
 
1960
				#設置執行錯誤訊息
1960
				#設置執行錯誤訊息
1961
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1961
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
1962
				
1962
 
1963
				}#if end
1963
				}#if end
1964
 
1964
 
1965
			#回傳結果
1965
			#回傳結果
1966
			return $result;
1966
			return $result;
1967
			
1967
 
1968
			}#if end
1968
			}#if end
1969
		
1969
 
1970
		#函式說明:
1970
		#函式說明:
1971
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
1971
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
1972
		#回傳結果:
1972
		#回傳結果:
1973
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1973
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
1974
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1974
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
1975
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1975
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
1976
		#必填參數:
1976
		#必填參數:
1977
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
1977
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
1978
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","newDataTableName","newDataTableColmunName","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
1978
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","newDataTableName","newDataTableColmunName","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
1979
		#可省略參數:
1979
		#可省略參數:
1980
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
1980
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
1981
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
1981
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
1982
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
1982
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
1983
		unset($conf["variableCheck"]["isexistMuti"]);
1983
		unset($conf["variableCheck"]["isexistMuti"]);
1984
		
1984
 
1985
		#如果檢查動作不正常
1985
		#如果檢查動作不正常
1986
		if($checkResult["status"]=="false"){
1986
		if($checkResult["status"]=="false"){
1987
			
1987
 
1988
			#設置執失敗訊息
1988
			#設置執失敗訊息
1989
			$result["status"]="false";
1989
			$result["status"]="false";
1990
			
1990
 
1991
			#設置錯誤訊息
1991
			#設置錯誤訊息
1992
			$result["error"]=$checkResult;
1992
			$result["error"]=$checkResult;
1993
			
1993
 
1994
			#回傳錯誤訊息
1994
			#回傳錯誤訊息
1995
			return $result;
1995
			return $result;
1996
			
1996
 
1997
			}#if end
1997
			}#if end
1998
		
1998
 
1999
		#如果檢查不通過
1999
		#如果檢查不通過
2000
		if($checkResult["passed"]=="false"){
2000
		if($checkResult["passed"]=="false"){
2001
			
2001
 
2002
			#設置執失敗訊息
2002
			#設置執失敗訊息
2003
			$result["status"]="false";
2003
			$result["status"]="false";
2004
			
2004
 
2005
			#設置錯誤訊息
2005
			#設置錯誤訊息
2006
			$result["error"]=$checkResult;
2006
			$result["error"]=$checkResult;
2007
			
2007
 
2008
			#回傳錯誤訊息
2008
			#回傳錯誤訊息
2009
			return $result;
2009
			return $result;
2010
			
2010
 
2011
			}#if end
2011
			}#if end
2012
		
2012
 
2013
		#建立資料表的語法
2013
		#建立資料表的語法
2014
		$sql="create table ".$conf["selectedDataBaseName"].".".$conf["newDataTableName"];
2014
		$sql="create table ".$conf["selectedDataBaseName"].".".$conf["newDataTableName"];
2015
		
2015
 
2016
		#加上指定欄位內容的開頭
2016
		#加上指定欄位內容的開頭
2017
		$sql=$sql."(";
2017
		$sql=$sql."(";
2018
		
2018
 
2019
		#針對每個欄位
2019
		#針對每個欄位
2020
		for($i=0;$i<count($conf["newDataTableColmunName"]);$i++){
2020
		for($i=0;$i<count($conf["newDataTableColmunName"]);$i++){
2021
			
2021
 
2022
			#接上欄位名稱
2022
			#接上欄位名稱
2023
			$sql=$sql.$conf["newDataTableColmunName"][$i];
2023
			$sql=$sql.$conf["newDataTableColmunName"][$i];
2024
			
2024
 
2025
			#接上欄位儲存型態
2025
			#接上欄位儲存型態
2026
			$sql=$sql." ".$conf["newDataTableColmunType"][$i];
2026
			$sql=$sql." ".$conf["newDataTableColmunType"][$i];
2027
			
2027
 
2028
			#如果有設定資料長度
2028
			#如果有設定資料長度
2029
			if($conf["newDataTableColmunLength"][$i]!=""){
2029
			if($conf["newDataTableColmunLength"][$i]!=""){
2030
			
2030
 
2031
				#接上欄位儲存長度
2031
				#接上欄位儲存長度
2032
				$sql=$sql." (".$conf["newDataTableColmunLength"][$i].")";
2032
				$sql=$sql." (".$conf["newDataTableColmunLength"][$i].")";
2033
				
2033
 
2034
				}#if end
2034
				}#if end
2035
				
2035
 
2036
			#如果有設定值
2036
			#如果有設定值
2037
			if($conf["newDataTableColmunDefault"][$i]!=""){
2037
			if($conf["newDataTableColmunDefault"][$i]!=""){
2038
				
2038
 
2039
				switch($conf["newDataTableColmunDefault"][$i]){
2039
				switch($conf["newDataTableColmunDefault"][$i]){
2040
					
2040
 
2041
					#如果設為 currentTime
2041
					#如果設為 currentTime
2042
					case "currentTime":
2042
					case "currentTime":
2043
					
2043
 
2044
						#設定語法
2044
						#設定語法
2045
						$sql=$sql." default CURRENT_TIMESTAMP";
2045
						$sql=$sql." default CURRENT_TIMESTAMP";
2046
						
2046
 
2047
						#跳出switch
2047
						#跳出switch
2048
						break;
2048
						break;
2049
					
2049
 
2050
					#如果設為updatedCurrentTime
2050
					#如果設為updatedCurrentTime
2051
					case "updatedCurrentTime":
2051
					case "updatedCurrentTime":
2052
					
2052
 
2053
						#設定語法
2053
						#設定語法
2054
						$sql=$sql." default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP";
2054
						$sql=$sql." default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP";
2055
					
2055
 
2056
						#跳出switch
2056
						#跳出switch
2057
						break;
2057
						break;
2058
						
2058
 
2059
					#如果設為 null
2059
					#如果設為 null
2060
					case "null":
2060
					case "null":
2061
					
2061
 
2062
						#設定語法
2062
						#設定語法
2063
						$sql=$sql." default null";
2063
						$sql=$sql." default null";
2064
						
2064
 
2065
						#跳出switch
2065
						#跳出switch
2066
						break;
2066
						break;
2067
						
2067
 
2068
					#如果不為以上數值
2068
					#如果不為以上數值
2069
					default :
2069
					default :
2070
					
2070
 
2071
						#設定語法
2071
						#設定語法
2072
						$sql=$sql." default ".$conf["newDataTableColmunDefault"][$i];
2072
						$sql=$sql." default ".$conf["newDataTableColmunDefault"][$i];
2073
						
2073
 
2074
						#跳出switch
2074
						#跳出switch
2075
						break;
2075
						break;
2076
					
2076
 
2077
					}#switch end
2077
					}#switch end
2078
				
2078
 
2079
				}#if end
2079
				}#if end
2080
			
2080
 
2081
			#如果有設定不能為NULL
2081
			#如果有設定不能為NULL
2082
			if($conf["newDataTableColmunNull"][$i]=="no"){
2082
			if($conf["newDataTableColmunNull"][$i]=="no"){
2083
				
2083
 
2084
				$sql=$sql." NOT NULL";
2084
				$sql=$sql." NOT NULL";
2085
				
2085
 
2086
				}#if end
2086
				}#if end
2087
			
2087
 
2088
			#如果有設定要自動加1
2088
			#如果有設定要自動加1
2089
			if($conf["newDataTableColmunAutoAdd"][$i]=="true"){
2089
			if($conf["newDataTableColmunAutoAdd"][$i]=="true"){
2090
				
2090
 
2091
				#加上自動加1的語句
2091
				#加上自動加1的語句
2092
				$sql=$sql." auto_increment";
2092
				$sql=$sql." auto_increment";
2093
				
2093
 
2094
				}#if end
2094
				}#if end
2095
				
2095
 
2096
			#如果有設定鍵的屬性
2096
			#如果有設定鍵的屬性
2097
			if($conf["newDataTableColmunKeyType"][$i]!=""){
2097
			if($conf["newDataTableColmunKeyType"][$i]!=""){
2098
				
2098
 
2099
				$sql=$sql." ".$conf["newDataTableColmunKeyType"][$i];
2099
				$sql=$sql." ".$conf["newDataTableColmunKeyType"][$i];
2100
				
2100
 
2101
				}#if end
2101
				}#if end
2102
				
2102
 
2103
			#如果不是最後一個欄位
2103
			#如果不是最後一個欄位
2104
			if($i!=count($conf["newDataTableColmunName"])-1){
2104
			if($i!=count($conf["newDataTableColmunName"])-1){
2105
				
2105
 
2106
				#加上逗號
2106
				#加上逗號
2107
				$sql=$sql.",";
2107
				$sql=$sql.",";
2108
				
2108
 
2109
				}#if end
2109
				}#if end
2110
			
2110
 
2111
			}#for end
2111
			}#for end
2112
			
2112
 
2113
		#加上指定欄位內容的結束
2113
		#加上指定欄位內容的結束
2114
		$sql=$sql.") DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;";
2114
		$sql=$sql.") DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;";
2115
		
2115
 
2116
		#取得sql語法
2116
		#取得sql語法
2117
		$result["sql"]=$sql;
2117
		$result["sql"]=$sql;
2118
		
2118
 
2119
		#var_dump($sql);
2119
		#var_dump($sql);
2120
		
2120
 
2121
		#函式說明:
2121
		#函式說明:
2122
		#回傳結果::
2122
		#回傳結果::
2123
		#$result["status"],"true"為執行成功;"false"為執行失敗。
2123
		#$result["status"],"true"為執行成功;"false"為執行失敗。
2124
		#$result["error"],錯誤訊息的陣列
2124
		#$result["error"],錯誤訊息的陣列
2125
		#查詢號的解果,需要解析。
2125
		#查詢號的解果,需要解析。
2126
		#必填參數:
2126
		#必填參數:
2127
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
2127
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
2128
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2128
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2129
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
2129
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
2130
		#可省略參數: 
2130
		#可省略參數:
2131
		
2131
 
2132
		#如果有設定密碼
2132
		#如果有設定密碼
2133
		if(isset($conf["dbPassword"])){
2133
		if(isset($conf["dbPassword"])){
2134
			
2134
 
2135
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2135
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2136
			
2136
 
2137
			}#if end
2137
			}#if end
2138
			
2138
 
2139
		#如果 $conf["dbPort"] 有設定
2139
		#如果 $conf["dbPort"] 有設定
2140
		if(isset($conf["dbPort"])){
2140
		if(isset($conf["dbPort"])){
2141
		
2141
 
2142
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
2142
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
2143
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
2143
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
2144
		
2144
 
2145
			}#if end
2145
			}#if end
2146
				
2146
 
2147
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
2147
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
2148
		unset($conf["db"]["execMysqlQuery"]);
2148
		unset($conf["db"]["execMysqlQuery"]);
2149
		
2149
 
2150
		#如果執行 sql 失敗
2150
		#如果執行 sql 失敗
2151
		if($queryResult["status"]=="false"){
2151
		if($queryResult["status"]=="false"){
2152
			
2152
 
2153
			#設置執行失敗訊息
2153
			#設置執行失敗訊息
2154
			$result["status"]="false";
2154
			$result["status"]="false";
2155
			
2155
 
2156
			#設置錯誤訊息
2156
			#設置錯誤訊息
2157
			$result["error"]=$queryResult["error"];
2157
			$result["error"]=$queryResult["error"];
2158
			
2158
 
2159
			#回傳結果
2159
			#回傳結果
2160
			return $result;
2160
			return $result;
2161
			
2161
 
2162
			}#if end
2162
			}#if end
2163
		
2163
 
2164
		#設置執成功訊息
2164
		#設置執成功訊息
2165
		$result["status"]="true";
2165
		$result["status"]="true";
2166
			
2166
 
2167
		#回傳結果
2167
		#回傳結果
2168
		return $result;
2168
		return $result;
2169
		
2169
 
2170
		}#function createDataTable end
2170
		}#function createDataTable end
2171
 
2171
 
2172
	/*
2172
	/*
2173
	#函式說明:
2173
	#函式說明:
2174
	#新增資料表的欄位
2174
	#新增資料表的欄位
Line 2188... Line 2188...
2188
	$conf["selectedDataTableName"]="";
2188
	$conf["selectedDataTableName"]="";
2189
	#$conf["addedColumnName"],字串,要增加的欄位名稱.
2189
	#$conf["addedColumnName"],字串,要增加的欄位名稱.
2190
	$conf["addedColumnName"]="";
2190
	$conf["addedColumnName"]="";
2191
	#$conf["newDataTableColmunType"],字串,為新資料表的欄位儲存的型態,常見的有:#int,用來儲存整數.#double,用來儲存有小數點的數值.#timestamp,用來儲存時間.#varchar,最多可以儲存65535個字元,請記得使用$conf["newDataTableColmunLength"]參數指定長度.#char,用來儲存任何東西,儲存成字元,最大長限制為255.#tinytext,儲存長度限制為255,根據實際使用大小來調整儲存大小.#text,儲存大量文字,不能當索引鍵.
2191
	#$conf["newDataTableColmunType"],字串,為新資料表的欄位儲存的型態,常見的有:#int,用來儲存整數.#double,用來儲存有小數點的數值.#timestamp,用來儲存時間.#varchar,最多可以儲存65535個字元,請記得使用$conf["newDataTableColmunLength"]參數指定長度.#char,用來儲存任何東西,儲存成字元,最大長限制為255.#tinytext,儲存長度限制為255,根據實際使用大小來調整儲存大小.#text,儲存大量文字,不能當索引鍵.
2192
	$conf["newDataTableColmunType"]="char";
2192
	$conf["newDataTableColmunType"]="char";
2193
	#可省略參數: 
2193
	#可省略參數:
2194
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2194
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2195
	#$conf["dbPassword"]=$dbPassword;
2195
	#$conf["dbPassword"]=$dbPassword;
2196
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
2196
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
2197
	#$conf["dbPort"]="3306";
2197
	#$conf["dbPort"]="3306";
2198
	#$conf["newDataTableColmunLength"],字串,為新資料表的欄位儲存的長度.
2198
	#$conf["newDataTableColmunLength"],字串,為新資料表的欄位儲存的長度.
Line 2212... Line 2212...
2212
	#$conf["foreignTableColumn"],字串,外鍵參考的資料表欄位
2212
	#$conf["foreignTableColumn"],字串,外鍵參考的資料表欄位
2213
	#$conf["foreignTableColumn"]="";
2213
	#$conf["foreignTableColumn"]="";
2214
	#$conf["onUpdateAction"],字串,當外鍵參考的欄位資料修改時,外鍵要如何回應?"CASCADE"會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2214
	#$conf["onUpdateAction"],字串,當外鍵參考的欄位資料修改時,外鍵要如何回應?"CASCADE"會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2215
	#$conf["onUpdateAction"]="CASCADE";#
2215
	#$conf["onUpdateAction"]="CASCADE";#
2216
	#$conf["onDeleteAction"],字串,當外鍵參考的欄位資料移除時,外鍵要如何回應?"CASCADE"會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2216
	#$conf["onDeleteAction"],字串,當外鍵參考的欄位資料移除時,外鍵要如何回應?"CASCADE"會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2217
	#$conf["onDeleteAction"]="SET NULL";	
2217
	#$conf["onDeleteAction"]="SET NULL";
2218
	#$conf["comment"],字串,欄位的註解,預設不使用.
2218
	#$conf["comment"],字串,欄位的註解,預設不使用.
2219
	#$conf["comment"]="";
2219
	#$conf["comment"]="";
2220
	#參考資料:
2220
	#參考資料:
2221
	#儲存型態=>https://mariadb.com/kb/en/data-types/
2221
	#儲存型態=>https://mariadb.com/kb/en/data-types/
2222
	#備註:
2222
	#備註:
2223
	#無.
2223
	#無.
2224
	*/
2224
	*/
2225
	public static function addColumn(&$conf){
2225
	public static function addColumn(&$conf){
2226
		
2226
 
2227
		#初始化要回傳的結果
2227
		#初始化要回傳的結果
2228
		$result=array();
2228
		$result=array();
2229
		
2229
 
2230
		#記錄當前執行的函數名稱
2230
		#記錄當前執行的函數名稱
2231
		$result["function"]=__FUNCTION__;
2231
		$result["function"]=__FUNCTION__;
2232
		
2232
 
2233
		#如果 $conf 不為陣列
2233
		#如果 $conf 不為陣列
2234
		if(gettype($conf)!="array"){
2234
		if(gettype($conf)!="array"){
2235
			
2235
 
2236
			#設置執行失敗
2236
			#設置執行失敗
2237
			$result["status"]="false";
2237
			$result["status"]="false";
2238
			
2238
 
2239
			#設置執行錯誤訊息
2239
			#設置執行錯誤訊息
2240
			$result["error"][]="\$conf變數須為陣列形態";
2240
			$result["error"][]="\$conf變數須為陣列形態";
2241
 
2241
 
2242
			#如果傳入的參數為 null
2242
			#如果傳入的參數為 null
2243
			if($conf==null){
2243
			if($conf==null){
2244
				
2244
 
2245
				#設置執行錯誤訊息
2245
				#設置執行錯誤訊息
2246
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2246
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2247
				
2247
 
2248
				}#if end
2248
				}#if end
2249
 
2249
 
2250
			#回傳結果
2250
			#回傳結果
2251
			return $result;
2251
			return $result;
2252
			
2252
 
2253
			}#if end
2253
			}#if end
2254
		
2254
 
2255
		#檢查參數
2255
		#檢查參數
2256
		#函式說明:
2256
		#函式說明:
2257
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2257
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2258
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2258
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2259
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
2259
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 2268... Line 2268...
2268
		#必填參數:
2268
		#必填參數:
2269
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2269
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2270
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2270
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
2271
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2271
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2272
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","addedColumnName");
2272
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","addedColumnName");
2273
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
2273
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
2274
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
2274
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
2275
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2275
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2276
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2276
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
2277
		#可省略參數:
2277
		#可省略參數:
2278
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
2278
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
2279
		#$conf["canBeEmptyString"]="false";
2279
		#$conf["canBeEmptyString"]="false";
2280
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2280
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2281
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNotNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType","foreignDb","foreignTable","foreignTableColumn","onUpdateAction","onDeleteAction","comment");
2281
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNotNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType","foreignDb","foreignTable","foreignTableColumn","onUpdateAction","onDeleteAction","comment");
2282
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2282
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2283
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string","string","string","string","string");
2283
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string","string","string","string","string");
2284
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2284
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2285
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,"\$conf[\"selectedDataBaseName\"]",null,null,null,null,null);
2285
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,"\$conf[\"selectedDataBaseName\"]",null,null,null,null,null);
2286
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2286
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2287
		#$conf["arrayCountEqualCheck"][]=array();
2287
		#$conf["arrayCountEqualCheck"][]=array();
2288
		#參考資料:
2288
		#參考資料:
2289
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2289
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2290
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2290
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
2291
		unset($conf["variableCheck::checkArguments"]);
2291
		unset($conf["variableCheck::checkArguments"]);
2292
		
2292
 
2293
		#如果檢查過程有錯
2293
		#如果檢查過程有錯
2294
		if($checkResult["status"]=="false"){
2294
		if($checkResult["status"]=="false"){
2295
			
2295
 
2296
			#設置執行失敗的訊息
2296
			#設置執行失敗的訊息
2297
			$result["status"]="false";
2297
			$result["status"]="false";
2298
			
2298
 
2299
			#設置錯誤訊息
2299
			#設置錯誤訊息
2300
			$result["error"]=$checkResult;
2300
			$result["error"]=$checkResult;
2301
			
2301
 
2302
			#回傳結果
2302
			#回傳結果
2303
			return $result;
2303
			return $result;
2304
			
2304
 
2305
			}#if end
2305
			}#if end
2306
		
2306
 
2307
		#如果檢查不通過
2307
		#如果檢查不通過
2308
		if($checkResult["passed"]=="false"){
2308
		if($checkResult["passed"]=="false"){
2309
			
2309
 
2310
			#設置執行失敗的訊息
2310
			#設置執行失敗的訊息
2311
			$result["status"]="false";
2311
			$result["status"]="false";
2312
			
2312
 
2313
			#設置錯誤訊息
2313
			#設置錯誤訊息
2314
			$result["error"]=$checkResult;
2314
			$result["error"]=$checkResult;
2315
			
2315
 
2316
			#回傳結果
2316
			#回傳結果
2317
			return $result;
2317
			return $result;
2318
			
2318
 
2319
			}#if end
2319
			}#if end
2320
		
2320
 
2321
		#組合sql語言
2321
		#組合sql語言
2322
		$sql="alter table `".$conf["selectedDataTableName"]."` add `".$conf["addedColumnName"]."`";
2322
		$sql="alter table `".$conf["selectedDataTableName"]."` add `".$conf["addedColumnName"]."`";
2323
		
2323
 
2324
		#接上欄位儲存型態
2324
		#接上欄位儲存型態
2325
		$sql=$sql." ".$conf["newDataTableColmunType"];
2325
		$sql=$sql." ".$conf["newDataTableColmunType"];
2326
			
2326
 
2327
		#如果資料形態爲 "double、float"
2327
		#如果資料形態爲 "double、float"
2328
		if($conf["newDataTableColmunType"]=="double" || $conf["newDataTableColmunType"]=="float" ){
2328
		if($conf["newDataTableColmunType"]=="double" || $conf["newDataTableColmunType"]=="float" ){
2329
			
2329
 
2330
			#則取消資料長度的限制
2330
			#則取消資料長度的限制
2331
			unset($conf["newDataTableColmunLength"]);
2331
			unset($conf["newDataTableColmunLength"]);
2332
			
2332
 
2333
			}#if end	
2333
			}#if end
2334
			
2334
 
2335
		#如果有設定資料長度,且資料儲存型態不為 tinytext 與 text
2335
		#如果有設定資料長度,且資料儲存型態不為 tinytext 與 text
2336
		if(isset($conf["newDataTableColmunLength"]) && $conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
2336
		if(isset($conf["newDataTableColmunLength"]) && $conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
2337
			
2337
 
2338
			#接上欄位儲存長度
2338
			#接上欄位儲存長度
2339
			$sql=$sql." (".$conf["newDataTableColmunLength"].")";
2339
			$sql=$sql." (".$conf["newDataTableColmunLength"].")";
2340
				
2340
 
2341
			}#if end
2341
			}#if end
2342
		
2342
 
2343
		#如果資料形態不爲 "double、float、"
2343
		#如果資料形態不爲 "double、float、"
2344
		if($conf["newDataTableColmunType"]!="double" && $conf["newDataTableColmunType"]!="float" && $conf["newDataTableColmunType"]!="int"){
2344
		if($conf["newDataTableColmunType"]!="double" && $conf["newDataTableColmunType"]!="float" && $conf["newDataTableColmunType"]!="int"){
2345
			
2345
 
2346
			#指定欄CHARACTER SET爲utf8,COLLATE爲utf8_unicode_ci
2346
			#指定欄CHARACTER SET爲utf8,COLLATE爲utf8_unicode_ci
2347
			$sql=$sql." CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
2347
			$sql=$sql." CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
2348
			
2348
 
2349
			}#if end
2349
			}#if end
2350
								
2350
 
2351
		#如果有設定預設值
2351
		#如果有設定預設值
2352
		if(isset($conf["newDataTableColmunDefault"])){
2352
		if(isset($conf["newDataTableColmunDefault"])){
2353
			
2353
 
2354
			#如果 $conf["newDataTableColmunType"] 不等於 "tinytext" 也不等於 "text"
2354
			#如果 $conf["newDataTableColmunType"] 不等於 "tinytext" 也不等於 "text"
2355
			if($conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
2355
			if($conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
2356
				
2356
 
2357
				#根據 $conf["newDataTableColmunDefault"] 的數值內容
2357
				#根據 $conf["newDataTableColmunDefault"] 的數值內容
2358
				switch($conf["newDataTableColmunDefault"]){
2358
				switch($conf["newDataTableColmunDefault"]){
2359
					
2359
 
2360
					#如果設為 currentTime
2360
					#如果設為 currentTime
2361
					case "currentTime":
2361
					case "currentTime":
2362
						
2362
 
2363
						#設定語法
2363
						#設定語法
2364
						$sql=$sql." default CURRENT_TIMESTAMP";
2364
						$sql=$sql." default CURRENT_TIMESTAMP";
2365
							
2365
 
2366
						#跳出switch
2366
						#跳出switch
2367
						break;
2367
						break;
2368
						
2368
 
2369
					#如果設為updatedCurrentTime
2369
					#如果設為updatedCurrentTime
2370
					case "updatedCurrentTime":
2370
					case "updatedCurrentTime":
2371
						
2371
 
2372
						#設定語法
2372
						#設定語法
2373
						$sql=$sql." default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP";
2373
						$sql=$sql." default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP";
2374
						
2374
 
2375
						#跳出switch
2375
						#跳出switch
2376
						break;
2376
						break;
2377
							
2377
 
2378
					#如果設為 null
2378
					#如果設為 null
2379
					case "null":
2379
					case "null":
2380
						
2380
 
2381
						#設定語法
2381
						#設定語法
2382
						$sql=$sql." default null";
2382
						$sql=$sql." default null";
2383
							
2383
 
2384
						#跳出switch
2384
						#跳出switch
2385
						break;
2385
						break;
2386
							
2386
 
2387
					#如果不為以上數值
2387
					#如果不為以上數值
2388
					default :
2388
					default :
2389
						
2389
 
2390
						#設定語法
2390
						#設定語法
2391
						$sql=$sql." default '".$conf["newDataTableColmunDefault"]."'";
2391
						$sql=$sql." default '".$conf["newDataTableColmunDefault"]."'";
2392
							
2392
 
2393
						#跳出switch
2393
						#跳出switch
2394
						break;
2394
						break;
2395
						
2395
 
2396
					}#switch end
2396
					}#switch end
2397
					
2397
 
2398
				}#if end
2398
				}#if end
2399
				
2399
 
2400
			}#if end
2400
			}#if end
2401
			
2401
 
2402
		#如果有設定不能為NUL
2402
		#如果有設定不能為NUL
2403
		if(isset($conf["newDataTableColmunNotNull"])){
2403
		if(isset($conf["newDataTableColmunNotNull"])){
2404
		
2404
 
2405
			#如果 $conf["newDataTableColmunNotNull"] 等於 "true"
2405
			#如果 $conf["newDataTableColmunNotNull"] 等於 "true"
2406
			if($conf["newDataTableColmunNotNull"]=="true"){
2406
			if($conf["newDataTableColmunNotNull"]=="true"){
2407
					
2407
 
2408
				$sql=$sql." NOT NULL";
2408
				$sql=$sql." NOT NULL";
2409
					
2409
 
2410
				}#if end
2410
				}#if end
2411
								
2411
 
2412
			}#if end
2412
			}#if end
2413
			
2413
 
2414
			#如果有設定要自動加1
2414
			#如果有設定要自動加1
2415
			if(isset($conf["newDataTableColmunAutoAdd"])){
2415
			if(isset($conf["newDataTableColmunAutoAdd"])){
2416
				
2416
 
2417
				#如果 $conf["newDataTableColmunAutoAdd"] 設為 "true"
2417
				#如果 $conf["newDataTableColmunAutoAdd"] 設為 "true"
2418
				if($conf["newDataTableColmunAutoAdd"]=="true"){
2418
				if($conf["newDataTableColmunAutoAdd"]=="true"){
2419
				
2419
 
2420
					#加上自動加1的語句
2420
					#加上自動加1的語句
2421
					$sql=$sql." auto_increment";
2421
					$sql=$sql." auto_increment";
2422
					
2422
 
2423
					}#if end
2423
					}#if end
2424
				
2424
 
2425
				}#if end
2425
				}#if end
2426
				
2426
 
2427
		#如果有設定註解
2427
		#如果有設定註解
2428
		if(isset($conf["comment"])){
2428
		if(isset($conf["comment"])){
2429
			
2429
 
2430
			#設定其註解
2430
			#設定其註解
2431
			$sql=$sql." COMMENT '".$conf["comment"]."' ";
2431
			$sql=$sql." COMMENT '".$conf["comment"]."' ";
2432
			
2432
 
2433
			}#if end		
2433
			}#if end
2434
				
2434
 
2435
		#如果有設定鍵的屬性
2435
		#如果有設定鍵的屬性
2436
		if(isset($conf["newDataTableColmunKeyType"])){
2436
		if(isset($conf["newDataTableColmunKeyType"])){
2437
			
2437
 
2438
			#如果爲 primary key 
2438
			#如果爲 primary key
2439
			if($conf["newDataTableColmunKeyType"]=="primary key"){
2439
			if($conf["newDataTableColmunKeyType"]=="primary key"){
2440
				
2440
 
2441
				#設定其鍵值
2441
				#設定其鍵值
2442
				$sql=$sql." ".$conf["newDataTableColmunKeyType"];
2442
				$sql=$sql." ".$conf["newDataTableColmunKeyType"];
2443
				
2443
 
2444
				}#if end
2444
				}#if end
2445
			
2445
 
2446
			}#if end
2446
			}#if end
2447
			
2447
 
2448
		#執行sql語法
2448
		#執行sql語法
2449
		#函式說明:
2449
		#函式說明:
2450
		#執行mysql指令
2450
		#執行mysql指令
2451
		#回傳結果::
2451
		#回傳結果::
2452
		#$result["status"],"true"為執行成功;"false"為執行失敗。
2452
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 2457... Line 2457...
2457
		#必填參數:
2457
		#必填參數:
2458
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
2458
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
2459
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2459
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2460
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql.";";#要執行sql語法
2460
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql.";";#要執行sql語法
2461
		#可省略參數:
2461
		#可省略參數:
2462
		
2462
 
2463
		#如果 $conf["dbPassword"] 有設定
2463
		#如果 $conf["dbPassword"] 有設定
2464
		if(isset($conf["dbPassword"])){
2464
		if(isset($conf["dbPassword"])){
2465
			
2465
 
2466
			#設定其密碼
2466
			#設定其密碼
2467
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2467
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2468
			
2468
 
2469
			}#if end
2469
			}#if end
2470
		
2470
 
2471
		$conf["db"]["execMysqlQuery"]["dbName"]=$conf["selectedDataBaseName"];#為是否要指定資料庫,預設不指定.
2471
		$conf["db"]["execMysqlQuery"]["dbName"]=$conf["selectedDataBaseName"];#為是否要指定資料庫,預設不指定.
2472
				
2472
 
2473
		#如果有設定 $conf["dbPort"]	
2473
		#如果有設定 $conf["dbPort"]
2474
		if(isset($conf["dbPort"])){
2474
		if(isset($conf["dbPort"])){
2475
		
2475
 
2476
			#設定 $conf["dbPort"]
2476
			#設定 $conf["dbPort"]
2477
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
2477
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
2478
		
2478
 
2479
			}#if end			
2479
			}#if end
2480
					
2480
 
2481
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
2481
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
2482
		unset($conf["db"]["execMysqlQuery"]);
2482
		unset($conf["db"]["execMysqlQuery"]);
2483
					
2483
 
2484
		#如果有錯誤
2484
		#如果有錯誤
2485
		if($queryResult["status"]=="false"){
2485
		if($queryResult["status"]=="false"){
2486
			
2486
 
2487
			#設置錯誤訊息
2487
			#設置錯誤訊息
2488
			$result["status"]="false";
2488
			$result["status"]="false";
2489
			
2489
 
2490
			#設置錯誤提示
2490
			#設置錯誤提示
2491
			$result["error"]=$queryResult;
2491
			$result["error"]=$queryResult;
2492
			
2492
 
2493
			#回傳結果
2493
			#回傳結果
2494
			return $result;
2494
			return $result;
2495
			
2495
 
2496
			}#if end
2496
			}#if end
2497
			
2497
 
2498
		#取得執行的sql語法
2498
		#取得執行的sql語法
2499
		$result["sql"][]=$queryResult["queryString"];
2499
		$result["sql"][]=$queryResult["queryString"];
2500
		
2500
 
2501
		#如果 $conf["newDataTableColmunKeyType"] 存在
2501
		#如果 $conf["newDataTableColmunKeyType"] 存在
2502
		if(isset($conf["newDataTableColmunKeyType"])){
2502
		if(isset($conf["newDataTableColmunKeyType"])){
2503
			
2503
 
2504
			#如果爲 index
2504
			#如果爲 index
2505
			if($conf["newDataTableColmunKeyType"]=="index"){
2505
			if($conf["newDataTableColmunKeyType"]=="index"){
2506
				
2506
 
2507
				#函式說明:
2507
				#函式說明:
2508
				#新增資料表的欄位
2508
				#新增資料表的欄位
2509
				#回傳結果:
2509
				#回傳結果:
2510
				#$result["status"],"true",代表執行成功;"false"代表執行失敗.
2510
				#$result["status"],"true",代表執行成功;"false"代表執行失敗.
2511
				#$result["function"],當前執行的函數名稱.
2511
				#$result["function"],當前執行的函數名稱.
Line 2516... Line 2516...
2516
				$conf["db::setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2516
				$conf["db::setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2517
				$conf["db::setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
2517
				$conf["db::setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
2518
				$conf["db::setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
2518
				$conf["db::setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
2519
				$conf["db::setColumnIndex"]["indexedColumnName"]=$conf["addedColumnName"];#要設爲index的欄位名稱
2519
				$conf["db::setColumnIndex"]["indexedColumnName"]=$conf["addedColumnName"];#要設爲index的欄位名稱
2520
				#可省略參數:
2520
				#可省略參數:
2521
				
2521
 
2522
				#如果 $conf["dbPassword"] 有設定
2522
				#如果 $conf["dbPassword"] 有設定
2523
				if(isset($conf["dbPassword"])){
2523
				if(isset($conf["dbPassword"])){
2524
				
2524
 
2525
					$conf["db::setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2525
					$conf["db::setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2526
				
2526
 
2527
					}#if end
2527
					}#if end
2528
				
2528
 
2529
				#如果有設定 $conf["dbPort"]	
2529
				#如果有設定 $conf["dbPort"]
2530
				if(isset($conf["dbPort"])){
2530
				if(isset($conf["dbPort"])){
2531
				
2531
 
2532
					#設定 $conf["dbPort"]
2532
					#設定 $conf["dbPort"]
2533
					$conf["db::setColumnIndex"]["dbPort"]=$conf["dbPort"];
2533
					$conf["db::setColumnIndex"]["dbPort"]=$conf["dbPort"];
2534
				
2534
 
2535
					}#if end	
2535
					}#if end
2536
				
2536
 
2537
				$setColumnIndex=db::setColumnIndex($conf["db::setColumnIndex"]);
2537
				$setColumnIndex=db::setColumnIndex($conf["db::setColumnIndex"]);
2538
				unset($conf["db::setColumnIndex"]);
2538
				unset($conf["db::setColumnIndex"]);
2539
				
2539
 
2540
				#如果建立index失敗
2540
				#如果建立index失敗
2541
				if($setColumnIndex["status"]=="false"){
2541
				if($setColumnIndex["status"]=="false"){
2542
					
2542
 
2543
					#設置執行失敗
2543
					#設置執行失敗
2544
					$result["status"]="false";
2544
					$result["status"]="false";
2545
					
2545
 
2546
					#設置錯誤訊息
2546
					#設置錯誤訊息
2547
					$result["error"]=$setColumnIndex;
2547
					$result["error"]=$setColumnIndex;
2548
					
2548
 
2549
					#回傳結果
2549
					#回傳結果
2550
					return $result;
2550
					return $result;
2551
					
2551
 
2552
					}#if end
2552
					}#if end
2553
					
2553
 
2554
				#取得執行的sql語法
2554
				#取得執行的sql語法
2555
				$result["sql"][]=$setColumnIndex["sql"];
2555
				$result["sql"][]=$setColumnIndex["sql"];
2556
				
2556
 
2557
				}#if end
2557
				}#if end
2558
							
2558
 
2559
			}#if end
2559
			}#if end
2560
			
2560
 
2561
		#如果 $conf["newDataTableColmunKeyType"] 有設定
2561
		#如果 $conf["newDataTableColmunKeyType"] 有設定
2562
		if(isset($conf["newDataTableColmunKeyType"])){	
2562
		if(isset($conf["newDataTableColmunKeyType"])){
2563
			
2563
 
2564
			#如果爲 foreign key
2564
			#如果爲 foreign key
2565
			if($conf["newDataTableColmunKeyType"]=="foreign key"){
2565
			if($conf["newDataTableColmunKeyType"]=="foreign key"){
2566
				
2566
 
2567
				#函式說明:
2567
				#函式說明:
2568
				#修改資料表的欄位
2568
				#修改資料表的欄位
2569
				#回傳結果:
2569
				#回傳結果:
2570
				#$result["status"],"true",代表執行成功;"false"代表執行失敗.
2570
				#$result["status"],"true",代表執行成功;"false"代表執行失敗.
2571
				#$result["error"],錯誤訊息陣列.
2571
				#$result["error"],錯誤訊息陣列.
Line 2575... Line 2575...
2575
				$conf["db::editColumn"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
2575
				$conf["db::editColumn"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
2576
				$conf["db::editColumn"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2576
				$conf["db::editColumn"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
2577
				$conf["db::editColumn"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
2577
				$conf["db::editColumn"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
2578
				$conf["db::editColumn"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料表
2578
				$conf["db::editColumn"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料表
2579
				$conf["db::editColumn"]["editedColumnName"]=$conf["addedColumnName"];#要修改的欄位名稱
2579
				$conf["db::editColumn"]["editedColumnName"]=$conf["addedColumnName"];#要修改的欄位名稱
2580
				#可省略參數: 
2580
				#可省略參數:
2581
				
2581
 
2582
				#如果 $conf["dbPassword"] 有設定
2582
				#如果 $conf["dbPassword"] 有設定
2583
				if(isset($conf["dbPassword"])){
2583
				if(isset($conf["dbPassword"])){
2584
				
2584
 
2585
					$conf["db::editColumn"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2585
					$conf["db::editColumn"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2586
				
2586
 
2587
					}#if end
2587
					}#if end
2588
				
2588
 
2589
				#$conf["newColumnName"]="";#要修改成的欄位名稱,預設與$conf["dbInformation"]["editedColumnName"]一樣。
2589
				#$conf["newColumnName"]="";#要修改成的欄位名稱,預設與$conf["dbInformation"]["editedColumnName"]一樣。
2590
				#$conf["newDataTableColmunType"]="";#為新資料表的欄位儲存的型態,常見的有:
2590
				#$conf["newDataTableColmunType"]="";#為新資料表的欄位儲存的型態,常見的有:
2591
					#int,用來儲存整數.
2591
					#int,用來儲存整數.
2592
					#double,用來儲存有小數點的數值.
2592
					#double,用來儲存有小數點的數值.
2593
					#timestamp,用來儲存時間.
2593
					#timestamp,用來儲存時間.
Line 2608... Line 2608...
2608
				#$conf["newDataTableColmunAutoAdd"]="true";#為新資料表的欄位是否自動+1
2608
				#$conf["newDataTableColmunAutoAdd"]="true";#為新資料表的欄位是否自動+1
2609
				$conf["db::editColumn"]["newDataTableColmunKeyType"]="foreign key";#為該欄位的鍵屬性:""為移除鍵的設定、"primary key"爲主鍵、"index"爲索引鍵、"foreign key"為外鍵
2609
				$conf["db::editColumn"]["newDataTableColmunKeyType"]="foreign key";#為該欄位的鍵屬性:""為移除鍵的設定、"primary key"爲主鍵、"index"爲索引鍵、"foreign key"為外鍵
2610
				$conf["db::editColumn"]["foreignKeyDb"]=$conf["foreignDb"];#若要設定foreign key的話,則要提供參考的資料庫,預設為$conf["selectedDataBaseName"].
2610
				$conf["db::editColumn"]["foreignKeyDb"]=$conf["foreignDb"];#若要設定foreign key的話,則要提供參考的資料庫,預設為$conf["selectedDataBaseName"].
2611
				$conf["db::editColumn"]["foreignKeyReferenceTable"]=$conf["foreignTable"];#若要設定foreign key的話,則要提供參考的資料表
2611
				$conf["db::editColumn"]["foreignKeyReferenceTable"]=$conf["foreignTable"];#若要設定foreign key的話,則要提供參考的資料表
2612
				$conf["db::editColumn"]["foreignKeyReferenceColumn"]=$conf["foreignTableColumn"];#若要設定foreign key的話,則要提供參考的資料表欄位
2612
				$conf["db::editColumn"]["foreignKeyReferenceColumn"]=$conf["foreignTableColumn"];#若要設定foreign key的話,則要提供參考的資料表欄位
2613
				
2613
 
2614
				#如果有設定 $conf["onUpdateAction"]
2614
				#如果有設定 $conf["onUpdateAction"]
2615
				if(isset($conf["onUpdateAction"])){
2615
				if(isset($conf["onUpdateAction"])){
2616
					
2616
 
2617
					$conf["db::editColumn"]["foreignKeyUpdateAction"]=$conf["onUpdateAction"];#若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2617
					$conf["db::editColumn"]["foreignKeyUpdateAction"]=$conf["onUpdateAction"];#若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2618
										
2618
 
2619
					}#if end
2619
					}#if end
2620
				
2620
 
2621
				#如果有設定 $conf["onDeleteAction"]
2621
				#如果有設定 $conf["onDeleteAction"]
2622
				if(isset($conf["onDeleteAction"])){
2622
				if(isset($conf["onDeleteAction"])){
2623
					
2623
 
2624
					$conf["db::editColumn"]["foreignKeyDeleteAction"]=$conf["onDeleteAction"];#若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2624
					$conf["db::editColumn"]["foreignKeyDeleteAction"]=$conf["onDeleteAction"];#若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
2625
										
2625
 
2626
					}#if end
2626
					}#if end
2627
				
2627
 
2628
				#如果有設定 $conf["dbPort"]	
2628
				#如果有設定 $conf["dbPort"]
2629
				if(isset($conf["dbPort"])){
2629
				if(isset($conf["dbPort"])){
2630
				
2630
 
2631
					#設定 $conf["dbPort"]
2631
					#設定 $conf["dbPort"]
2632
					$conf["db::editColumn"]["dbPort"]=$conf["dbPort"];
2632
					$conf["db::editColumn"]["dbPort"]=$conf["dbPort"];
2633
				
2633
 
2634
					}#if end
2634
					}#if end
2635
				
2635
 
2636
				$editColumn=db::editColumn($conf["db::editColumn"]);
2636
				$editColumn=db::editColumn($conf["db::editColumn"]);
2637
				unset($conf["db::editColumn"]);
2637
				unset($conf["db::editColumn"]);
2638
					
2638
 
2639
				#如果設置為foreign失敗
2639
				#如果設置為foreign失敗
2640
				if($editColumn["status"]=="false"){
2640
				if($editColumn["status"]=="false"){
2641
					
2641
 
2642
					#設置執行失敗
2642
					#設置執行失敗
2643
					$result["status"]="false";
2643
					$result["status"]="false";
2644
					
2644
 
2645
					#設置錯誤訊息
2645
					#設置錯誤訊息
2646
					$result["error"]=$editColumn;
2646
					$result["error"]=$editColumn;
2647
					
2647
 
2648
					#回傳結果
2648
					#回傳結果
2649
					return $result;
2649
					return $result;
2650
					
2650
 
2651
					}#if end	
2651
					}#if end
2652
					
2652
 
2653
				#有幾個執行的sql語法就執行幾次
2653
				#有幾個執行的sql語法就執行幾次
2654
				for($i=0;$i<count($editColumn["sql"]);$i++){
2654
				for($i=0;$i<count($editColumn["sql"]);$i++){
2655
					
2655
 
2656
					#取得執行的sql語法
2656
					#取得執行的sql語法
2657
					$result["sql"][]=$editColumn["sql"][$i];
2657
					$result["sql"][]=$editColumn["sql"][$i];
2658
					
2658
 
2659
					}#for end
2659
					}#for end
2660
									
2660
 
2661
				}#if end
2661
				}#if end
2662
				
2662
 
2663
			}#if end
2663
			}#if end
2664
		
2664
 
2665
		#執行到這邊代表執行成功
2665
		#執行到這邊代表執行成功
2666
		
2666
 
2667
		#設置成功訊息
2667
		#設置成功訊息
2668
		$result["status"]="true";
2668
		$result["status"]="true";
2669
			
2669
 
2670
		#回傳結果
2670
		#回傳結果
2671
		return $result;
2671
		return $result;
2672
		
2672
 
2673
		}#function addColumn end
2673
		}#function addColumn end
2674
 
2674
 
2675
	/*
2675
	/*
2676
	#函式說明:
2676
	#函式說明:
2677
	#修改資料表的欄位
2677
	#修改資料表的欄位
Line 2689... Line 2689...
2689
	$conf["selectedDataBaseName"]="";
2689
	$conf["selectedDataBaseName"]="";
2690
	#$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料表.
2690
	#$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料表.
2691
	$conf["selectedDataTableName"]="";
2691
	$conf["selectedDataTableName"]="";
2692
	#$conf["editedColumnName"],字串,要修改的欄位名稱.
2692
	#$conf["editedColumnName"],字串,要修改的欄位名稱.
2693
	$conf["editedColumnName"]="";
2693
	$conf["editedColumnName"]="";
2694
	#可省略參數: 
2694
	#可省略參數:
2695
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
2695
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
2696
	#$conf["dbPassword"]=$dbPassword;
2696
	#$conf["dbPassword"]=$dbPassword;
2697
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
2697
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
2698
	#$conf["dbPort"]="3306";
2698
	#$conf["dbPort"]="3306";
2699
	#$conf["newColumnName"],字串,要修改成的欄位名稱,預設與$conf["editedColumnName"]一樣。
2699
	#$conf["newColumnName"],字串,要修改成的欄位名稱,預設與$conf["editedColumnName"]一樣。
Line 2726... Line 2726...
2726
	#無.
2726
	#無.
2727
	#備註:
2727
	#備註:
2728
	#無.
2728
	#無.
2729
	*/
2729
	*/
2730
	public static function editColumn(&$conf){
2730
	public static function editColumn(&$conf){
2731
		
2731
 
2732
		#初始化要回傳的內容
2732
		#初始化要回傳的內容
2733
		$result=array();
2733
		$result=array();
2734
 
2734
 
2735
		#取得當前執行的函數名稱
2735
		#取得當前執行的函數名稱
2736
		$result["function"]=__FUNCTION__;
2736
		$result["function"]=__FUNCTION__;
2737
 
2737
 
2738
		#如果 $conf 不為陣列
2738
		#如果 $conf 不為陣列
2739
		if(gettype($conf)!="array"){
2739
		if(gettype($conf)!="array"){
2740
			
2740
 
2741
			#設置執行失敗
2741
			#設置執行失敗
2742
			$result["status"]="false";
2742
			$result["status"]="false";
2743
			
2743
 
2744
			#設置執行錯誤訊息
2744
			#設置執行錯誤訊息
2745
			$result["error"][]="\$conf變數須為陣列形態";
2745
			$result["error"][]="\$conf變數須為陣列形態";
2746
 
2746
 
2747
			#如果傳入的參數為 null
2747
			#如果傳入的參數為 null
2748
			if($conf==null){
2748
			if($conf==null){
2749
				
2749
 
2750
				#設置執行錯誤訊息
2750
				#設置執行錯誤訊息
2751
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2751
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
2752
				
2752
 
2753
				}#if end
2753
				}#if end
2754
 
2754
 
2755
			#回傳結果
2755
			#回傳結果
2756
			return $result;
2756
			return $result;
2757
			
2757
 
2758
			}#if end
2758
			}#if end
2759
		
2759
 
2760
		#檢查參數
2760
		#檢查參數
2761
		#函式說明:
2761
		#函式說明:
2762
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2762
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
2763
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2763
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
2764
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
2764
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 2773... Line 2773...
2773
		#必填參數:
2773
		#必填參數:
2774
		#$conf["db::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2774
		#$conf["db::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
2775
		$conf["db::checkArguments"]["varInput"]=&$conf;
2775
		$conf["db::checkArguments"]["varInput"]=&$conf;
2776
		#$conf["db::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2776
		#$conf["db::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
2777
		$conf["db::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","editedColumnName");
2777
		$conf["db::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","editedColumnName");
2778
		#$conf["db::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
2778
		#$conf["db::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
2779
		$conf["db::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
2779
		$conf["db::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
2780
		#$conf["db::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2780
		#$conf["db::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
2781
		$conf["db::checkArguments"]["referenceVarKey"]="db::checkArguments";
2781
		$conf["db::checkArguments"]["referenceVarKey"]="db::checkArguments";
2782
		#可省略參數:
2782
		#可省略參數:
2783
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
2783
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
2784
		#$conf["canBeEmptyString"]="false";
2784
		#$conf["canBeEmptyString"]="false";
2785
		#$conf["db::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2785
		#$conf["db::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
2786
		$conf["db::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","newColumnName","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNotNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType","foreignKeyDb","foreignKeyReferenceTable","foreignKeyReferenceColumn","foreignKeyUpdateAction","foreignKeyDeleteAction","newDataTableColmuComment");
2786
		$conf["db::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","newColumnName","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNotNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType","foreignKeyDb","foreignKeyReferenceTable","foreignKeyReferenceColumn","foreignKeyUpdateAction","foreignKeyDeleteAction","newDataTableColmuComment");
2787
		#$conf["db::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
2787
		#$conf["db::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
2788
		$conf["db::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string","string","string","string","string","string");
2788
		$conf["db::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string","string","string","string","string","string");
2789
		#$conf["db::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2789
		#$conf["db::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
2790
		$conf["db::checkArguments"]["skipableVarDefaultValue"]=array(null,null,$conf["editedColumnName"],null,null,null,null,null,null,"\$conf[\"selectedDataBaseName\"]",null,null,null,null,null);
2790
		$conf["db::checkArguments"]["skipableVarDefaultValue"]=array(null,null,$conf["editedColumnName"],null,null,null,null,null,null,"\$conf[\"selectedDataBaseName\"]",null,null,null,null,null);
2791
		#$conf["db::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2791
		#$conf["db::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
2792
		#$conf["db::checkArguments"]["arrayCountEqualCheck"][]=array();
2792
		#$conf["db::checkArguments"]["arrayCountEqualCheck"][]=array();
2793
		#參考資料:
2793
		#參考資料:
2794
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2794
		#array_keys=>http://php.net/manual/en/function.array-keys.php
2795
		$checkResult=variableCheck::checkArguments($conf["db::checkArguments"]);
2795
		$checkResult=variableCheck::checkArguments($conf["db::checkArguments"]);
2796
		unset($conf["db::checkArguments"]);
2796
		unset($conf["db::checkArguments"]);
2797
		
2797
 
2798
		#如果檢查有誤
2798
		#如果檢查有誤
2799
		if($checkResult["status"]=="false"){
2799
		if($checkResult["status"]=="false"){
2800
			
2800
 
2801
			#設置執行失敗的訊息
2801
			#設置執行失敗的訊息
2802
			$result["status"]="false";
2802
			$result["status"]="false";
2803
			
2803
 
2804
			#設置錯誤訊息
2804
			#設置錯誤訊息
2805
			$result["error"]=$checkResult;
2805
			$result["error"]=$checkResult;
2806
			
2806
 
2807
			#回傳結果
2807
			#回傳結果
2808
			return $result;
2808
			return $result;
2809
			
2809
 
2810
			}#if end
2810
			}#if end
2811
		
2811
 
2812
		#如果檢查不通過
2812
		#如果檢查不通過
2813
		if($checkResult["passed"]=="false"){
2813
		if($checkResult["passed"]=="false"){
2814
			
2814
 
2815
			#設置執行失敗的訊息
2815
			#設置執行失敗的訊息
2816
			$result["status"]="false";
2816
			$result["status"]="false";
2817
			
2817
 
2818
			#設置錯誤訊息
2818
			#設置錯誤訊息
2819
			$result["error"]=$checkResult;
2819
			$result["error"]=$checkResult;
2820
			
2820
 
2821
			#回傳結果
2821
			#回傳結果
2822
			return $result;
2822
			return $result;
2823
			
2823
 
2824
			}#if end
2824
			}#if end
2825
		
2825
 
2826
		#取得目標資料表的所有資訊
2826
		#取得目標資料表的所有資訊
2827
		#函式說明:
2827
		#函式說明:
2828
		#取得資料表所有欄位的詳細資訊
2828
		#取得資料表所有欄位的詳細資訊
2829
		#回傳的內容:
2829
		#回傳的內容:
2830
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
2830
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
Line 2861... Line 2861...
2861
		$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
2861
		$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
2862
		$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
2862
		$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
2863
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
2863
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
2864
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
2864
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
2865
		#可省略參數:
2865
		#可省略參數:
2866
		
2866
 
2867
		#如果有設定連線密碼
2867
		#如果有設定連線密碼
2868
		if(isset($conf["dbPassword"])){
2868
		if(isset($conf["dbPassword"])){
2869
			
2869
 
2870
			$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2870
			$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
2871
			
2871
 
2872
			}#if end
2872
			}#if end
2873
		
2873
 
2874
		#如果有設定 $conf["dbPort"]	
2874
		#如果有設定 $conf["dbPort"]
2875
		if(isset($conf["dbPort"])){
2875
		if(isset($conf["dbPort"])){
2876
		
2876
 
2877
			#設定 $conf["dbPort"]
2877
			#設定 $conf["dbPort"]
2878
			$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
2878
			$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
2879
		
2879
 
2880
			}#if end	
2880
			}#if end
2881
		
2881
 
2882
		$oriColumnInfo=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
2882
		$oriColumnInfo=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
2883
		unset($conf["db"]["getTableColumnDetailInfo"]);
2883
		unset($conf["db"]["getTableColumnDetailInfo"]);
2884
		
2884
 
2885
		#debug
2885
		#debug
2886
		#var_dump($oriColumnInfo);
2886
		#var_dump($oriColumnInfo);
2887
		#exit;
2887
		#exit;
2888
		
2888
 
2889
		#如果查詢資料表資訊失敗
2889
		#如果查詢資料表資訊失敗
2890
		if($oriColumnInfo["status"]=="false"){
2890
		if($oriColumnInfo["status"]=="false"){
2891
			
2891
 
2892
			#設定執行失敗的識別
2892
			#設定執行失敗的識別
2893
			$result["status"]="false";
2893
			$result["status"]="false";
2894
			
2894
 
2895
			#設定錯誤訊息
2895
			#設定錯誤訊息
2896
			$result["error"]=$oriColumnInfo;
2896
			$result["error"]=$oriColumnInfo;
2897
			
2897
 
2898
			#回傳結果
2898
			#回傳結果
2899
			return $result;
2899
			return $result;
2900
			
2900
 
2901
			}#if end
2901
			}#if end
2902
		
2902
 
2903
		#檢視目標欄位的鍵屬性
2903
		#檢視目標欄位的鍵屬性
2904
		#var_dump($oriColumnInfo);
2904
		#var_dump($oriColumnInfo);
2905
			
2905
 
2906
		#如果沒有定新的欄位明稱
2906
		#如果沒有定新的欄位明稱
2907
		if(!isset($conf["newColumnName"])){
2907
		if(!isset($conf["newColumnName"])){
2908
			
2908
 
2909
			#則設定為原始欄位的名稱
2909
			#則設定為原始欄位的名稱
2910
			$conf["newColumnName"]=$oriColumnInfo["columnName"][$conf["editedColumnName"]];
2910
			$conf["newColumnName"]=$oriColumnInfo["columnName"][$conf["editedColumnName"]];
2911
							
2911
 
2912
			}#if end
2912
			}#if end
2913
			
2913
 
2914
		#如果 $conf["newDataTableColmunType"] 沒有設定 
2914
		#如果 $conf["newDataTableColmunType"] 沒有設定
2915
		if(!isset($conf["newDataTableColmunType"])){
2915
		if(!isset($conf["newDataTableColmunType"])){
2916
			
2916
 
2917
			#$oriColumnInfo["columnVarTypeAndLengthLimit"][$conf["editedColumnName"]];
2917
			#$oriColumnInfo["columnVarTypeAndLengthLimit"][$conf["editedColumnName"]];
2918
			
2918
 
2919
			#則設定為原始欄位的儲存型態
2919
			#則設定為原始欄位的儲存型態
2920
			$conf["newDataTableColmunType"]=$oriColumnInfo["columnVarType"][$conf["editedColumnName"]];
2920
			$conf["newDataTableColmunType"]=$oriColumnInfo["columnVarType"][$conf["editedColumnName"]];
2921
			
2921
 
2922
			}#if end
2922
			}#if end
2923
			
2923
 
2924
		#以下要檢查
2924
		#以下要檢查
2925
			
2925
 
2926
		#如果新資料型態不等於 "tinytext" 跟 "text"
2926
		#如果新資料型態不等於 "tinytext" 跟 "text"
2927
		if($conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
2927
		if($conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
2928
			
2928
 
2929
			#如果沒有設定 $conf["newDataTableColmunLength"]
2929
			#如果沒有設定 $conf["newDataTableColmunLength"]
2930
			if(!isset($conf["newDataTableColmunLength"])){
2930
			if(!isset($conf["newDataTableColmunLength"])){
2931
				
2931
 
2932
				#則設定為原始欄位的儲存長度
2932
				#則設定為原始欄位的儲存長度
2933
				$conf["newDataTableColmunLength"]=$oriColumnInfo["columnVarLengthLimit"][$conf["editedColumnName"]];
2933
				$conf["newDataTableColmunLength"]=$oriColumnInfo["columnVarLengthLimit"][$conf["editedColumnName"]];
2934
				
2934
 
2935
				}#if end
2935
				}#if end
2936
										
2936
 
2937
			#如果 $conf["newDataTableColmunLength"] 不為 ""
2937
			#如果 $conf["newDataTableColmunLength"] 不為 ""
2938
			if($conf["newDataTableColmunLength"]!=""){
2938
			if($conf["newDataTableColmunLength"]!=""){
2939
				
2939
 
2940
				#則加上 「(」與「)」
2940
				#則加上 「(」與「)」
2941
				$conf["newDataTableColmunLength"]="(".$conf["newDataTableColmunLength"].")";
2941
				$conf["newDataTableColmunLength"]="(".$conf["newDataTableColmunLength"].")";
2942
				
2942
 
2943
				#屬性後面加上長度
2943
				#屬性後面加上長度
2944
				$conf["newDataTableColmunType"]=$conf["newDataTableColmunType"].$conf["newDataTableColmunLength"];
2944
				$conf["newDataTableColmunType"]=$conf["newDataTableColmunType"].$conf["newDataTableColmunLength"];
2945
									
2945
 
2946
				}#if end
2946
				}#if end
2947
				
2947
 
2948
			}#if end
2948
			}#if end
2949
		
2949
 
2950
		#如果 $conf["newDataTableColmunDefault"] 不存在
2950
		#如果 $conf["newDataTableColmunDefault"] 不存在
2951
		if(!isset($conf["newDataTableColmunDefault"])){
2951
		if(!isset($conf["newDataTableColmunDefault"])){
2952
			
2952
 
2953
			#則設定為原始欄位的預設數值
2953
			#則設定為原始欄位的預設數值
2954
			$conf["newDataTableColmunDefault"]="default \"".$oriColumnInfo["columnDefault"][$conf["editedColumnName"]]."\"";
2954
			$conf["newDataTableColmunDefault"]="default \"".$oriColumnInfo["columnDefault"][$conf["editedColumnName"]]."\"";
2955
			
2955
 
2956
			#如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 ""
2956
			#如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 ""
2957
			if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]==""){
2957
			if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]==""){
2958
				
2958
 
2959
				#則將 $conf["newDataTableColmunDefault"] 設為
2959
				#則將 $conf["newDataTableColmunDefault"] 設為
2960
				$conf["newDataTableColmunDefault"]="";
2960
				$conf["newDataTableColmunDefault"]="";
2961
				
2961
 
2962
				}#if end
2962
				}#if end
2963
				
2963
 
2964
			#如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 "NULL"
2964
			#如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 "NULL"
2965
			if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]=="NULL"){
2965
			if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]=="NULL"){
2966
				
2966
 
2967
				#則將 $conf["newDataTableColmunDefault"] 設為
2967
				#則將 $conf["newDataTableColmunDefault"] 設為
2968
				$conf["newDataTableColmunDefault"]="";
2968
				$conf["newDataTableColmunDefault"]="";
2969
				
2969
 
2970
				}#if end
2970
				}#if end
2971
				
2971
 
2972
			#如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 "沒有指定"
2972
			#如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 "沒有指定"
2973
			if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]=="沒有指定"){
2973
			if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]=="沒有指定"){
2974
				
2974
 
2975
				#則將 $conf["newDataTableColmunDefault"] 設為
2975
				#則將 $conf["newDataTableColmunDefault"] 設為
2976
				$conf["newDataTableColmunDefault"]="";
2976
				$conf["newDataTableColmunDefault"]="";
2977
				
2977
 
2978
				}#if end
2978
				}#if end
2979
			
2979
 
2980
			}#if end
2980
			}#if end
2981
			
2981
 
2982
		#反之有設定 $conf["newDataTableColmunDefault"]
2982
		#反之有設定 $conf["newDataTableColmunDefault"]
2983
		else{
2983
		else{
2984
			
2984
 
2985
			#當 $conf["newDataTableColmunType"] 不等於 "text" 與 "tinytest" 時,才能用預設值。
2985
			#當 $conf["newDataTableColmunType"] 不等於 "text" 與 "tinytest" 時,才能用預設值。
2986
			if($conf["newDataTableColmunType"]!="text" && $conf["newDataTableColmunType"]!="tinytest" ){
2986
			if($conf["newDataTableColmunType"]!="text" && $conf["newDataTableColmunType"]!="tinytest" ){
2987
								
2987
 
2988
				#判斷 $conf["newDataTableColmunDefault"] 的數值
2988
				#判斷 $conf["newDataTableColmunDefault"] 的數值
2989
				#currentTime,當前時間;
2989
				#currentTime,當前時間;
2990
				#updatedCurrentTime,初始為當前時間,之後每更動一次就更新為當次時間
2990
				#updatedCurrentTime,初始為當前時間,之後每更動一次就更新為當次時間
2991
				#null,代表空值
2991
				#null,代表空值
2992
				#以外的內容視為指定的數值
2992
				#以外的內容視為指定的數值
2993
				switch($conf["newDataTableColmunDefault"]){
2993
				switch($conf["newDataTableColmunDefault"]){
2994
					
2994
 
2995
					#如果是
2995
					#如果是
2996
					case "currentTime":
2996
					case "currentTime":
2997
					
2997
 
2998
						#則將 $conf["newDataTableColmunDefault"] 設為 " default CURRENT_TIMESTAMP "
2998
						#則將 $conf["newDataTableColmunDefault"] 設為 " default CURRENT_TIMESTAMP "
2999
						$conf["newDataTableColmunDefault"]=" default CURRENT_TIMESTAMP ";
2999
						$conf["newDataTableColmunDefault"]=" default CURRENT_TIMESTAMP ";
3000
					
3000
 
3001
						#跳出 switch 
3001
						#跳出 switch
3002
						break;
3002
						break;
3003
						
3003
 
3004
					#如果是 "updatedCurrentTime"
3004
					#如果是 "updatedCurrentTime"
3005
					case "updatedCurrentTime":
3005
					case "updatedCurrentTime":
3006
					
3006
 
3007
						#則將 $conf["newDataTableColmunDefault"] 設為 " default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP "
3007
						#則將 $conf["newDataTableColmunDefault"] 設為 " default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP "
3008
						$conf["newDataTableColmunDefault"]=" default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
3008
						$conf["newDataTableColmunDefault"]=" default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
3009
					
3009
 
3010
						#跳出 switch 
3010
						#跳出 switch
3011
						break;
3011
						break;
3012
						
3012
 
3013
					#如果是 "null"
3013
					#如果是 "null"
3014
					case "null":
3014
					case "null":
3015
					
3015
 
3016
						#則將 $conf["newDataTableColmunDefault"] 設為 " default null "
3016
						#則將 $conf["newDataTableColmunDefault"] 設為 " default null "
3017
						$conf["newDataTableColmunDefault"]=" default null ";
3017
						$conf["newDataTableColmunDefault"]=" default null ";
3018
					
3018
 
3019
						#跳出 switch 
3019
						#跳出 switch
3020
						break;
3020
						break;
3021
						
3021
 
3022
					#如果是 "NULL"
3022
					#如果是 "NULL"
3023
					case "NULL":
3023
					case "NULL":
3024
					
3024
 
3025
						#則將 $conf["newDataTableColmunDefault"] 設為 " default null "
3025
						#則將 $conf["newDataTableColmunDefault"] 設為 " default null "
3026
						$conf["newDataTableColmunDefault"]=" default NULL ";
3026
						$conf["newDataTableColmunDefault"]=" default NULL ";
3027
					
3027
 
3028
						#跳出 switch 
3028
						#跳出 switch
3029
						break;
3029
						break;
3030
					
3030
 
3031
					#如果是 ""
3031
					#如果是 ""
3032
					case "":
3032
					case "":
3033
					
3033
 
3034
						#則代表不設定預設值
3034
						#則代表不設定預設值
3035
						$conf["newDataTableColmunDefault"]="";
3035
						$conf["newDataTableColmunDefault"]="";
3036
 
3036
 
3037
						break;
3037
						break;
3038
					
3038
 
3039
					#如果為其他內容	
3039
					#如果為其他內容
3040
					default :
3040
					default :
3041
					
3041
 
3042
						#套用自訂的預設值
3042
						#套用自訂的預設值
3043
						$conf["newDataTableColmunDefault"]=" default '".$conf["newDataTableColmunDefault"]."'";		
3043
						$conf["newDataTableColmunDefault"]=" default '".$conf["newDataTableColmunDefault"]."'";
3044
					
3044
 
3045
					}#switch end
3045
					}#switch end
3046
					
3046
 
3047
				}#if end
3047
				}#if end
3048
			
3048
 
3049
			}#else end
3049
			}#else end
3050
			
3050
 
3051
		#如果 $conf["newDataTableColmunNotNull"] 沒有設定
3051
		#如果 $conf["newDataTableColmunNotNull"] 沒有設定
3052
		if(!isset($conf["newDataTableColmunNotNull"])){
3052
		if(!isset($conf["newDataTableColmunNotNull"])){
3053
			
3053
 
3054
			#則按照原始欄位的設定
3054
			#則按照原始欄位的設定
3055
			
3055
 
3056
			#如果 $oriColumnInfo["columnNotNull"][$conf["editedColumnName"]] 等於 "true"
3056
			#如果 $oriColumnInfo["columnNotNull"][$conf["editedColumnName"]] 等於 "true"
3057
			if($oriColumnInfo["columnNotNull"][$conf["editedColumnName"]]=="true"){
3057
			if($oriColumnInfo["columnNotNull"][$conf["editedColumnName"]]=="true"){
3058
				
3058
 
3059
				#則代表不能為 null
3059
				#則代表不能為 null
3060
				$conf["newDataTableColmunNotNull"]=" not null";
3060
				$conf["newDataTableColmunNotNull"]=" not null";
3061
				
3061
 
3062
				}#if end
3062
				}#if end
3063
			
3063
 
3064
			#反之 $oriColumnInfo["columnNotNull"][$conf["editedColumnName"]] 等於 "false"
3064
			#反之 $oriColumnInfo["columnNotNull"][$conf["editedColumnName"]] 等於 "false"
3065
			else{
3065
			else{
3066
				
3066
 
3067
				#則代表可以為 null
3067
				#則代表可以為 null
3068
				#將 $conf["newDataTableColmunNotNull"] 置換為 ""
3068
				#將 $conf["newDataTableColmunNotNull"] 置換為 ""
3069
				$conf["newDataTableColmunNotNull"]="";
3069
				$conf["newDataTableColmunNotNull"]="";
3070
				
3070
 
3071
				}#if end
3071
				}#if end
3072
							
3072
 
3073
			}#if end
3073
			}#if end
3074
			
3074
 
3075
		#反之 如果 $conf["newDataTableColmunNotNull"] 有設定
3075
		#反之 如果 $conf["newDataTableColmunNotNull"] 有設定
3076
		else{
3076
		else{
3077
			
3077
 
3078
			#如果 $conf["newDataTableColmunNotNull"] 為 "true"
3078
			#如果 $conf["newDataTableColmunNotNull"] 為 "true"
3079
			if($conf["newDataTableColmunNotNull"]=="true"){
3079
			if($conf["newDataTableColmunNotNull"]=="true"){
3080
				
3080
 
3081
				#則置換為 "not null"
3081
				#則置換為 "not null"
3082
				$conf["newDataTableColmunNotNull"]="not null";
3082
				$conf["newDataTableColmunNotNull"]="not null";
3083
									
3083
 
3084
				}#if end
3084
				}#if end
3085
				
3085
 
3086
			#如果 $conf["newDataTableColmunNotNull"] 為 "false"
3086
			#如果 $conf["newDataTableColmunNotNull"] 為 "false"
3087
			if($conf["newDataTableColmunNotNull"]=="false"){
3087
			if($conf["newDataTableColmunNotNull"]=="false"){
3088
				
3088
 
3089
				#則置換為 ""
3089
				#則置換為 ""
3090
				$conf["newDataTableColmunNotNull"]="";
3090
				$conf["newDataTableColmunNotNull"]="";
3091
				
3091
 
3092
				}#if end
3092
				}#if end
3093
			
3093
 
3094
			}#else end
3094
			}#else end
3095
			
3095
 
3096
		#如果 $conf["newDataTableColmunAutoAdd"] 沒有設定
3096
		#如果 $conf["newDataTableColmunAutoAdd"] 沒有設定
3097
		if(!isset($conf["newDataTableColmunAutoAdd"])){
3097
		if(!isset($conf["newDataTableColmunAutoAdd"])){
3098
			
3098
 
3099
			#原始欄位的設定為 true 的話
3099
			#原始欄位的設定為 true 的話
3100
			if($oriColumnInfo["columnAutoIncrement"][$conf["editedColumnName"]]=="true"){
3100
			if($oriColumnInfo["columnAutoIncrement"][$conf["editedColumnName"]]=="true"){
3101
				
3101
 
3102
				#則按照原始欄位的設定
3102
				#則按照原始欄位的設定
3103
				$conf["newDataTableColmunAutoAdd"]="auto_increment";
3103
				$conf["newDataTableColmunAutoAdd"]="auto_increment";
3104
				
3104
 
3105
				}#if end
3105
				}#if end
3106
				
3106
 
3107
			#反之代表沒有設定
3107
			#反之代表沒有設定
3108
			else{
3108
			else{
3109
				
3109
 
3110
				#設為 ""
3110
				#設為 ""
3111
				$conf["newDataTableColmunAutoAdd"]="";
3111
				$conf["newDataTableColmunAutoAdd"]="";
3112
				
3112
 
3113
				}#else end
3113
				}#else end
3114
							
3114
 
3115
			}#if end
3115
			}#if end
3116
			
3116
 
3117
		#反之代表 $conf["newDataTableColmunAutoAdd"] 有設定
3117
		#反之代表 $conf["newDataTableColmunAutoAdd"] 有設定
3118
		else{
3118
		else{
3119
			
3119
 
3120
			#如果 $conf["newDataTableColmunAutoAdd"] 等於 "true"
3120
			#如果 $conf["newDataTableColmunAutoAdd"] 等於 "true"
3121
			if($conf["newDataTableColmunAutoAdd"]=="true"){
3121
			if($conf["newDataTableColmunAutoAdd"]=="true"){
3122
				
3122
 
3123
				#則將 $conf["newDataTableColmunAutoAdd"] 設為 auto_increment
3123
				#則將 $conf["newDataTableColmunAutoAdd"] 設為 auto_increment
3124
				$conf["newDataTableColmunAutoAdd"]="auto_increment";
3124
				$conf["newDataTableColmunAutoAdd"]="auto_increment";
3125
									
3125
 
3126
				}#if end
3126
				}#if end
3127
				
3127
 
3128
			#反之 $conf["newDataTableColmunAutoAdd"] 不等於 "true"
3128
			#反之 $conf["newDataTableColmunAutoAdd"] 不等於 "true"
3129
			else{
3129
			else{
3130
				
3130
 
3131
				#則將 $conf["newDataTableColmunAutoAdd"] 設為 ""
3131
				#則將 $conf["newDataTableColmunAutoAdd"] 設為 ""
3132
				$conf["newDataTableColmunAutoAdd"]="";
3132
				$conf["newDataTableColmunAutoAdd"]="";
3133
				
3133
 
3134
				}#else end				
3134
				}#else end
3135
			
3135
 
3136
			}#else end
3136
			}#else end
3137
		
3137
 
3138
		#如果 $conf["newDataTableColmunType"] 為 "char" 或 "text"	
3138
		#如果 $conf["newDataTableColmunType"] 為 "char" 或 "text"
3139
		if($conf["newDataTableColmunType"]=="char" || $conf["newDataTableColmunType"]=="text"){
3139
		if($conf["newDataTableColmunType"]=="char" || $conf["newDataTableColmunType"]=="text"){
3140
			
3140
 
3141
			#CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci',設定為utf8
3141
			#CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci',設定為utf8
3142
			$utf8="CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
3142
			$utf8="CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
3143
			
3143
 
3144
			}#if end
3144
			}#if end
3145
			
3145
 
3146
		#反之不是字元或文字
3146
		#反之不是字元或文字
3147
		else{
3147
		else{
3148
			
3148
 
3149
			#則設為""
3149
			#則設為""
3150
			$utf8="";
3150
			$utf8="";
3151
			
3151
 
3152
			}#else end	
3152
			}#else end
3153
		
3153
 
3154
		#如果有設定 $conf["newDataTableColmunComment"]
3154
		#如果有設定 $conf["newDataTableColmunComment"]
3155
		if(isset($conf["newDataTableColmunComment"])){
3155
		if(isset($conf["newDataTableColmunComment"])){
3156
			
3156
 
3157
			#如果 $conf["newDataTableColmunComment"] 等於 ""
3157
			#如果 $conf["newDataTableColmunComment"] 等於 ""
3158
			if($conf["newDataTableColmunComment"]==""){
3158
			if($conf["newDataTableColmunComment"]==""){
3159
				
3159
 
3160
				#設置為"沒有註解"
3160
				#設置為"沒有註解"
3161
				$comment=" COMMENT '沒有註解'";
3161
				$comment=" COMMENT '沒有註解'";
3162
				
3162
 
3163
				}#if end
3163
				}#if end
3164
			
3164
 
3165
			#反之設置指定的註解字串
3165
			#反之設置指定的註解字串
3166
			else{
3166
			else{
3167
				
3167
 
3168
				#設置註解
3168
				#設置註解
3169
				$comment=" COMMENT '".$conf["newDataTableColmunComment"]."'";
3169
				$comment=" COMMENT '".$conf["newDataTableColmunComment"]."'";
3170
				
3170
 
3171
				}#else end
3171
				}#else end
3172
							
3172
 
3173
			}#if end
3173
			}#if end
3174
			
3174
 
3175
		#反之
3175
		#反之
3176
		else{
3176
		else{
3177
			
3177
 
3178
			#如果原始沒有註解
3178
			#如果原始沒有註解
3179
			if(!isset($oriColumnInfo["colmunComment"][$conf["editedColumnName"]])){
3179
			if(!isset($oriColumnInfo["colmunComment"][$conf["editedColumnName"]])){
3180
				
3180
 
3181
				#設為空字串
3181
				#設為空字串
3182
				$comment="";
3182
				$comment="";
3183
				
3183
 
3184
				}#if end
3184
				}#if end
3185
			
3185
 
3186
			#反之
3186
			#反之
3187
			else{
3187
			else{
3188
				
3188
 
3189
				#設為原始的註解
3189
				#設為原始的註解
3190
				$comment=" COMMENT '".$oriColumnInfo["colmunComment"][$conf["editedColumnName"]]."'";
3190
				$comment=" COMMENT '".$oriColumnInfo["colmunComment"][$conf["editedColumnName"]]."'";
3191
								
3191
 
3192
				}#else end
3192
				}#else end
3193
															
3193
 
3194
			}#else end	
3194
			}#else end
3195
			
3195
 
3196
		#組合sql語法
3196
		#組合sql語法
3197
		$sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." change `".$conf["editedColumnName"]."` `".$conf["newColumnName"]."` ".$conf["newDataTableColmunType"]." ".$utf8." ".$conf["newDataTableColmunDefault"]." ".$conf["newDataTableColmunNotNull"]." ".$conf["newDataTableColmunAutoAdd"]." ".$comment." ;";
3197
		$sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." change `".$conf["editedColumnName"]."` `".$conf["newColumnName"]."` ".$conf["newDataTableColmunType"]." ".$utf8." ".$conf["newDataTableColmunDefault"]." ".$conf["newDataTableColmunNotNull"]." ".$conf["newDataTableColmunAutoAdd"]." ".$comment." ;";
3198
		
3198
 
3199
		#執行 sql 語法
3199
		#執行 sql 語法
3200
		#函式說明:
3200
		#函式說明:
3201
		#執行mysql指令
3201
		#執行mysql指令
3202
		#回傳結果::
3202
		#回傳結果::
3203
		#$result["status"],"true"為執行成功;"false"為執行失敗。
3203
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 3207... Line 3207...
3207
		#查詢號的解果,需要解析。
3207
		#查詢號的解果,需要解析。
3208
		#必填參數:
3208
		#必填參數:
3209
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3209
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3210
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3210
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3211
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
3211
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
3212
		#可省略參數: 
3212
		#可省略參數:
3213
		
3213
 
3214
		#如果有設定連線密碼
3214
		#如果有設定連線密碼
3215
		if(isset($conf["dbPassword"])){
3215
		if(isset($conf["dbPassword"])){
3216
			
3216
 
3217
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3217
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3218
			
3218
 
3219
			}#if end
3219
			}#if end
3220
		
3220
 
3221
		#如果有設定 $conf["dbPort"]	
3221
		#如果有設定 $conf["dbPort"]
3222
		if(isset($conf["dbPort"])){
3222
		if(isset($conf["dbPort"])){
3223
		
3223
 
3224
			#設定 $conf["dbPort"]
3224
			#設定 $conf["dbPort"]
3225
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
3225
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
3226
		
3226
 
3227
			}#if end	
3227
			}#if end
3228
		
3228
 
3229
		$sqlExecResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
3229
		$sqlExecResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
3230
		unset($conf["db"]["execMysqlQuery"]);
3230
		unset($conf["db"]["execMysqlQuery"]);
3231
		
3231
 
3232
		#如果執行 sql 語法錯誤
3232
		#如果執行 sql 語法錯誤
3233
		if($sqlExecResult["status"]=="false"){
3233
		if($sqlExecResult["status"]=="false"){
3234
			
3234
 
3235
			#設定執行失敗的識別
3235
			#設定執行失敗的識別
3236
			$result["status"]="false";
3236
			$result["status"]="false";
3237
			
3237
 
3238
			#設定錯誤訊息
3238
			#設定錯誤訊息
3239
			$result["error"]=$sqlExecResult;
3239
			$result["error"]=$sqlExecResult;
3240
			
3240
 
3241
			#回傳結果
3241
			#回傳結果
3242
			return $result;
3242
			return $result;
3243
			
3243
 
3244
			}#if end
3244
			}#if end
3245
			
3245
 
3246
		#取得執行的sql語法
3246
		#取得執行的sql語法
3247
		$result["sql"][]=$sqlExecResult["queryString"];
3247
		$result["sql"][]=$sqlExecResult["queryString"];
3248
		
3248
 
3249
		#如果 $conf["newDataTableColmunKeyType"] 有設定
3249
		#如果 $conf["newDataTableColmunKeyType"] 有設定
3250
		if(isset($conf["newDataTableColmunKeyType"])){
3250
		if(isset($conf["newDataTableColmunKeyType"])){
3251
			
3251
 
3252
			#取得其key為何種
3252
			#取得其key為何種
3253
			#函式說明:
3253
			#函式說明:
3254
			#取得資料表所有欄位的詳細資訊
3254
			#取得資料表所有欄位的詳細資訊
3255
			#回傳的內容:
3255
			#回傳的內容:
3256
			#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
3256
			#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
Line 3283... Line 3283...
3283
			$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];
3283
			$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];
3284
			$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];
3284
			$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];
3285
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];
3285
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];
3286
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];
3286
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];
3287
			#可省略參數:
3287
			#可省略參數:
3288
			
3288
 
3289
			#如果 $conf["dbPassword"] 有設定
3289
			#如果 $conf["dbPassword"] 有設定
3290
			if(isset($conf["dbPassword"])){
3290
			if(isset($conf["dbPassword"])){
3291
				
3291
 
3292
				#套用連限時的密碼
3292
				#套用連限時的密碼
3293
				$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];
3293
				$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];
3294
				
3294
 
3295
				}#if end
3295
				}#if end
3296
							
3296
 
3297
			#如果有設定 $conf["dbPort"]	
3297
			#如果有設定 $conf["dbPort"]
3298
			if(isset($conf["dbPort"])){
3298
			if(isset($conf["dbPort"])){
3299
			
3299
 
3300
				#設定 $conf["dbPort"]
3300
				#設定 $conf["dbPort"]
3301
				$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
3301
				$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
3302
			
3302
 
3303
				}#if end	
3303
				}#if end
3304
						
3304
 
3305
			$tableColumnDetial=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
3305
			$tableColumnDetial=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
3306
			unset($conf["db"]["getTableColumnDetailInfo"]);#卸除變數,避免錯誤產生.
3306
			unset($conf["db"]["getTableColumnDetailInfo"]);#卸除變數,避免錯誤產生.
3307
			
3307
 
3308
			#如果取得資料表結構失敗
3308
			#如果取得資料表結構失敗
3309
			if($tableColumnDetial["status"]=="false"){
3309
			if($tableColumnDetial["status"]=="false"){
3310
				
3310
 
3311
				#設置執行不正常
3311
				#設置執行不正常
3312
				$result["status"]="false";
3312
				$result["status"]="false";
3313
				
3313
 
3314
				#設置執行錯誤訊息
3314
				#設置執行錯誤訊息
3315
				$result["error"]=$tableColumnDetial;
3315
				$result["error"]=$tableColumnDetial;
3316
				
3316
 
3317
				#回傳結果
3317
				#回傳結果
3318
				return $result;
3318
				return $result;
3319
				
3319
 
3320
				}#if end
3320
				}#if end
3321
			
3321
 
3322
			#判斷 $conf["newDataTableColmunKeyType"] 來進行處理
3322
			#判斷 $conf["newDataTableColmunKeyType"] 來進行處理
3323
			#"index"爲索引鍵,"foreign key"為外鍵,""為將鍵屬性取消。
3323
			#"index"爲索引鍵,"foreign key"為外鍵,""為將鍵屬性取消。
3324
			switch($conf["newDataTableColmunKeyType"]){
3324
			switch($conf["newDataTableColmunKeyType"]){
3325
				
3325
 
3326
				#如果 $conf["newDataTableColmunKeyType"] 是 ""
3326
				#如果 $conf["newDataTableColmunKeyType"] 是 ""
3327
				case "":
3327
				case "":
3328
				
3328
 
3329
					#檢查目標欄位是主鍵或是索引鍵或是外鍵
3329
					#檢查目標欄位是主鍵或是索引鍵或是外鍵
3330
					
3330
 
3331
					#debug	
3331
					#debug
3332
					#var_dump($tableColumnDetial);
3332
					#var_dump($tableColumnDetial);
3333
					
3333
 
3334
					#如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
3334
					#如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
3335
					if($tableColumnDetial["foreignKey"]["exist"]=="true"){
3335
					if($tableColumnDetial["foreignKey"]["exist"]=="true"){
3336
						
3336
 
3337
						#如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["dbInformation"]["newColumnName"]] 存在,則代表該欄位為索引鍵
3337
						#如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["dbInformation"]["newColumnName"]] 存在,則代表該欄位為索引鍵
3338
						if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
3338
						if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
3339
						
3339
 
3340
							#移除外鍵
3340
							#移除外鍵
3341
							#函式說明:
3341
							#函式說明:
3342
							#移除資料表單1欄位的外鍵
3342
							#移除資料表單1欄位的外鍵
3343
							#回傳結果:
3343
							#回傳結果:
3344
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
3344
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3348... Line 3348...
3348
							$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3348
							$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3349
							$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3349
							$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3350
							$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3350
							$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3351
							$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3351
							$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3352
							$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3352
							$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3353
							#可省略參數: 
3353
							#可省略參數:
3354
							
3354
 
3355
							#如果 $conf["dbPassword"] 存在
3355
							#如果 $conf["dbPassword"] 存在
3356
							if(isset($conf["dbPassword"])){
3356
							if(isset($conf["dbPassword"])){
3357
								
3357
 
3358
								#則設定連線的密碼
3358
								#則設定連線的密碼
3359
								$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3359
								$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3360
								
3360
 
3361
								}#if end
3361
								}#if end
3362
							
3362
 
3363
							#如果有設定 $conf["dbPort"]	
3363
							#如果有設定 $conf["dbPort"]
3364
							if(isset($conf["dbPort"])){
3364
							if(isset($conf["dbPort"])){
3365
							
3365
 
3366
								#設定 $conf["dbPort"]
3366
								#設定 $conf["dbPort"]
3367
								$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
3367
								$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
3368
							
3368
 
3369
								}#if end	
3369
								}#if end
3370
														
3370
 
3371
							$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
3371
							$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
3372
							unset($conf["db"]["eraseForeignKey"]);
3372
							unset($conf["db"]["eraseForeignKey"]);
3373
						
3373
 
3374
							#取得執行的sql字串
3374
							#取得執行的sql字串
3375
							$result["sql"][]=$eraseForeignKeyResult["sql"];
3375
							$result["sql"][]=$eraseForeignKeyResult["sql"];
3376
						
3376
 
3377
							#如果 $eraseForeignKeyResult["status"]等於"fasle"
3377
							#如果 $eraseForeignKeyResult["status"]等於"fasle"
3378
							if($eraseForeignKeyResult["status"]=="false"){
3378
							if($eraseForeignKeyResult["status"]=="false"){
3379
								
3379
 
3380
								#設置出錯的識別
3380
								#設置出錯的識別
3381
								$result["status"]="fasle";
3381
								$result["status"]="fasle";
3382
								
3382
 
3383
								#設置錯誤訊息
3383
								#設置錯誤訊息
3384
								$result["error"]=$eraseForeignKeyResult;
3384
								$result["error"]=$eraseForeignKeyResult;
3385
								
3385
 
3386
								#回傳結果
3386
								#回傳結果
3387
								return $result;
3387
								return $result;
3388
								
3388
 
3389
								}#if end
3389
								}#if end
3390
						
3390
 
3391
							}#if end
3391
							}#if end
3392
						
3392
 
3393
						}#if end
3393
						}#if end
3394
											
3394
 
3395
					#如果 $tableColumnDetial["key"]["exist"] 等於 "true",代表有索引鍵
3395
					#如果 $tableColumnDetial["key"]["exist"] 等於 "true",代表有索引鍵
3396
					if($tableColumnDetial["key"]["exist"]=="true"){
3396
					if($tableColumnDetial["key"]["exist"]=="true"){
3397
						
3397
 
3398
						#如果 $tableColumnDetial["key"][$conf["newColumnName"]] 存在,則代表該欄位為索引鍵
3398
						#如果 $tableColumnDetial["key"][$conf["newColumnName"]] 存在,則代表該欄位為索引鍵
3399
						if(isset($tableColumnDetial["key"][$conf["newColumnName"]])){
3399
						if(isset($tableColumnDetial["key"][$conf["newColumnName"]])){
3400
							
3400
 
3401
							#移除索引鍵
3401
							#移除索引鍵
3402
							#函式說明:
3402
							#函式說明:
3403
							#移除資料表單1欄位的索引鍵
3403
							#移除資料表單1欄位的索引鍵
3404
							#回傳結果:
3404
							#回傳結果:
3405
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
3405
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3410... Line 3410...
3410
							$conf["db"]["eraseIndexKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3410
							$conf["db"]["eraseIndexKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3411
							$conf["db"]["eraseIndexKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3411
							$conf["db"]["eraseIndexKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3412
							$conf["db"]["eraseIndexKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料表
3412
							$conf["db"]["eraseIndexKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料表
3413
							$conf["db"]["eraseIndexKey"]["erasedIndexKeyColumnConstraintName"]=$tableColumnDetial["keyConstraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3413
							$conf["db"]["eraseIndexKey"]["erasedIndexKeyColumnConstraintName"]=$tableColumnDetial["keyConstraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3414
							#可省略參數:
3414
							#可省略參數:
3415
							
3415
 
3416
							#如果 $conf["dbPassword"] 存在
3416
							#如果 $conf["dbPassword"] 存在
3417
							if(isset($conf["dbPassword"])){
3417
							if(isset($conf["dbPassword"])){
3418
								
3418
 
3419
								#則設定連線的密碼
3419
								#則設定連線的密碼
3420
								$conf["db"]["eraseIndexKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3420
								$conf["db"]["eraseIndexKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3421
								
3421
 
3422
								}#if end
3422
								}#if end
3423
							
3423
 
3424
							#如果有設定 $conf["dbPort"]	
3424
							#如果有設定 $conf["dbPort"]
3425
							if(isset($conf["dbPort"])){
3425
							if(isset($conf["dbPort"])){
3426
							
3426
 
3427
								#設定 $conf["dbPort"]
3427
								#設定 $conf["dbPort"]
3428
								$conf["db"]["eraseIndexKey"]["dbPort"]=$conf["dbPort"];
3428
								$conf["db"]["eraseIndexKey"]["dbPort"]=$conf["dbPort"];
3429
							
3429
 
3430
								}#if end	
3430
								}#if end
3431
							
3431
 
3432
							$eraseIndexKeyResult=db::eraseIndexKey($conf["db"]["eraseIndexKey"]);
3432
							$eraseIndexKeyResult=db::eraseIndexKey($conf["db"]["eraseIndexKey"]);
3433
							#var_dump($conf["db"]["eraseIndexKey"]);
3433
							#var_dump($conf["db"]["eraseIndexKey"]);
3434
							unset($conf["db"]);
3434
							unset($conf["db"]);
3435
							
3435
 
3436
							#debug
3436
							#debug
3437
							#var_dump($eraseIndexKeyResult);
3437
							#var_dump($eraseIndexKeyResult);
3438
							
3438
 
3439
							#取得執行的sql語言
3439
							#取得執行的sql語言
3440
							$result["sql"][]=$eraseIndexKeyResult["sql"];
3440
							$result["sql"][]=$eraseIndexKeyResult["sql"];
3441
							
3441
 
3442
							#如果 $eraseIndexKeyResult["status"]等於"fasle"
3442
							#如果 $eraseIndexKeyResult["status"]等於"fasle"
3443
							if($eraseIndexKeyResult["status"]=="false"){
3443
							if($eraseIndexKeyResult["status"]=="false"){
3444
								
3444
 
3445
								#設置出錯的識別
3445
								#設置出錯的識別
3446
								$result["status"]="false";
3446
								$result["status"]="false";
3447
								
3447
 
3448
								#設置錯誤訊息
3448
								#設置錯誤訊息
3449
								$result["error"]=$eraseIndexKeyResult;
3449
								$result["error"]=$eraseIndexKeyResult;
3450
								
3450
 
3451
								#回傳結果
3451
								#回傳結果
3452
								return $result;
3452
								return $result;
3453
								
3453
 
3454
								}#if end
3454
								}#if end
3455
							
3455
 
3456
							}#if end
3456
							}#if end
3457
						
3457
 
3458
						}#if end
3458
						}#if end
3459
				
3459
 
3460
					#中斷switch
3460
					#中斷switch
3461
					break;
3461
					break;
3462
				
3462
 
3463
				#如果 $conf["newDataTableColmunKeyType"] 是 "index"
3463
				#如果 $conf["newDataTableColmunKeyType"] 是 "index"
3464
				case "index":
3464
				case "index":
3465
									
3465
 
3466
					#如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
3466
					#如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
3467
					if($tableColumnDetial["foreignKey"]["exist"]=="true"){
3467
					if($tableColumnDetial["foreignKey"]["exist"]=="true"){
3468
						
3468
 
3469
						#echo "have foreign key";
3469
						#echo "have foreign key";
3470
						
3470
 
3471
						#如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]] 存在,則代表該欄位為索引鍵
3471
						#如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]] 存在,則代表該欄位為索引鍵
3472
						if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
3472
						if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
3473
						
3473
 
3474
							#移除外鍵
3474
							#移除外鍵
3475
							#函式說明:
3475
							#函式說明:
3476
							#移除資料表單1欄位的外鍵
3476
							#移除資料表單1欄位的外鍵
3477
							#回傳結果:
3477
							#回傳結果:
3478
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
3478
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3481... Line 3481...
3481
							$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3481
							$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3482
							$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3482
							$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3483
							$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3483
							$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3484
							$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3484
							$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3485
							$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3485
							$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3486
							#可省略參數: 
3486
							#可省略參數:
3487
							
3487
 
3488
							#如果 $conf["dbPassword"] 存在
3488
							#如果 $conf["dbPassword"] 存在
3489
							if(isset($conf["dbPassword"])){
3489
							if(isset($conf["dbPassword"])){
3490
								
3490
 
3491
								#則設定連線的密碼
3491
								#則設定連線的密碼
3492
								$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3492
								$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3493
								
3493
 
3494
								}#if end
3494
								}#if end
3495
									
3495
 
3496
							#如果有設定 $conf["dbPort"]	
3496
							#如果有設定 $conf["dbPort"]
3497
							if(isset($conf["dbPort"])){
3497
							if(isset($conf["dbPort"])){
3498
							
3498
 
3499
								#設定 $conf["dbPort"]
3499
								#設定 $conf["dbPort"]
3500
								$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
3500
								$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
3501
							
3501
 
3502
								}#if end			
3502
								}#if end
3503
														
3503
 
3504
							$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
3504
							$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
3505
							unset($conf["db"]["eraseForeignKey"]);
3505
							unset($conf["db"]["eraseForeignKey"]);
3506
						
3506
 
3507
							#執行的sql字串
3507
							#執行的sql字串
3508
							$result["sql"][]=$eraseForeignKeyResult["sql"];
3508
							$result["sql"][]=$eraseForeignKeyResult["sql"];
3509
						
3509
 
3510
							#如果 $eraseForeignKeyResult["status"]等於"fasle"
3510
							#如果 $eraseForeignKeyResult["status"]等於"fasle"
3511
							if($eraseForeignKeyResult["status"]=="false"){
3511
							if($eraseForeignKeyResult["status"]=="false"){
3512
								
3512
 
3513
								#設置出錯的識別
3513
								#設置出錯的識別
3514
								$result["status"]="false";
3514
								$result["status"]="false";
3515
								
3515
 
3516
								#設置錯誤訊息
3516
								#設置錯誤訊息
3517
								$result["error"]=$eraseForeignKeyResult;
3517
								$result["error"]=$eraseForeignKeyResult;
3518
								
3518
 
3519
								#回傳結果
3519
								#回傳結果
3520
								return $result;
3520
								return $result;
3521
								
3521
 
3522
								}#if end
3522
								}#if end
3523
						
3523
 
3524
							}#if end
3524
							}#if end
3525
						
3525
 
3526
						}#if end
3526
						}#if end
3527
					
3527
 
3528
					#如果 $tableColumnDetial["key"]["exist"] 等於 "true",代表有索引鍵
3528
					#如果 $tableColumnDetial["key"]["exist"] 等於 "true",代表有索引鍵
3529
					if($tableColumnDetial["key"]["exist"]=="true"){
3529
					if($tableColumnDetial["key"]["exist"]=="true"){
3530
				
3530
 
3531
						#檢查目標欄位是否為索引鍵
3531
						#檢查目標欄位是否為索引鍵
3532
						if(!isset($tableColumnDetial["index"][$conf["newColumnName"]])){
3532
						if(!isset($tableColumnDetial["index"][$conf["newColumnName"]])){
3533
							
3533
 
3534
							#代表目標欄位不為索引鍵
3534
							#代表目標欄位不為索引鍵
3535
							
3535
 
3536
							#建立索引鍵
3536
							#建立索引鍵
3537
							#函式說明:
3537
							#函式說明:
3538
							#新增資料表的欄位
3538
							#新增資料表的欄位
3539
							#回傳結果:
3539
							#回傳結果:
3540
							#$result["status"],"true",代表執行成功;"false"代表執行失敗.
3540
							#$result["status"],"true",代表執行成功;"false"代表執行失敗.
Line 3547... Line 3547...
3547
							$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3547
							$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3548
							$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3548
							$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3549
							$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3549
							$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3550
							$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3550
							$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3551
							#可省略參數:
3551
							#可省略參數:
3552
							
3552
 
3553
							#如果 $conf["dbPassword"] 存在
3553
							#如果 $conf["dbPassword"] 存在
3554
							if(isset($conf["dbPassword"])){
3554
							if(isset($conf["dbPassword"])){
3555
										
3555
 
3556
								#則設定連線的密碼
3556
								#則設定連線的密碼
3557
								$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3557
								$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3558
										
3558
 
3559
								}#if end
3559
								}#if end
3560
								
3560
 
3561
							#如果有設定 $conf["dbPort"]	
3561
							#如果有設定 $conf["dbPort"]
3562
							if(isset($conf["dbPort"])){
3562
							if(isset($conf["dbPort"])){
3563
							
3563
 
3564
								#設定 $conf["dbPort"]
3564
								#設定 $conf["dbPort"]
3565
								$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3565
								$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3566
							
3566
 
3567
								}#if end	
3567
								}#if end
3568
												
3568
 
3569
							$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3569
							$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3570
							unset($conf["db"]["setColumnIndex"]);
3570
							unset($conf["db"]["setColumnIndex"]);
3571
						
3571
 
3572
							#如果設置 column index 失敗
3572
							#如果設置 column index 失敗
3573
							if($setColumnIndexResult["status"]==="false"){
3573
							if($setColumnIndexResult["status"]==="false"){
3574
							
3574
 
3575
								#設置出錯的識別
3575
								#設置出錯的識別
3576
								$result["status"]="false";
3576
								$result["status"]="false";
3577
								
3577
 
3578
								#設置錯誤訊息
3578
								#設置錯誤訊息
3579
								$result["error"]=$setColumnIndexResult;
3579
								$result["error"]=$setColumnIndexResult;
3580
								
3580
 
3581
								#回傳結果
3581
								#回傳結果
3582
								return $result;
3582
								return $result;
3583
							
3583
 
3584
								}#if end
3584
								}#if end
3585
						
3585
 
3586
							#如果有執行 sql
3586
							#如果有執行 sql
3587
							if(isset($setColumnIndexResult["sql"])){
3587
							if(isset($setColumnIndexResult["sql"])){
3588
						
3588
 
3589
								#取得執行的sql字串
3589
								#取得執行的sql字串
3590
								$result["sql"][]=$setColumnIndexResult["sql"];
3590
								$result["sql"][]=$setColumnIndexResult["sql"];
3591
						
3591
 
3592
								}#if end
3592
								}#if end
3593
						
3593
 
3594
							#如果 $setColumnIndexResult["status"] 為 "fasle"
3594
							#如果 $setColumnIndexResult["status"] 為 "fasle"
3595
							if($setColumnIndexResult["status"]=="fasle"){
3595
							if($setColumnIndexResult["status"]=="fasle"){
3596
								
3596
 
3597
								#設置出錯的識別
3597
								#設置出錯的識別
3598
								$result["status"]="false";
3598
								$result["status"]="false";
3599
									
3599
 
3600
								#設置錯誤訊息
3600
								#設置錯誤訊息
3601
								$result["error"]=$setColumnIndexResult;
3601
								$result["error"]=$setColumnIndexResult;
3602
										
3602
 
3603
								#回傳結果
3603
								#回傳結果
3604
								return $result;
3604
								return $result;
3605
								
3605
 
3606
								}#if end
3606
								}#if end
3607
							
3607
 
3608
							}#if end
3608
							}#if end
3609
				
3609
 
3610
						}#if end
3610
						}#if end
3611
						
3611
 
3612
					#如果 $tableColumnDetial["key"]["exist"] 等於 "fasle",代表沒有索引鍵
3612
					#如果 $tableColumnDetial["key"]["exist"] 等於 "fasle",代表沒有索引鍵
3613
					if($tableColumnDetial["key"]["exist"]=="false"){
3613
					if($tableColumnDetial["key"]["exist"]=="false"){
3614
				
3614
 
3615
						#建立索引鍵
3615
						#建立索引鍵
3616
						#函式說明:
3616
						#函式說明:
3617
						#新增資料表的欄位
3617
						#新增資料表的欄位
3618
						#回傳結果:
3618
						#回傳結果:
3619
						#$result["status"],"true",代表執行成功;"false"代表執行失敗
3619
						#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3623... Line 3623...
3623
						$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3623
						$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3624
						$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3624
						$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3625
						$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3625
						$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3626
						$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3626
						$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3627
						#可省略參數:
3627
						#可省略參數:
3628
						
3628
 
3629
						#如果 $conf["dbPassword"] 存在
3629
						#如果 $conf["dbPassword"] 存在
3630
						if(isset($conf["dbPassword"])){
3630
						if(isset($conf["dbPassword"])){
3631
									
3631
 
3632
							#則設定連線的密碼
3632
							#則設定連線的密碼
3633
							$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3633
							$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3634
									
3634
 
3635
							}#if end
3635
							}#if end
3636
							
3636
 
3637
						#如果有設定 $conf["dbPort"]	
3637
						#如果有設定 $conf["dbPort"]
3638
						if(isset($conf["dbPort"])){
3638
						if(isset($conf["dbPort"])){
3639
						
3639
 
3640
							#設定 $conf["dbPort"]
3640
							#設定 $conf["dbPort"]
3641
							$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3641
							$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3642
						
3642
 
3643
							}#if end	
3643
							}#if end
3644
											
3644
 
3645
						$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3645
						$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3646
						unset($conf["db"]["setColumnIndex"]);
3646
						unset($conf["db"]["setColumnIndex"]);
3647
					
3647
 
3648
						#取得執行的sql字串.
3648
						#取得執行的sql字串.
3649
						$result["sql"][]=$setColumnIndexResult["sql"];
3649
						$result["sql"][]=$setColumnIndexResult["sql"];
3650
					
3650
 
3651
						#如果 $setColumnIndexResult["status"] 為 "fasle"
3651
						#如果 $setColumnIndexResult["status"] 為 "fasle"
3652
						if($setColumnIndexResult["status"]=="fasle"){
3652
						if($setColumnIndexResult["status"]=="fasle"){
3653
							
3653
 
3654
							#設置出錯的識別
3654
							#設置出錯的識別
3655
							$result["status"]="false";
3655
							$result["status"]="false";
3656
								
3656
 
3657
							#設置錯誤訊息
3657
							#設置錯誤訊息
3658
							$result["error"]=$setColumnIndexResult;
3658
							$result["error"]=$setColumnIndexResult;
3659
									
3659
 
3660
							#回傳結果
3660
							#回傳結果
3661
							return $result;
3661
							return $result;
3662
							
3662
 
3663
							}#if end
3663
							}#if end
3664
						
3664
 
3665
						}#if end
3665
						}#if end
3666
					
3666
 
3667
					#中斷switch
3667
					#中斷switch
3668
					break;
3668
					break;
3669
					
3669
 
3670
				#如果是 foreign key
3670
				#如果是 foreign key
3671
				case "foreign key":
3671
				case "foreign key":
3672
				
3672
 
3673
					#echo "enter foreign key";
3673
					#echo "enter foreign key";
3674
				
3674
 
3675
					#檢查該欄位是否為foreign key
3675
					#檢查該欄位是否為foreign key
3676
					#如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
3676
					#如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
3677
					if($tableColumnDetial["foreignKey"]["exist"]=="true"){
3677
					if($tableColumnDetial["foreignKey"]["exist"]=="true"){
3678
						
3678
 
3679
						#echo "have foreig key";
3679
						#echo "have foreig key";
3680
						
3680
 
3681
						#如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["dbInformation"]["newColumnName"]] 存在,則代表該欄位為索引鍵
3681
						#如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["dbInformation"]["newColumnName"]] 存在,則代表該欄位為索引鍵
3682
						if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
3682
						if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
3683
						
3683
 
3684
							#移除外鍵
3684
							#移除外鍵
3685
							#函式說明:
3685
							#函式說明:
3686
							#移除資料表單1欄位的外鍵
3686
							#移除資料表單1欄位的外鍵
3687
							#回傳結果:
3687
							#回傳結果:
3688
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
3688
							#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3691... Line 3691...
3691
							$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3691
							$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3692
							$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3692
							$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3693
							$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3693
							$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3694
							$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3694
							$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3695
							$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3695
							$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
3696
							#可省略參數: 
3696
							#可省略參數:
3697
							
3697
 
3698
							#如果 $conf["dbPassword"] 存在
3698
							#如果 $conf["dbPassword"] 存在
3699
							if(isset($conf["dbPassword"])){
3699
							if(isset($conf["dbPassword"])){
3700
								
3700
 
3701
								#則設定連線的密碼
3701
								#則設定連線的密碼
3702
								$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3702
								$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3703
								
3703
 
3704
								}#if end
3704
								}#if end
3705
							
3705
 
3706
							#如果有設定 $conf["dbPort"]	
3706
							#如果有設定 $conf["dbPort"]
3707
							if(isset($conf["dbPort"])){
3707
							if(isset($conf["dbPort"])){
3708
							
3708
 
3709
								#設定 $conf["dbPort"]
3709
								#設定 $conf["dbPort"]
3710
								$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
3710
								$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
3711
							
3711
 
3712
								}#if end
3712
								}#if end
3713
														
3713
 
3714
							$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
3714
							$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
3715
							unset($conf["db"]["eraseForeignKey"]);
3715
							unset($conf["db"]["eraseForeignKey"]);
3716
						
3716
 
3717
							#取得執行的sql字串
3717
							#取得執行的sql字串
3718
							$result["sql"][]=$eraseForeignKeyResult["sql"];
3718
							$result["sql"][]=$eraseForeignKeyResult["sql"];
3719
						
3719
 
3720
							#如果 $eraseForeignKeyResult["status"]等於"fasle"
3720
							#如果 $eraseForeignKeyResult["status"]等於"fasle"
3721
							if($eraseForeignKeyResult["status"]=="false"){
3721
							if($eraseForeignKeyResult["status"]=="false"){
3722
								
3722
 
3723
								#設置出錯的識別
3723
								#設置出錯的識別
3724
								$result["status"]="false";
3724
								$result["status"]="false";
3725
								
3725
 
3726
								#設置錯誤訊息
3726
								#設置錯誤訊息
3727
								$result["error"]=$eraseForeignKeyResult;
3727
								$result["error"]=$eraseForeignKeyResult;
3728
								
3728
 
3729
								#回傳結果
3729
								#回傳結果
3730
								return $result;
3730
								return $result;
3731
								
3731
 
3732
								}#if end
3732
								}#if end
3733
						
3733
 
3734
							}#if end
3734
							}#if end
3735
						
3735
 
3736
						}#if end
3736
						}#if end
3737
				
3737
 
3738
					#檢查該欄位是否為index
3738
					#檢查該欄位是否為index
3739
					#如果 $tableColumnDetial["key"]["exist"] 等於 "false",代表沒有索引鍵
3739
					#如果 $tableColumnDetial["key"]["exist"] 等於 "false",代表沒有索引鍵
3740
					if($tableColumnDetial["key"]["exist"]=="false"){
3740
					if($tableColumnDetial["key"]["exist"]=="false"){
3741
				
3741
 
3742
						#echo "have no index";
3742
						#echo "have no index";
3743
				
3743
 
3744
						#建立索引鍵
3744
						#建立索引鍵
3745
						#函式說明:
3745
						#函式說明:
3746
						#新增資料表的欄位
3746
						#新增資料表的欄位
3747
						#回傳結果:
3747
						#回傳結果:
3748
						#$result["status"],"true",代表執行成功;"false"代表執行失敗
3748
						#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3752... Line 3752...
3752
						$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3752
						$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3753
						$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3753
						$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3754
						$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3754
						$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3755
						$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3755
						$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3756
						#可省略參數:
3756
						#可省略參數:
3757
						
3757
 
3758
						#如果 $conf["dbPassword"] 存在
3758
						#如果 $conf["dbPassword"] 存在
3759
						if(isset($conf["dbPassword"])){
3759
						if(isset($conf["dbPassword"])){
3760
									
3760
 
3761
							#則設定連線的密碼
3761
							#則設定連線的密碼
3762
							$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3762
							$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3763
									
3763
 
3764
							}#if end
3764
							}#if end
3765
							
3765
 
3766
						#如果有設定 $conf["dbPort"]	
3766
						#如果有設定 $conf["dbPort"]
3767
						if(isset($conf["dbPort"])){
3767
						if(isset($conf["dbPort"])){
3768
						
3768
 
3769
							#設定 $conf["dbPort"]
3769
							#設定 $conf["dbPort"]
3770
							$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3770
							$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3771
						
3771
 
3772
							}#if end	
3772
							}#if end
3773
											
3773
 
3774
						$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3774
						$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3775
						unset($conf["db"]["setColumnIndex"]);
3775
						unset($conf["db"]["setColumnIndex"]);
3776
					
3776
 
3777
						#取得執行的sql字串
3777
						#取得執行的sql字串
3778
						$result["sql"][]=$setColumnIndexResult["sql"];
3778
						$result["sql"][]=$setColumnIndexResult["sql"];
3779
					
3779
 
3780
						#如果 $setColumnIndexResult["status"] 為 "false"
3780
						#如果 $setColumnIndexResult["status"] 為 "false"
3781
						if($setColumnIndexResult["status"]=="false"){
3781
						if($setColumnIndexResult["status"]=="false"){
3782
							
3782
 
3783
							#設置出錯的識別
3783
							#設置出錯的識別
3784
							$result["status"]="false";
3784
							$result["status"]="false";
3785
								
3785
 
3786
							#設置錯誤訊息
3786
							#設置錯誤訊息
3787
							$result["error"]=$setColumnIndexResult;
3787
							$result["error"]=$setColumnIndexResult;
3788
									
3788
 
3789
							#回傳結果
3789
							#回傳結果
3790
							return $result;
3790
							return $result;
3791
							
3791
 
3792
							}#if end
3792
							}#if end
3793
						
3793
 
3794
						}#if end
3794
						}#if end
3795
					
3795
 
3796
					#反之有索引鍵	
3796
					#反之有索引鍵
3797
					#如果目標欄位不是索引鍵
3797
					#如果目標欄位不是索引鍵
3798
					else if(!isset($tableColumnDetial["key"][$conf["newColumnName"]])){
3798
					else if(!isset($tableColumnDetial["key"][$conf["newColumnName"]])){
3799
						
3799
 
3800
						#建立索引鍵
3800
						#建立索引鍵
3801
						#函式說明:
3801
						#函式說明:
3802
						#新增資料表的欄位
3802
						#新增資料表的欄位
3803
						#回傳結果:
3803
						#回傳結果:
3804
						#$result["status"],"true",代表執行成功;"false"代表執行失敗
3804
						#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 3808... Line 3808...
3808
						$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3808
						$conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3809
						$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3809
						$conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
3810
						$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3810
						$conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
3811
						$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3811
						$conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
3812
						#可省略參數:
3812
						#可省略參數:
3813
						
3813
 
3814
						#如果 $conf["dbPassword"] 存在
3814
						#如果 $conf["dbPassword"] 存在
3815
						if(isset($conf["dbPassword"])){
3815
						if(isset($conf["dbPassword"])){
3816
									
3816
 
3817
							#則設定連線的密碼
3817
							#則設定連線的密碼
3818
							$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3818
							$conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
3819
									
3819
 
3820
							}#if end
3820
							}#if end
3821
								
3821
 
3822
						#如果有設定 $conf["dbPort"]	
3822
						#如果有設定 $conf["dbPort"]
3823
						if(isset($conf["dbPort"])){
3823
						if(isset($conf["dbPort"])){
3824
						
3824
 
3825
							#設定 $conf["dbPort"]
3825
							#設定 $conf["dbPort"]
3826
							$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3826
							$conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
3827
						
3827
 
3828
							}#if end			
3828
							}#if end
3829
											
3829
 
3830
						$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3830
						$setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
3831
						unset($conf["db"]["setColumnIndex"]);
3831
						unset($conf["db"]["setColumnIndex"]);
3832
					
3832
 
3833
						#取得執行的sql字串
3833
						#取得執行的sql字串
3834
						$result["sql"][]=$setColumnIndexResult["sql"];
3834
						$result["sql"][]=$setColumnIndexResult["sql"];
3835
					
3835
 
3836
						#如果 $setColumnIndexResult["status"] 為 "false"
3836
						#如果 $setColumnIndexResult["status"] 為 "false"
3837
						if($setColumnIndexResult["status"]=="false"){
3837
						if($setColumnIndexResult["status"]=="false"){
3838
							
3838
 
3839
							#設置出錯的識別
3839
							#設置出錯的識別
3840
							$result["status"]="false";
3840
							$result["status"]="false";
3841
								
3841
 
3842
							#設置錯誤訊息
3842
							#設置錯誤訊息
3843
							$result["error"]=$setColumnIndexResult;
3843
							$result["error"]=$setColumnIndexResult;
3844
									
3844
 
3845
							#回傳結果
3845
							#回傳結果
3846
							return $result;
3846
							return $result;
3847
							
3847
 
3848
							}#if end					
3848
							}#if end
3849
						
3849
 
3850
						}#else end
3850
						}#else end
3851
						
3851
 
3852
					#檢查該欄位的foreign key設定參數是否存在
3852
					#檢查該欄位的foreign key設定參數是否存在
3853
					#函式說明:
3853
					#函式說明:
3854
					#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
3854
					#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
3855
					#回傳結果:
3855
					#回傳結果:
3856
					#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
3856
					#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
Line 3858... Line 3858...
3858
					#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3858
					#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
3859
					#必填參數:
3859
					#必填參數:
3860
					$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
3860
					$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
3861
					$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("foreignKeyReferenceTable","foreignKeyReferenceColumn");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
3861
					$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("foreignKeyReferenceTable","foreignKeyReferenceColumn");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
3862
					#可省略參數:
3862
					#可省略參數:
3863
					#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
3863
					#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
3864
					#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
3864
					#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
3865
					$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
3865
					$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
3866
					unset($conf["variableCheck"]["isexistMuti"]);
3866
					unset($conf["variableCheck"]["isexistMuti"]);
3867
					
3867
 
3868
					#如果檢查失敗
3868
					#如果檢查失敗
3869
					if($checkResult["status"]=="false"){
3869
					if($checkResult["status"]=="false"){
3870
						
3870
 
3871
						#設置執行失敗的訊息
3871
						#設置執行失敗的訊息
3872
						$result["status"]="false";
3872
						$result["status"]="false";
3873
						
3873
 
3874
						#設置錯誤訊息
3874
						#設置錯誤訊息
3875
						$result["error"]=$checkResult;
3875
						$result["error"]=$checkResult;
3876
						
3876
 
3877
						#回傳結果
3877
						#回傳結果
3878
						return $result;
3878
						return $result;
3879
						
3879
 
3880
						}#if end
3880
						}#if end
3881
					
3881
 
3882
					#如果檢查不通過
3882
					#如果檢查不通過
3883
					if($checkResult["passed"]=="false"){
3883
					if($checkResult["passed"]=="false"){
3884
						
3884
 
3885
						#設置執行失敗的訊息
3885
						#設置執行失敗的訊息
3886
						$result["status"]="false";
3886
						$result["status"]="false";
3887
						
3887
 
3888
						#設置錯誤訊息
3888
						#設置錯誤訊息
3889
						$result["error"]=$checkResult;
3889
						$result["error"]=$checkResult;
3890
						
3890
 
3891
						#回傳結果
3891
						#回傳結果
3892
						return $result;
3892
						return $result;
3893
						
3893
 
3894
						}#if end
3894
						}#if end
3895
					
3895
 
3896
					#如果 $conf["foreignKeyUpdateAction"] 不存在
3896
					#如果 $conf["foreignKeyUpdateAction"] 不存在
3897
					if(!isset($conf["foreignKeyUpdateAction"])){
3897
					if(!isset($conf["foreignKeyUpdateAction"])){
3898
						
3898
 
3899
						#則預設為"CASCADE"將有所關聯的紀錄行也會進行刪除或修改。
3899
						#則預設為"CASCADE"將有所關聯的紀錄行也會進行刪除或修改。
3900
						$conf["foreignKeyUpdateAction"]="CASCADE";#若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
3900
						$conf["foreignKeyUpdateAction"]="CASCADE";#若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
3901
						
3901
 
3902
						}#if end
3902
						}#if end
3903
					
3903
 
3904
					#如果 $conf["foreignKeyDeleteAction"] 沒有設定
3904
					#如果 $conf["foreignKeyDeleteAction"] 沒有設定
3905
					if(!isset($conf["foreignKeyDeleteAction"])){
3905
					if(!isset($conf["foreignKeyDeleteAction"])){
3906
						
3906
 
3907
						#預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。
3907
						#預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。
3908
						$conf["foreignKeyDeleteAction"]="SET NULL";#若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
3908
						$conf["foreignKeyDeleteAction"]="SET NULL";#若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
3909
						
3909
 
3910
						}#if end
3910
						}#if end
3911
					
3911
 
3912
					#檢查目標欄位的 key constraint 名稱
3912
					#檢查目標欄位的 key constraint 名稱
3913
					#取得其key為何種
3913
					#取得其key為何種
3914
					#函式說明:
3914
					#函式說明:
3915
					#取得資料表所有欄位的詳細資訊
3915
					#取得資料表所有欄位的詳細資訊
3916
					#回傳的內容:
3916
					#回傳的內容:
Line 3944... Line 3944...
3944
					$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];
3944
					$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];
3945
					$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];
3945
					$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];
3946
					$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];
3946
					$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];
3947
					$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];
3947
					$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];
3948
					#可省略參數:
3948
					#可省略參數:
3949
					
3949
 
3950
					#如果 $conf["dbPassword"] 有設定
3950
					#如果 $conf["dbPassword"] 有設定
3951
					if(isset($conf["dbPassword"])){
3951
					if(isset($conf["dbPassword"])){
3952
						
3952
 
3953
						#套用連限時的密碼
3953
						#套用連限時的密碼
3954
						$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];
3954
						$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];
3955
						
3955
 
3956
						}#if end
3956
						}#if end
3957
								
3957
 
3958
					#如果有設定 $conf["dbPort"]	
3958
					#如果有設定 $conf["dbPort"]
3959
					if(isset($conf["dbPort"])){
3959
					if(isset($conf["dbPort"])){
3960
					
3960
 
3961
						#設定 $conf["dbPort"]
3961
						#設定 $conf["dbPort"]
3962
						$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
3962
						$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
3963
					
3963
 
3964
						}#if end			
3964
						}#if end
3965
								
3965
 
3966
					$tableColumnDetial=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
3966
					$tableColumnDetial=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
3967
					unset($conf["db"]["getTableColumnDetailInfo"]);#卸除變數,避免錯誤產生.
3967
					unset($conf["db"]["getTableColumnDetailInfo"]);#卸除變數,避免錯誤產生.
3968
						
3968
 
3969
					#如果取得資料表結構失敗
3969
					#如果取得資料表結構失敗
3970
					if($tableColumnDetial["status"]=="false"){
3970
					if($tableColumnDetial["status"]=="false"){
3971
						
3971
 
3972
						#設置執行不正常
3972
						#設置執行不正常
3973
						$result["status"]="false";
3973
						$result["status"]="false";
3974
						
3974
 
3975
						#設置執行錯誤訊息
3975
						#設置執行錯誤訊息
3976
						$result["error"]=$tableColumnDetial;
3976
						$result["error"]=$tableColumnDetial;
3977
						
3977
 
3978
						#回傳結果
3978
						#回傳結果
3979
						return $result;
3979
						return $result;
3980
						
3980
 
3981
						}#if end	
3981
						}#if end
3982
					
3982
 
3983
					#依據設定將該欄位設定為foreign key
3983
					#依據設定將該欄位設定為foreign key
3984
					
3984
 
3985
					#設定其參照的資料表與欄位的sql語法
3985
					#設定其參照的資料表與欄位的sql語法
3986
					$sql="alter table `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` add FOREIGN KEY(`".$tableColumnDetial["key"][$conf["newColumnName"]]."`) REFERENCES `".$conf["foreignKeyDb"]."`.`".$conf["foreignKeyReferenceTable"]."`(`".$conf["foreignKeyReferenceColumn"]."`) ON UPDATE ".$conf["foreignKeyUpdateAction"]." ON DELETE ".$conf["foreignKeyDeleteAction"];
3986
					$sql="alter table `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` add FOREIGN KEY(`".$tableColumnDetial["key"][$conf["newColumnName"]]."`) REFERENCES `".$conf["foreignKeyDb"]."`.`".$conf["foreignKeyReferenceTable"]."`(`".$conf["foreignKeyReferenceColumn"]."`) ON UPDATE ".$conf["foreignKeyUpdateAction"]." ON DELETE ".$conf["foreignKeyDeleteAction"];
3987
																	
-
 
-
 
3987
 
3988
					#執行 sql 語法
3988
					#執行 sql 語法
3989
					#函式說明:
3989
					#函式說明:
3990
					#執行mysql指令
3990
					#執行mysql指令
3991
					#回傳結果::
3991
					#回傳結果::
3992
					#$result["status"],"true"為執行成功;"false"為執行失敗。
3992
					#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 3996... Line 3996...
3996
					#查詢號的解果,需要解析。
3996
					#查詢號的解果,需要解析。
3997
					#必填參數:
3997
					#必填參數:
3998
					$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3998
					$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
3999
					$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
3999
					$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
4000
					$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
4000
					$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
4001
					#可省略參數: 
4001
					#可省略參數:
4002
					
4002
 
4003
					#如果有設定連線密碼
4003
					#如果有設定連線密碼
4004
					if(isset($conf["dbPassword"])){
4004
					if(isset($conf["dbPassword"])){
4005
						
4005
 
4006
						$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4006
						$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4007
						
4007
 
4008
						}#if end
4008
						}#if end
4009
											
4009
 
4010
					#$conf["db"]["execMysqlQuery"]["dbName"]=$conf["selectedDataBaseName"];#為是否要指定資料庫,預設不指定.
4010
					#$conf["db"]["execMysqlQuery"]["dbName"]=$conf["selectedDataBaseName"];#為是否要指定資料庫,預設不指定.
4011
					
4011
 
4012
					#如果有設定 $conf["dbPort"]	
4012
					#如果有設定 $conf["dbPort"]
4013
					if(isset($conf["dbPort"])){
4013
					if(isset($conf["dbPort"])){
4014
					
4014
 
4015
						#設定 $conf["dbPort"]
4015
						#設定 $conf["dbPort"]
4016
						$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4016
						$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4017
					
4017
 
4018
						}#if end	
4018
						}#if end
4019
					
4019
 
4020
					$sqlExecResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
4020
					$sqlExecResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
4021
					unset($conf["db"]["execMysqlQuery"]);
4021
					unset($conf["db"]["execMysqlQuery"]);
4022
					
4022
 
4023
					#var_dump($sqlExecResult);
4023
					#var_dump($sqlExecResult);
4024
					
4024
 
4025
					#取得執行的sql語法
4025
					#取得執行的sql語法
4026
					$result["sql"][]=$sqlExecResult["queryString"];
4026
					$result["sql"][]=$sqlExecResult["queryString"];
4027
					
4027
 
4028
					#如果執行 sql 語法錯誤
4028
					#如果執行 sql 語法錯誤
4029
					if($sqlExecResult["status"]=="false"){
4029
					if($sqlExecResult["status"]=="false"){
4030
						
4030
 
4031
						#echo "fasle";
4031
						#echo "fasle";
4032
						
4032
 
4033
						#設定執行失敗的識別
4033
						#設定執行失敗的識別
4034
						$result["status"]="false";
4034
						$result["status"]="false";
4035
						
4035
 
4036
						#設定錯誤訊息
4036
						#設定錯誤訊息
4037
						$result["error"]=$sqlExecResult;
4037
						$result["error"]=$sqlExecResult;
4038
						
4038
 
4039
						#回傳結果
4039
						#回傳結果
4040
						return $result;
4040
						return $result;
4041
						
4041
 
4042
						}#if end					
4042
						}#if end
4043
								
4043
 
4044
					#跳出 foreign key
4044
					#跳出 foreign key
4045
					break;
4045
					break;
4046
								
4046
 
4047
				#如果不是以上參數
4047
				#如果不是以上參數
4048
				default:
4048
				default:
4049
							
4049
 
4050
					#設定執行錯誤的識別
4050
					#設定執行錯誤的識別
4051
					$result["status"]="false";
4051
					$result["status"]="false";
4052
								
4052
 
4053
					#設定錯誤訊息
4053
					#設定錯誤訊息
4054
					$result["error"]="可用的鍵型為index、foregin key、primary key";
4054
					$result["error"]="可用的鍵型為index、foregin key、primary key";
4055
								
4055
 
4056
					#回傳結果
4056
					#回傳結果
4057
					return $result;
4057
					return $result;
4058
					
4058
 
4059
				}#switch end
4059
				}#switch end
4060
										
4060
 
4061
			}#if end
4061
			}#if end
4062
			
4062
 
4063
		#執行到這邊代表執行成功
4063
		#執行到這邊代表執行成功
4064
		#設定執行成功的識別
4064
		#設定執行成功的識別
4065
		$result["status"]="true";
4065
		$result["status"]="true";
4066
			
4066
 
4067
		#回傳結果
4067
		#回傳結果
4068
		return $result;
4068
		return $result;
4069
		
4069
 
4070
		}#function editColumn end
4070
		}#function editColumn end
4071
 
4071
 
4072
	/*
4072
	/*
4073
	#函式說明:
4073
	#函式說明:
4074
	#新增資料表的欄位
4074
	#新增資料表的欄位
Line 4098... Line 4098...
4098
	#無.
4098
	#無.
4099
	#備註:
4099
	#備註:
4100
	#無.
4100
	#無.
4101
	*/
4101
	*/
4102
	public static function setColumnIndex($conf){
4102
	public static function setColumnIndex($conf){
4103
		
4103
 
4104
		#初始化要回傳的內容
4104
		#初始化要回傳的內容
4105
		$result=array();
4105
		$result=array();
4106
 
4106
 
4107
		#取得當前執行的函數名稱
4107
		#取得當前執行的函數名稱
4108
		$result["function"]=__FUNCTION__;
4108
		$result["function"]=__FUNCTION__;
4109
 
4109
 
4110
		#如果 $conf 不為陣列
4110
		#如果 $conf 不為陣列
4111
		if(gettype($conf)!="array"){
4111
		if(gettype($conf)!="array"){
4112
			
4112
 
4113
			#設置執行失敗
4113
			#設置執行失敗
4114
			$result["status"]="false";
4114
			$result["status"]="false";
4115
			
4115
 
4116
			#設置執行錯誤訊息
4116
			#設置執行錯誤訊息
4117
			$result["error"][]="\$conf變數須為陣列形態";
4117
			$result["error"][]="\$conf變數須為陣列形態";
4118
 
4118
 
4119
			#如果傳入的參數為 null
4119
			#如果傳入的參數為 null
4120
			if($conf==null){
4120
			if($conf==null){
4121
				
4121
 
4122
				#設置執行錯誤訊息
4122
				#設置執行錯誤訊息
4123
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4123
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4124
				
4124
 
4125
				}#if end
4125
				}#if end
4126
 
4126
 
4127
			#回傳結果
4127
			#回傳結果
4128
			return $result;
4128
			return $result;
4129
			
4129
 
4130
			}#if end
4130
			}#if end
4131
		
4131
 
4132
		#函式說明:
4132
		#函式說明:
4133
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
4133
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
4134
		#回傳結果:
4134
		#回傳結果:
4135
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
4135
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
4136
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
4136
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
4137
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
4137
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
4138
		#必填參數:
4138
		#必填參數:
4139
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
4139
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
4140
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","indexedColumnName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
4140
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","indexedColumnName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
4141
		#可省略參數:
4141
		#可省略參數:
4142
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
4142
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
4143
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
4143
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
4144
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
4144
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
4145
		unset($conf["variableCheck"]["isexistMuti"]);
4145
		unset($conf["variableCheck"]["isexistMuti"]);
4146
		
4146
 
4147
		#如果檢查不通過
4147
		#如果檢查不通過
4148
		if($checkResult["passed"]=="false"){
4148
		if($checkResult["passed"]=="false"){
4149
			
4149
 
4150
			#設置執行失敗的訊息
4150
			#設置執行失敗的訊息
4151
			$result["status"]="false";
4151
			$result["status"]="false";
4152
			
4152
 
4153
			#設置錯誤訊息
4153
			#設置錯誤訊息
4154
			$result["error"]=$checkResult;
4154
			$result["error"]=$checkResult;
4155
			
4155
 
4156
			#回傳結果
4156
			#回傳結果
4157
			return $result;
4157
			return $result;
4158
			
4158
 
4159
			}#if end
4159
			}#if end
4160
		
4160
 
4161
		#查詢該欄位是否已經是index了
4161
		#查詢該欄位是否已經是index了
4162
		#函式說明:
4162
		#函式說明:
4163
		#取得資料表所有欄位的詳細資訊
4163
		#取得資料表所有欄位的詳細資訊
4164
		#回傳的內容:
4164
		#回傳的內容:
4165
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
4165
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
Line 4196... Line 4196...
4196
		$conf["db::getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
4196
		$conf["db::getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
4197
		$conf["db::getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
4197
		$conf["db::getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
4198
		$conf["db::getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
4198
		$conf["db::getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
4199
		$conf["db::getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
4199
		$conf["db::getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
4200
		#可省略參數:
4200
		#可省略參數:
4201
		
4201
 
4202
		#如果 $conf["dbPassword"] 有設定
4202
		#如果 $conf["dbPassword"] 有設定
4203
		if(isset($conf["dbPassword"])){
4203
		if(isset($conf["dbPassword"])){
4204
			
4204
 
4205
			#設定其密碼
4205
			#設定其密碼
4206
			$conf["db::getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4206
			$conf["db::getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4207
			
4207
 
4208
			}#if end
4208
			}#if end
4209
			
4209
 
4210
		#如果有設定 $conf["dbPort"]	
4210
		#如果有設定 $conf["dbPort"]
4211
		if(isset($conf["dbPort"])){
4211
		if(isset($conf["dbPort"])){
4212
		
4212
 
4213
			#設定 $conf["dbPort"]
4213
			#設定 $conf["dbPort"]
4214
			$conf["db::getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
4214
			$conf["db::getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
4215
		
4215
 
4216
			}#if end
4216
			}#if end
4217
		
4217
 
4218
		#備註:
4218
		#備註:
4219
		#如果forign key參照的是別的資料庫,將無法取得參照的資料庫名稱?
4219
		#如果forign key參照的是別的資料庫,將無法取得參照的資料庫名稱?
4220
		$getTableColumnDetailInfo=db::getTableColumnDetailInfo($conf["db::getTableColumnDetailInfo"]);
4220
		$getTableColumnDetailInfo=db::getTableColumnDetailInfo($conf["db::getTableColumnDetailInfo"]);
4221
		unset($conf["db::getTableColumnDetailInfo"]);	
4221
		unset($conf["db::getTableColumnDetailInfo"]);
4222
			
4222
 
4223
		#如果取得資料表資訊失敗
4223
		#如果取得資料表資訊失敗
4224
		if($getTableColumnDetailInfo["status"]=="false"){
4224
		if($getTableColumnDetailInfo["status"]=="false"){
4225
			
4225
 
4226
			#設置錯誤訊息
4226
			#設置錯誤訊息
4227
			$result["status"]="false";
4227
			$result["status"]="false";
4228
			
4228
 
4229
			#設置錯誤提示
4229
			#設置錯誤提示
4230
			$result["error"]=$getTableColumnDetailInfo;
4230
			$result["error"]=$getTableColumnDetailInfo;
4231
			
4231
 
4232
			#回傳結果
4232
			#回傳結果
4233
			return $result;
4233
			return $result;
4234
			
4234
 
4235
			}#if end	
4235
			}#if end
4236
			
4236
 
4237
		#如果該欄位已經是index了
4237
		#如果該欄位已經是index了
4238
		if(isset($getTableColumnDetailInfo["key"][$conf["indexedColumnName"]])){
4238
		if(isset($getTableColumnDetailInfo["key"][$conf["indexedColumnName"]])){
4239
			
4239
 
4240
			#設置執行正常
4240
			#設置執行正常
4241
			$result["status"]="true";
4241
			$result["status"]="true";
4242
			
4242
 
4243
			#設置警告提示
4243
			#設置警告提示
4244
			$result["warning"][]="已經是index key了";
4244
			$result["warning"][]="已經是index key了";
4245
			
4245
 
4246
			#回傳結果
4246
			#回傳結果
4247
			return $result;
4247
			return $result;
4248
			
4248
 
4249
			}#if end
4249
			}#if end
4250
			
4250
 
4251
		#組合sql語言
4251
		#組合sql語言
4252
		$sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." add index(`".$conf["indexedColumnName"]."`)";
4252
		$sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." add index(`".$conf["indexedColumnName"]."`)";
4253
		
4253
 
4254
		#執行sql語法
4254
		#執行sql語法
4255
		#函式說明:
4255
		#函式說明:
4256
		#執行mysql指令
4256
		#執行mysql指令
4257
		#回傳結果::
4257
		#回傳結果::
4258
		#$result["status"],"true"為執行成功;"false"為執行失敗。
4258
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 4263... Line 4263...
4263
		#必填參數:
4263
		#必填參數:
4264
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
4264
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
4265
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
4265
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
4266
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
4266
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
4267
		#可省略參數:
4267
		#可省略參數:
4268
		
4268
 
4269
		#如果 $conf["dbPassword"] 有設定
4269
		#如果 $conf["dbPassword"] 有設定
4270
		if(isset($conf["dbPassword"])){
4270
		if(isset($conf["dbPassword"])){
4271
			
4271
 
4272
			#設定其密碼
4272
			#設定其密碼
4273
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4273
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4274
			
4274
 
4275
			}#if end
4275
			}#if end
4276
			
4276
 
4277
		#如果有設定 $conf["dbPort"]	
4277
		#如果有設定 $conf["dbPort"]
4278
		if(isset($conf["dbPort"])){
4278
		if(isset($conf["dbPort"])){
4279
		
4279
 
4280
			#設定 $conf["dbPort"]
4280
			#設定 $conf["dbPort"]
4281
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4281
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4282
		
4282
 
4283
			}#if end
4283
			}#if end
4284
					
4284
 
4285
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
4285
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
4286
		unset($conf["db"]["execMysqlQuery"]);
4286
		unset($conf["db"]["execMysqlQuery"]);
4287
		
4287
 
4288
		#取得執行的sql語法
4288
		#取得執行的sql語法
4289
		$result["sql"]=$queryResult["queryString"];
4289
		$result["sql"]=$queryResult["queryString"];
4290
		
4290
 
4291
		#如果有錯誤
4291
		#如果有錯誤
4292
		if($queryResult["status"]=="false"){
4292
		if($queryResult["status"]=="false"){
4293
			
4293
 
4294
			#設置錯誤訊息
4294
			#設置錯誤訊息
4295
			$result["status"]="false";
4295
			$result["status"]="false";
4296
			
4296
 
4297
			#設置錯誤提示
4297
			#設置錯誤提示
4298
			$result["error"]=$queryResult;
4298
			$result["error"]=$queryResult;
4299
			
4299
 
4300
			#回傳結果
4300
			#回傳結果
4301
			return $result;
4301
			return $result;
4302
			
4302
 
4303
			}#if end
4303
			}#if end
4304
			
4304
 
4305
		#執行到這邊代表執行成功
4305
		#執行到這邊代表執行成功
4306
		
4306
 
4307
		#設置成功訊息
4307
		#設置成功訊息
4308
		$result["status"]="true";
4308
		$result["status"]="true";
4309
			
4309
 
4310
		#回傳結果
4310
		#回傳結果
4311
		return $result;
4311
		return $result;
4312
		
4312
 
4313
		}#function setColumnIndex end
4313
		}#function setColumnIndex end
4314
 
4314
 
4315
	/*
4315
	/*
4316
	#函式說明:
4316
	#函式說明:
4317
	#取得資料表所有欄位的詳細資訊
4317
	#取得資料表所有欄位的詳細資訊
Line 4365... Line 4365...
4365
	#無.
4365
	#無.
4366
	#備註:
4366
	#備註:
4367
	#如果forign key參照的是別的資料庫,將無法取得參照的資料庫名稱?
4367
	#如果forign key參照的是別的資料庫,將無法取得參照的資料庫名稱?
4368
	*/
4368
	*/
4369
	public static function getTableColumnDetailInfo(&$conf){
4369
	public static function getTableColumnDetailInfo(&$conf){
4370
		
4370
 
4371
		#初始化要回傳的內容
4371
		#初始化要回傳的內容
4372
		$result=array();
4372
		$result=array();
4373
 
4373
 
4374
		#取得當前執行的函數名稱
4374
		#取得當前執行的函數名稱
4375
		$result["function"]=__FUNCTION__;
4375
		$result["function"]=__FUNCTION__;
4376
 
4376
 
4377
		#如果 $conf 不為陣列
4377
		#如果 $conf 不為陣列
4378
		if(gettype($conf)!="array"){
4378
		if(gettype($conf)!="array"){
4379
			
4379
 
4380
			#設置執行失敗
4380
			#設置執行失敗
4381
			$result["status"]="false";
4381
			$result["status"]="false";
4382
			
4382
 
4383
			#設置執行錯誤訊息
4383
			#設置執行錯誤訊息
4384
			$result["error"][]="\$conf變數須為陣列形態";
4384
			$result["error"][]="\$conf變數須為陣列形態";
4385
 
4385
 
4386
			#如果傳入的參數為 null
4386
			#如果傳入的參數為 null
4387
			if($conf==null){
4387
			if($conf==null){
4388
				
4388
 
4389
				#設置執行錯誤訊息
4389
				#設置執行錯誤訊息
4390
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4390
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
4391
				
4391
 
4392
				}#if end
4392
				}#if end
4393
 
4393
 
4394
			#回傳結果
4394
			#回傳結果
4395
			return $result;
4395
			return $result;
4396
			
4396
 
4397
			}#if end
4397
			}#if end
4398
		
4398
 
4399
		#檢查參數設定是否正確
4399
		#檢查參數設定是否正確
4400
		#函式說明:
4400
		#函式說明:
4401
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4401
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
4402
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4402
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
4403
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
4403
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 4424... Line 4424...
4424
		#$conf["canBeEmptyString"]="false";
4424
		#$conf["canBeEmptyString"]="false";
4425
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
4425
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
4426
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4426
		#$conf["skipableVariableCanNotBeEmpty"]=array();
4427
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4427
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
4428
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
4428
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
4429
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
4429
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
4430
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
4430
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
4431
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4431
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
4432
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
4432
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
4433
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
4433
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
4434
		#$conf["arrayCountEqualCheck"][]=array();
4434
		#$conf["arrayCountEqualCheck"][]=array();
4435
		#參考資料:
4435
		#參考資料:
4436
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4436
		#array_keys=>http://php.net/manual/en/function.array-keys.php
4437
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4437
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
4438
		unset($conf["variableCheck::checkArguments"]);
4438
		unset($conf["variableCheck::checkArguments"]);
4439
		
4439
 
4440
		#如果檢查失敗
4440
		#如果檢查失敗
4441
		if($checkArguments["passed"]==="false"){
4441
		if($checkArguments["passed"]==="false"){
4442
			
4442
 
4443
			#設置執行失敗識別
4443
			#設置執行失敗識別
4444
			$result["status"]="false";
4444
			$result["status"]="false";
4445
			
4445
 
4446
			#設置錯誤訊息陣列
4446
			#設置錯誤訊息陣列
4447
			$result["error"]=$checkArguments;
4447
			$result["error"]=$checkArguments;
4448
			
4448
 
4449
			#回傳結果
4449
			#回傳結果
4450
			return $result;
4450
			return $result;
4451
			
4451
 
4452
			}#if end
4452
			}#if end
4453
		
4453
 
4454
		#如果檢查不通過
4454
		#如果檢查不通過
4455
		if($checkArguments["passed"]==="false"){
4455
		if($checkArguments["passed"]==="false"){
4456
			
4456
 
4457
			#設置執行失敗識別
4457
			#設置執行失敗識別
4458
			$result["status"]="false";
4458
			$result["status"]="false";
4459
			
4459
 
4460
			#設置錯誤訊息陣列
4460
			#設置錯誤訊息陣列
4461
			$result["error"]=$checkArguments;
4461
			$result["error"]=$checkArguments;
4462
			
4462
 
4463
			#回傳結果
4463
			#回傳結果
4464
			return $result;
4464
			return $result;
4465
			
4465
 
4466
			}#if end
4466
			}#if end
4467
		
4467
 
4468
		#檢查資料庫 $conf["selectedDataBase"] 是否可以存取
4468
		#檢查資料庫 $conf["selectedDataBase"] 是否可以存取
4469
		#確認資料庫存在或可以被存取
4469
		#確認資料庫存在或可以被存取
4470
		#函式說明:
4470
		#函式說明:
4471
		#執行mysql指令
4471
		#執行mysql指令
4472
		#回傳結果:
4472
		#回傳結果:
Line 4483... Line 4483...
4483
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
4483
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
4484
		#$conf["db::execMysqlQuery"]["dbLink"]=$conf["connectInformation"];
4484
		#$conf["db::execMysqlQuery"]["dbLink"]=$conf["connectInformation"];
4485
		#$conf["dbAddress"],字串,爲mysql-Server的位置。
4485
		#$conf["dbAddress"],字串,爲mysql-Server的位置。
4486
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];
4486
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];
4487
		#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
4487
		#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
4488
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"]; 
4488
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];
4489
		
4489
 
4490
		#如果存在 $conf["dbPassword"]
4490
		#如果存在 $conf["dbPassword"]
4491
		if(isset($conf["dbPassword"])){
4491
		if(isset($conf["dbPassword"])){
4492
		
4492
 
4493
			#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
4493
			#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
4494
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];
4494
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];
4495
			
4495
 
4496
			}#if end
4496
			}#if end
4497
			
4497
 
4498
		#$conf["dbName"],字串,爲要連的資料庫名稱
4498
		#$conf["dbName"],字串,爲要連的資料庫名稱
4499
		#$conf["dbName"]="";
4499
		#$conf["dbName"]="";
4500
		
4500
 
4501
		#如果存在 $dbPort
4501
		#如果存在 $dbPort
4502
		if(isset($conf["dbPort"])){
4502
		if(isset($conf["dbPort"])){
4503
		
4503
 
4504
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
4504
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
4505
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4505
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4506
		
4506
 
4507
			}#if end
4507
			}#if end
4508
		
4508
 
4509
		#$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
4509
		#$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
4510
		#$conf["autoClose"]="true";
4510
		#$conf["autoClose"]="true";
4511
		#參考資料:
4511
		#參考資料:
4512
		#無.
4512
		#無.
4513
		#備註:
4513
		#備註:
Line 4515... Line 4515...
4515
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
4515
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
4516
		unset($conf["db::execMysqlQuery"]);
4516
		unset($conf["db::execMysqlQuery"]);
4517
 
4517
 
4518
		#如果執行失敗
4518
		#如果執行失敗
4519
		if($execMysqlQuery["status"]==="false"){
4519
		if($execMysqlQuery["status"]==="false"){
4520
		
4520
 
4521
			#設置連線失敗的提示
4521
			#設置連線失敗的提示
4522
			$result["error"][]="檢查資料庫可否存取出錯";
4522
			$result["error"][]="檢查資料庫可否存取出錯";
4523
			
4523
 
4524
			#設置錯誤訊息
4524
			#設置錯誤訊息
4525
			$result["error"][]=$execMysqlQuery["error"];
4525
			$result["error"][]=$execMysqlQuery["error"];
4526
			
4526
 
4527
			#設置執行失敗
4527
			#設置執行失敗
4528
			$result["status"]="false";
4528
			$result["status"]="false";
4529
			
4529
 
4530
			#回傳結果
4530
			#回傳結果
4531
			return $result;
4531
			return $result;
4532
			
4532
 
4533
			}#if end
4533
			}#if end
4534
		
4534
 
4535
		#解析 $execMysqlQuery["queryResource"] 看是否存在要存取的資料庫
4535
		#解析 $execMysqlQuery["queryResource"] 看是否存在要存取的資料庫
4536
		#函式說明:
4536
		#函式說明:
4537
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
4537
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
4538
		#回傳結果:
4538
		#回傳結果:
4539
		#$result["status"],執行結果"true"為成功;"false"為失敗
4539
		#$result["status"],執行結果"true"為成功;"false"為失敗
Line 4566... Line 4566...
4566
		$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
4566
		$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
4567
		unset($conf["db::sendQueryDataToVariabele"]);
4567
		unset($conf["db::sendQueryDataToVariabele"]);
4568
 
4568
 
4569
		#如果執行異常
4569
		#如果執行異常
4570
		if($sendQueryDataToVariabele["status"]==="false"){
4570
		if($sendQueryDataToVariabele["status"]==="false"){
4571
		
4571
 
4572
			#設置連線失敗的提示
4572
			#設置連線失敗的提示
4573
			$result["error"][]="檢查資料庫可否存取出錯";
4573
			$result["error"][]="檢查資料庫可否存取出錯";
4574
			
4574
 
4575
			#設置錯誤訊息
4575
			#設置錯誤訊息
4576
			$result["error"][]=$sendQueryDataToVariabele["error"];
4576
			$result["error"][]=$sendQueryDataToVariabele["error"];
4577
			
4577
 
4578
			#設置執行失敗
4578
			#設置執行失敗
4579
			$result["status"]="false";
4579
			$result["status"]="false";
4580
			
4580
 
4581
			#回傳結果
4581
			#回傳結果
4582
			return $result;
4582
			return $result;
4583
			
4583
 
4584
			}#if end
4584
			}#if end
4585
			
4585
 
4586
		#檢查資料庫是否可以存取
4586
		#檢查資料庫是否可以存取
4587
		#函式說明:
4587
		#函式說明:
4588
		#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
4588
		#檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
4589
		#回傳結果:
4589
		#回傳結果:
4590
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
4590
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
Line 4605... Line 4605...
4605
		#無.
4605
		#無.
4606
		#備註:
4606
		#備註:
4607
		#無.
4607
		#無.
4608
		$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
4608
		$getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
4609
		unset($conf["search::getEqualVar"]);
4609
		unset($conf["search::getEqualVar"]);
4610
		
4610
 
4611
		#如果執行失敗
4611
		#如果執行失敗
4612
		if($getEqualVar["status"]==="false"){
4612
		if($getEqualVar["status"]==="false"){
4613
		
4613
 
4614
			#設置錯誤的提示
4614
			#設置錯誤的提示
4615
			$result["error"][]="檢查資料庫可否存取出錯";
4615
			$result["error"][]="檢查資料庫可否存取出錯";
4616
			
4616
 
4617
			#設置錯誤訊息
4617
			#設置錯誤訊息
4618
			$result["error"][]=$getEqualVar["error"];
4618
			$result["error"][]=$getEqualVar["error"];
4619
			
4619
 
4620
			#設置執行失敗
4620
			#設置執行失敗
4621
			$result["status"]="false";
4621
			$result["status"]="false";
4622
			
4622
 
4623
			#回傳結果
4623
			#回傳結果
4624
			return $result;
4624
			return $result;
4625
		
4625
 
4626
			}#if end
4626
			}#if end
4627
			
4627
 
4628
		#如果無法存取資料庫
4628
		#如果無法存取資料庫
4629
		if($getEqualVar["founded"]==="false"){
4629
		if($getEqualVar["founded"]==="false"){
4630
		
4630
 
4631
			#設置錯誤的提示
4631
			#設置錯誤的提示
4632
			$result["error"][]="資料庫(".$conf["selectedDataBase"].")無法存取";
4632
			$result["error"][]="資料庫(".$conf["selectedDataBase"].")無法存取";
4633
			
4633
 
4634
			#設置錯誤訊息
4634
			#設置錯誤訊息
4635
			$result["error"][]=$getEqualVar;
4635
			$result["error"][]=$getEqualVar;
4636
			
4636
 
4637
			#設置執行失敗
4637
			#設置執行失敗
4638
			$result["status"]="false";
4638
			$result["status"]="false";
4639
			
4639
 
4640
			#回傳結果
4640
			#回傳結果
4641
			return $result;
4641
			return $result;
4642
		
4642
 
4643
			}#if end
4643
			}#if end
4644
		
4644
 
4645
		#設置要執行的sql語法
4645
		#設置要執行的sql語法
4646
		$sql="SHOW CREATE TABLE ".$conf["selectedDataBase"].".".$conf["selectedDataTable"].";";
4646
		$sql="SHOW CREATE TABLE ".$conf["selectedDataBase"].".".$conf["selectedDataTable"].";";
4647
		
4647
 
4648
		#執行sql語法
4648
		#執行sql語法
4649
		#函式說明:
4649
		#函式說明:
4650
		#執行mysql指令
4650
		#執行mysql指令
4651
		#回傳結果:
4651
		#回傳結果:
4652
		#$result["status"],"true"為執行成功;"false"為執行失敗。
4652
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 4657... Line 4657...
4657
		#必填參數:
4657
		#必填參數:
4658
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
4658
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
4659
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
4659
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
4660
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
4660
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
4661
		#可省略參數:
4661
		#可省略參數:
4662
		
4662
 
4663
		#如果 $conf["dbPassword"] 有設定
4663
		#如果 $conf["dbPassword"] 有設定
4664
		if(isset($conf["dbPassword"])){
4664
		if(isset($conf["dbPassword"])){
4665
			
4665
 
4666
			#設定其密碼
4666
			#設定其密碼
4667
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4667
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
4668
			
4668
 
4669
			}#if end
4669
			}#if end
4670
		
4670
 
4671
		#如果有設定 $conf["dbPort"]
4671
		#如果有設定 $conf["dbPort"]
4672
		if(isset($conf["dbPort"])){
4672
		if(isset($conf["dbPort"])){
4673
		
4673
 
4674
			#設定 $conf["dbPort"]
4674
			#設定 $conf["dbPort"]
4675
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4675
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
4676
		
4676
 
4677
			}#if end
4677
			}#if end
4678
		
4678
 
4679
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
4679
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
4680
		unset($conf["db"]["execMysqlQuery"]);
4680
		unset($conf["db"]["execMysqlQuery"]);
4681
		
4681
 
4682
		#如果有錯誤
4682
		#如果有錯誤
4683
		if($queryResult["status"]=="false"){
4683
		if($queryResult["status"]=="false"){
4684
			
4684
 
4685
			#設置錯誤訊息
4685
			#設置錯誤訊息
4686
			$result["status"]="false";
4686
			$result["status"]="false";
4687
			
4687
 
4688
			#設置錯誤提示
4688
			#設置錯誤提示
4689
			$result["error"]=$queryResult;
4689
			$result["error"]=$queryResult;
4690
			
4690
 
4691
			#回傳結果
4691
			#回傳結果
4692
			return $result;
4692
			return $result;
4693
			
4693
 
4694
			}#if end
4694
			}#if end
4695
			
4695
 
4696
		#解析mysql resource
4696
		#解析mysql resource
4697
		
4697
 
4698
		#初始化暫存的變數
4698
		#初始化暫存的變數
4699
		$temp="";
4699
		$temp="";
4700
		
4700
 
4701
		#將讀取到的資料一次只讀取一列
4701
		#將讀取到的資料一次只讀取一列
4702
		while($row = mysqli_fetch_array($queryResult["queryResource"])){
4702
		while($row = mysqli_fetch_array($queryResult["queryResource"])){
4703
 
4703
 
4704
			#$i筆項列資料,則運行$i次。
4704
			#$i筆項列資料,則運行$i次。
4705
			foreach($row as $key=>$value){		
4705
			foreach($row as $key=>$value){
4706
				
4706
 
4707
				#如果key爲"Create Table"
4707
				#如果key爲"Create Table"
4708
				if($key=="Create Table"){
4708
				if($key=="Create Table"){
4709
				
4709
 
4710
					#將解析的資料內容結果放進$temp變數裏面
4710
					#將解析的資料內容結果放進$temp變數裏面
4711
					$temp=$value;	
4711
					$temp=$value;
4712
					
4712
 
4713
					}#if end
4713
					}#if end
4714
														
4714
 
4715
				}#foreach end
4715
				}#foreach end
4716
 
4716
 
4717
			}#while end
4717
			}#while end
4718
		
4718
 
4719
		#逐行解析$temp
4719
		#逐行解析$temp
4720
		#函式說明:
4720
		#函式說明:
4721
		#將多行內容的字串,依行切割
4721
		#將多行內容的字串,依行切割
4722
		#回傳的參數:
4722
		#回傳的參數:
4723
		#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
4723
		#$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
Line 4730... Line 4730...
4730
		$conf["stringProcess"]["spiltMutiLineString"]["stringIn"]=$temp;#要處理的多行文字字串。
4730
		$conf["stringProcess"]["spiltMutiLineString"]["stringIn"]=$temp;#要處理的多行文字字串。
4731
		#參考資料來源:
4731
		#參考資料來源:
4732
		#http://dragonspring.pixnet.net/blog/post/33146613-%5blinux%5d%5btips%5d%e5%8e%bb%e9%99%a4dos%e6%aa%94%e6%a1%88%e8%a1%8c%e5%b0%be%e7%9a%84%5em => windows 與 linux 換行字元
4732
		#http://dragonspring.pixnet.net/blog/post/33146613-%5blinux%5d%5btips%5d%e5%8e%bb%e9%99%a4dos%e6%aa%94%e6%a1%88%e8%a1%8c%e5%b0%be%e7%9a%84%5em => windows 與 linux 換行字元
4733
		$everyLine=stringProcess::spiltMutiLineString($conf["stringProcess"]["spiltMutiLineString"]);
4733
		$everyLine=stringProcess::spiltMutiLineString($conf["stringProcess"]["spiltMutiLineString"]);
4734
		unset($conf["stringProcess"]["spiltMutiLineString"]);
4734
		unset($conf["stringProcess"]["spiltMutiLineString"]);
4735
		
4735
 
4736
		#如果 逐行解析$temp 失敗
4736
		#如果 逐行解析$temp 失敗
4737
		if($everyLine["status"]==="false"){
4737
		if($everyLine["status"]==="false"){
4738
			
4738
 
4739
			#設置錯誤訊息
4739
			#設置錯誤訊息
4740
			$result["status"]="false";
4740
			$result["status"]="false";
4741
			
4741
 
4742
			#設置錯誤提示
4742
			#設置錯誤提示
4743
			$result["error"]=$everyLine;
4743
			$result["error"]=$everyLine;
4744
			
4744
 
4745
			#回傳結果
4745
			#回傳結果
4746
			return $result;
4746
			return $result;
4747
			
4747
 
4748
			}#if end
4748
			}#if end
4749
		
4749
 
4750
		#針對每列內容
4750
		#針對每列內容
4751
		foreach($everyLine["dataArray"] as $no => $line){
4751
		foreach($everyLine["dataArray"] as $no => $line){
4752
 
4752
 
4753
			#函式說明:
4753
			#函式說明:
4754
			#取得符合特定字首與字尾的字串
4754
			#取得符合特定字首與字尾的字串
Line 4768... Line 4768...
4768
			#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
4768
			#$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
4769
			#$conf["tailWord"]="";
4769
			#$conf["tailWord"]="";
4770
			#參考資料:
4770
			#參考資料:
4771
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
4771
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
4772
			$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
4772
			$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
4773
			unset($conf["search::getMeetConditionsString"]);			
4773
			unset($conf["search::getMeetConditionsString"]);
4774
 
4774
 
4775
			#如果執行失敗
4775
			#如果執行失敗
4776
			if($getMeetConditionsString["status"]==="false"){
4776
			if($getMeetConditionsString["status"]==="false"){
4777
 
4777
 
4778
				#設置錯誤訊息
4778
				#設置錯誤訊息
4779
				$result["status"]="false";
4779
				$result["status"]="false";
4780
				
4780
 
4781
				#設置錯誤提示
4781
				#設置錯誤提示
4782
				$result["error"]=$getMeetConditionsString;
4782
				$result["error"]=$getMeetConditionsString;
4783
				
4783
 
4784
				#回傳結果
4784
				#回傳結果
4785
				return $result;
4785
				return $result;
4786
 
4786
 
4787
				}#if end
4787
				}#if end
4788
 
4788
 
Line 4790... Line 4790...
4790
			if($getMeetConditionsString["founded"]==="true"){
4790
			if($getMeetConditionsString["founded"]==="true"){
4791
 
4791
 
4792
				#while loop
4792
				#while loop
4793
				while(true){
4793
				while(true){
4794
 
4794
 
4795
					#移除 partion 描述 - start 
4795
					#移除 partion 描述 - start
4796
 
4796
 
4797
					#如果存在該列
4797
					#如果存在該列
4798
					if(isset($everyLine["dataArray"][$no])){
4798
					if(isset($everyLine["dataArray"][$no])){
4799
 
4799
 
4800
						#卸除之
4800
						#卸除之
Line 4811... Line 4811...
4811
					else{
4811
					else{
4812
 
4812
 
4813
						//end while
4813
						//end while
4814
						break;
4814
						break;
4815
 
4815
 
4816
						}#else end						
4816
						}#else end
4817
 
4817
 
4818
					}#while loop end
4818
					}#while loop end
4819
 
4819
 
4820
				#end foreach
4820
				#end foreach
4821
				break;
4821
				break;
4822
 
4822
 
4823
				}#if end
4823
				}#if end
4824
 
4824
 
4825
			}#foreach end
4825
			}#foreach end
4826
		
4826
 
4827
		#重新更新總行數
4827
		#重新更新總行數
4828
		$everyLine["dataCounts"]=count($everyLine["dataArray"]);
4828
		$everyLine["dataCounts"]=count($everyLine["dataArray"]);
4829
 
4829
 
4830
		#取得原始輸入的多行字串
4830
		#取得原始輸入的多行字串
4831
		$result["oriInput"]=$everyLine["oriStr"];
4831
		$result["oriInput"]=$everyLine["oriStr"];
4832
		
4832
 
4833
		#取得原始的每一行
4833
		#取得原始的每一行
4834
		$result["everyLine"]=$everyLine["dataArray"];
4834
		$result["everyLine"]=$everyLine["dataArray"];
4835
		
4835
 
4836
		#取得資料表名稱
4836
		#取得資料表名稱
4837
		#函式說明:
4837
		#函式說明:
4838
		#將固定格式的字串分開,並回傳分開的結果。
4838
		#將固定格式的字串分開,並回傳分開的結果。
4839
		#回傳的參數:
4839
		#回傳的參數:
4840
		#$result["oriStr"],要分割的原始字串內容
4840
		#$result["oriStr"],要分割的原始字串內容
Line 4843... Line 4843...
4843
		#必填參數:
4843
		#必填參數:
4844
		$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][0];#要處理的字串。
4844
		$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][0];#要處理的字串。
4845
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
4845
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
4846
		$tableName=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4846
		$tableName=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4847
		unset($conf["stringProcess"]["spiltString"]);
4847
		unset($conf["stringProcess"]["spiltString"]);
4848
		
4848
 
4849
		#如果 取得資料表名稱 失敗
4849
		#如果 取得資料表名稱 失敗
4850
		if($tableName["status"]=="false"){
4850
		if($tableName["status"]=="false"){
4851
			
4851
 
4852
			#設置錯誤訊息
4852
			#設置錯誤訊息
4853
			$result["status"]="false";
4853
			$result["status"]="false";
4854
			
4854
 
4855
			#設置錯誤提示
4855
			#設置錯誤提示
4856
			$result["error"]=$tableName;
4856
			$result["error"]=$tableName;
4857
			
4857
 
4858
			#回傳結果
4858
			#回傳結果
4859
			return $result;
4859
			return $result;
4860
			
4860
 
4861
			}#if end
4861
			}#if end
4862
		
4862
 
4863
		#取得資料表名稱
4863
		#取得資料表名稱
4864
		$result["tableName"]=$tableName["dataArray"][1];
4864
		$result["tableName"]=$tableName["dataArray"][1];
4865
		
4865
 
4866
		#取得資料表用的 ENGINE 與 DEFAULT CHARSET",亦即最後一行的內容.
4866
		#取得資料表用的 ENGINE 與 DEFAULT CHARSET",亦即最後一行的內容.
4867
		#函式說明:
4867
		#函式說明:
4868
		#將固定格式的字串分開,並回傳分開的結果。
4868
		#將固定格式的字串分開,並回傳分開的結果。
4869
		#回傳的參數:
4869
		#回傳的參數:
4870
		#$result["oriStr"],要分割的原始字串內容
4870
		#$result["oriStr"],要分割的原始字串內容
Line 4873... Line 4873...
4873
		#必填參數:
4873
		#必填參數:
4874
		$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$everyLine["dataCounts"]-1];#要處理的字串。
4874
		$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$everyLine["dataCounts"]-1];#要處理的字串。
4875
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
4875
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
4876
		$engineAndCharset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4876
		$engineAndCharset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4877
		unset($conf["stringProcess"]["spiltString"]);
4877
		unset($conf["stringProcess"]["spiltString"]);
4878
		
4878
 
4879
		#如果 取得資料表用的 ENGINE與DEFAULT CHARSET" 失敗
4879
		#如果 取得資料表用的 ENGINE與DEFAULT CHARSET" 失敗
4880
		if($engineAndCharset["status"]=="false"){
4880
		if($engineAndCharset["status"]=="false"){
4881
			
4881
 
4882
			#設置錯誤訊息
4882
			#設置錯誤訊息
4883
			$result["status"]="false";
4883
			$result["status"]="false";
4884
			
4884
 
4885
			#設置錯誤提示
4885
			#設置錯誤提示
4886
			$result["error"]=$engineAndCharset;
4886
			$result["error"]=$engineAndCharset;
4887
			
4887
 
4888
			#回傳結果
4888
			#回傳結果
4889
			return $result;
4889
			return $result;
4890
			
4890
 
4891
			}#if end
4891
			}#if end
4892
		
4892
 
4893
		#get engine string
4893
		#get engine string
4894
		$engine=$engineAndCharset["dataArray"][1];
4894
		$engine=$engineAndCharset["dataArray"][1];
4895
		
4895
 
4896
		#函式說明:
4896
		#函式說明:
4897
		#將固定格式的字串分開,並回傳分開的結果。
4897
		#將固定格式的字串分開,並回傳分開的結果。
4898
		#回傳的參數:
4898
		#回傳的參數:
4899
		#$result["oriStr"],要分割的原始字串內容
4899
		#$result["oriStr"],要分割的原始字串內容
4900
		#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
4900
		#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 4902... Line 4902...
4902
		#必填參數:
4902
		#必填參數:
4903
		$conf["stringProcess"]["spiltString"]["stringIn"]=$engine;#要處理的字串。
4903
		$conf["stringProcess"]["spiltString"]["stringIn"]=$engine;#要處理的字串。
4904
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]="=";#爲以哪個符號作爲分割
4904
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]="=";#爲以哪個符號作爲分割
4905
		$engine=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4905
		$engine=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4906
		unset($conf["stringProcess"]["spiltString"]);
4906
		unset($conf["stringProcess"]["spiltString"]);
4907
		
4907
 
4908
		#如果 取得資料表用的 ENGINE與DEFAULT CHARSET" 失敗
4908
		#如果 取得資料表用的 ENGINE與DEFAULT CHARSET" 失敗
4909
		if($engine["status"]=="false"){
4909
		if($engine["status"]=="false"){
4910
			
4910
 
4911
			#設置錯誤訊息
4911
			#設置錯誤訊息
4912
			$result["status"]="false";
4912
			$result["status"]="false";
4913
			
4913
 
4914
			#設置錯誤提示
4914
			#設置錯誤提示
4915
			$result["error"]=$engine;
4915
			$result["error"]=$engine;
4916
			
4916
 
4917
			#回傳結果
4917
			#回傳結果
4918
			return $result;
4918
			return $result;
4919
			
4919
 
4920
			}#if end
4920
			}#if end
4921
		
4921
 
4922
		#如果不存在 engine
4922
		#如果不存在 engine
4923
		if(!isset($engine["dataArray"][1])){
4923
		if(!isset($engine["dataArray"][1])){
4924
 
4924
 
4925
			#設置錯誤訊息
4925
			#設置錯誤訊息
4926
			$result["status"]="false";
4926
			$result["status"]="false";
4927
			
4927
 
4928
			#設置錯誤提示
4928
			#設置錯誤提示
4929
			$result["error"]=$engine;
4929
			$result["error"]=$engine;
4930
 
4930
 
4931
			return $result;
4931
			return $result;
4932
 
4932
 
4933
			}#if end
4933
			}#if end
4934
 
4934
 
4935
		#get engine
4935
		#get engine
4936
		$result["engine"]=$engine["dataArray"][1];
4936
		$result["engine"]=$engine["dataArray"][1];
4937
		
4937
 
4938
		#取得字元編碼
4938
		#取得字元編碼
4939
		#函式說明:
4939
		#函式說明:
4940
		#將固定格式的字串分開,並回傳分開的結果。
4940
		#將固定格式的字串分開,並回傳分開的結果。
4941
		#回傳的參數:
4941
		#回傳的參數:
4942
		#$result["oriStr"],要分割的原始字串內容
4942
		#$result["oriStr"],要分割的原始字串內容
Line 4945... Line 4945...
4945
		#必填參數:
4945
		#必填參數:
4946
		$conf["stringProcess"]["spiltString"]["stringIn"]=$engineAndCharset["oriStr"];#要處理的字串。
4946
		$conf["stringProcess"]["spiltString"]["stringIn"]=$engineAndCharset["oriStr"];#要處理的字串。
4947
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]="CHARSET=";#爲以哪個符號作爲分割
4947
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]="CHARSET=";#爲以哪個符號作爲分割
4948
		$charset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4948
		$charset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4949
		unset($conf["stringProcess"]["spiltString"]);
4949
		unset($conf["stringProcess"]["spiltString"]);
4950
		
4950
 
4951
		#如果 取得字元編碼 失敗
4951
		#如果 取得字元編碼 失敗
4952
		if($charset["status"]=="false"){
4952
		if($charset["status"]=="false"){
4953
			
4953
 
4954
			#設置錯誤訊息
4954
			#設置錯誤訊息
4955
			$result["status"]="false";
4955
			$result["status"]="false";
4956
			
4956
 
4957
			#設置錯誤提示
4957
			#設置錯誤提示
4958
			$result["error"]=$charset;
4958
			$result["error"]=$charset;
4959
			
4959
 
4960
			#回傳結果
4960
			#回傳結果
4961
			return $result;
4961
			return $result;
4962
			
4962
 
4963
			}#if end
4963
			}#if end
4964
		
4964
 
4965
		#取得字元編碼
4965
		#取得字元編碼
4966
		#函式說明:
4966
		#函式說明:
4967
		#將固定格式的字串分開,並回傳分開的結果。
4967
		#將固定格式的字串分開,並回傳分開的結果。
4968
		#回傳的參數:
4968
		#回傳的參數:
4969
		#$result["oriStr"],要分割的原始字串內容
4969
		#$result["oriStr"],要分割的原始字串內容
Line 4972... Line 4972...
4972
		#必填參數:
4972
		#必填參數:
4973
		$conf["stringProcess"]["spiltString"]["stringIn"]=$charset["dataArray"][1];#要處理的字串。
4973
		$conf["stringProcess"]["spiltString"]["stringIn"]=$charset["dataArray"][1];#要處理的字串。
4974
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
4974
		$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
4975
		$charset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4975
		$charset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
4976
		unset($conf["stringProcess"]["spiltString"]);
4976
		unset($conf["stringProcess"]["spiltString"]);
4977
		
4977
 
4978
		#如果 取得字元編碼 失敗
4978
		#如果 取得字元編碼 失敗
4979
		if($charset["status"]=="false"){
4979
		if($charset["status"]=="false"){
4980
			
4980
 
4981
			#設置錯誤訊息
4981
			#設置錯誤訊息
4982
			$result["status"]="false";
4982
			$result["status"]="false";
4983
			
4983
 
4984
			#設置錯誤提示
4984
			#設置錯誤提示
4985
			$result["error"]=$charset;
4985
			$result["error"]=$charset;
4986
			
4986
 
4987
			#回傳結果
4987
			#回傳結果
4988
			return $result;
4988
			return $result;
4989
			
4989
 
4990
			}#if end
4990
			}#if end
4991
		
4991
 
4992
		#取得字元編碼
4992
		#取得字元編碼
4993
		$result["charset"]=$charset["dataArray"][0];
4993
		$result["charset"]=$charset["dataArray"][0];
4994
		
4994
 
4995
		#初始化,儲存鍵值定義的陣列變數
4995
		#初始化,儲存鍵值定義的陣列變數
4996
		$keyDefine=array();
4996
		$keyDefine=array();
4997
		
4997
 
4998
		#逐行取得各欄位詳細資料
4998
		#逐行取得各欄位詳細資料
4999
		for($i=1;$i<$everyLine["dataCounts"]-1;$i++){
4999
		for($i=1;$i<$everyLine["dataCounts"]-1;$i++){
5000
				
5000
 
5001
			#檢查開頭是否爲 "  `"
5001
			#檢查開頭是否爲 "  `"
5002
 			#函式說明:
5002
 			#函式說明:
5003
			#取得符合特定字首與字尾的字串
5003
			#取得符合特定字首與字尾的字串
5004
			#回傳結果::
5004
			#回傳結果::
5005
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
5005
			#$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
Line 5017... Line 5017...
5017
			#$conf["tailWord"]="";
5017
			#$conf["tailWord"]="";
5018
			#參考資料:
5018
			#參考資料:
5019
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
5019
			#str_spilt(),可以將字串依照字母分割成一個個陣列字串。
5020
			$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
5020
			$getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
5021
			unset($conf["search::getMeetConditionsString"]);
5021
			unset($conf["search::getMeetConditionsString"]);
5022
		
5022
 
5023
			#如果分割失敗
5023
			#如果分割失敗
5024
			if($getMeetConditionsString["status"]==="false"){
5024
			if($getMeetConditionsString["status"]==="false"){
5025
 
5025
 
5026
				#設置錯誤訊息
5026
				#設置錯誤訊息
5027
				$result["status"]="false";
5027
				$result["status"]="false";
5028
				
5028
 
5029
				#設置錯誤提示
5029
				#設置錯誤提示
5030
				$result["error"]=$getMeetConditionsString;
5030
				$result["error"]=$getMeetConditionsString;
5031
				
5031
 
5032
				#回傳結果
5032
				#回傳結果
5033
				return $result;
5033
				return $result;
5034
 
5034
 
5035
				}#if end
5035
				}#if end
5036
	
5036
 
5037
			#如果有符合的前戳
5037
			#如果有符合的前戳
5038
			if($getMeetConditionsString["founded"]==="true"){
5038
			if($getMeetConditionsString["founded"]==="true"){
5039
			
5039
 
5040
				#函式說明:
5040
				#函式說明:
5041
				#將固定格式的字串分開,並回傳分開的結果。
5041
				#將固定格式的字串分開,並回傳分開的結果。
5042
				#回傳的參數:
5042
				#回傳的參數:
5043
				#$result["oriStr"],要分割的原始字串內容
5043
				#$result["oriStr"],要分割的原始字串內容
5044
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5044
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5049... Line 5049...
5049
				$columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5049
				$columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5050
				unset($conf["stringProcess"]["spiltString"]);
5050
				unset($conf["stringProcess"]["spiltString"]);
5051
 
5051
 
5052
				#如果 分割字串失敗 失敗
5052
				#如果 分割字串失敗 失敗
5053
				if($columnString["status"]==="false"){
5053
				if($columnString["status"]==="false"){
5054
				
5054
 
5055
					#設置錯誤訊息
5055
					#設置錯誤訊息
5056
					$result["status"]="false";
5056
					$result["status"]="false";
5057
				
5057
 
5058
					#設置錯誤提示
5058
					#設置錯誤提示
5059
					$result["error"]=$columnString;
5059
					$result["error"]=$columnString;
5060
				
5060
 
5061
					#回傳結果
5061
					#回傳結果
5062
					return $result;
5062
					return $result;
5063
				
5063
 
5064
					}#if end
5064
					}#if end
5065
 
5065
 
5066
				#取得欄位名稱
5066
				#取得欄位名稱
5067
				$result["columnName"][$i]=$columnString["dataArray"][1];
5067
				$result["columnName"][$i]=$columnString["dataArray"][1];
5068
				$result["columnName"][$result["columnName"][$i]]=$result["columnName"][$i];
5068
				$result["columnName"][$result["columnName"][$i]]=$result["columnName"][$i];
Line 5082... Line 5082...
5082
				#debug
5082
				#debug
5083
				#var_dump($columnString);
5083
				#var_dump($columnString);
5084
 
5084
 
5085
				#如果 分割字串失敗 失敗
5085
				#如果 分割字串失敗 失敗
5086
				if($columnString["status"]==="false"){
5086
				if($columnString["status"]==="false"){
5087
				
5087
 
5088
					#設置錯誤訊息
5088
					#設置錯誤訊息
5089
					$result["status"]="false";
5089
					$result["status"]="false";
5090
				
5090
 
5091
					#設置錯誤提示
5091
					#設置錯誤提示
5092
					$result["error"]=$columnString;
5092
					$result["error"]=$columnString;
5093
				
5093
 
5094
					#回傳結果
5094
					#回傳結果
5095
					return $result;
5095
					return $result;
5096
				
5096
 
5097
					}#if end
5097
					}#if end
5098
		
5098
 
5099
				#取得欄位屬性與長度
5099
				#取得欄位屬性與長度
5100
				$result["columnVarTypeAndLengthLimit"][$i]=$columnString["dataArray"][0];
5100
				$result["columnVarTypeAndLengthLimit"][$i]=$columnString["dataArray"][0];
5101
				$result["columnVarTypeAndLengthLimit"][$result["columnName"][$i]]=$columnString["dataArray"][0];
5101
				$result["columnVarTypeAndLengthLimit"][$result["columnName"][$i]]=$columnString["dataArray"][0];
5102
		
5102
 
5103
				}#if end
5103
				}#if end
5104
	
5104
 
5105
			#函式說明:
5105
			#函式說明:
5106
			#將固定格式的字串分開,並回傳分開的結果。
5106
			#將固定格式的字串分開,並回傳分開的結果。
5107
			#回傳的參數:
5107
			#回傳的參數:
5108
			#$result["oriStr"],要分割的原始字串內容
5108
			#$result["oriStr"],要分割的原始字串內容
5109
			#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5109
			#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5110
			#$result["dataCounts"],爲總共分成幾段
5110
			#$result["dataCounts"],爲總共分成幾段
5111
			#必填參數:
5111
			#必填參數:
5112
			$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5112
			$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5113
			$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5113
			$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5114
			$columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5114
			$columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5115
			unset($conf["stringProcess"]["spiltString"]);	
5115
			unset($conf["stringProcess"]["spiltString"]);
5116
 
5116
 
5117
			#如果 分割字串失敗 失敗
5117
			#如果 分割字串失敗 失敗
5118
			if($columnString["status"]=="false"){
5118
			if($columnString["status"]=="false"){
5119
				
5119
 
5120
				#設置錯誤訊息
5120
				#設置錯誤訊息
5121
				$result["status"]="false";
5121
				$result["status"]="false";
5122
				
5122
 
5123
				#設置錯誤提示
5123
				#設置錯誤提示
5124
				$result["error"]=$columnString;
5124
				$result["error"]=$columnString;
5125
				
5125
 
5126
				#回傳結果
5126
				#回傳結果
5127
				return $result;
5127
				return $result;
5128
				
5128
 
5129
				}#if end
5129
				}#if end
5130
 
5130
 
5131
			#如果分割字串失敗
5131
			#如果分割字串失敗
5132
			if($columnString["status"]==="false"){
5132
			if($columnString["status"]==="false"){
5133
				
5133
 
5134
				#設置執行失敗
5134
				#設置執行失敗
5135
				$reuslt["status"]="false";
5135
				$reuslt["status"]="false";
5136
				
5136
 
5137
				#設置錯誤訊息
5137
				#設置錯誤訊息
5138
				$result["error"]=$columnString;
5138
				$result["error"]=$columnString;
5139
				
5139
 
5140
				#回傳結果
5140
				#回傳結果
5141
				return $result;
5141
				return $result;
5142
				
5142
 
5143
				}#if end
5143
				}#if end
5144
			
5144
 
5145
			#debug
5145
			#debug
5146
			#var_dump($columnString);
5146
			#var_dump($columnString);
5147
						
5147
 
5148
			#判斷該 $columnString["dataArray"][2]是一般名稱,還是鍵值定義。
5148
			#判斷該 $columnString["dataArray"][2]是一般名稱,還是鍵值定義。
5149
			#函式說明:
5149
			#函式說明:
5150
			#檢查字串裡面有無指定的關鍵字
5150
			#檢查字串裡面有無指定的關鍵字
5151
			#回傳結果::
5151
			#回傳結果::
5152
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5152
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 5157... Line 5157...
5157
			$conf["search"]["findKeyWord"]["string"]=$columnString["dataArray"][2];#要被搜尋的字串內容
5157
			$conf["search"]["findKeyWord"]["string"]=$columnString["dataArray"][2];#要被搜尋的字串內容
5158
			#可省略參數:
5158
			#可省略參數:
5159
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5159
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5160
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5160
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5161
			unset($conf["search"]["findKeyWord"]);
5161
			unset($conf["search"]["findKeyWord"]);
5162
			
5162
 
5163
			#如果尋找失敗
5163
			#如果尋找失敗
5164
			if($searchResult["status"]==="false"){
5164
			if($searchResult["status"]==="false"){
5165
				
5165
 
5166
				#設置執行失敗
5166
				#設置執行失敗
5167
				$reuslt["status"]="false";
5167
				$reuslt["status"]="false";
5168
				
5168
 
5169
				#設置錯誤訊息
5169
				#設置錯誤訊息
5170
				$result["error"]=$columnString;
5170
				$result["error"]=$columnString;
5171
				
5171
 
5172
				#回傳結果
5172
				#回傳結果
5173
				return $result;
5173
				return $result;
5174
				
5174
 
5175
				}#if end
5175
				}#if end
5176
			
5176
 
5177
			#如果有找到,且沒有長度與形態資訊
5177
			#如果有找到,且沒有長度與形態資訊
5178
			if($searchResult["founded"]==="true" && !isset($result["columnVarTypeAndLengthLimit"][$i]) ){
5178
			if($searchResult["founded"]==="true" && !isset($result["columnVarTypeAndLengthLimit"][$i]) ){
5179
				
5179
 
5180
				#代表是屬於鍵值的定義
5180
				#代表是屬於鍵值的定義
5181
				$keyDefine[]=$everyLine["dataArray"][$i];
5181
				$keyDefine[]=$everyLine["dataArray"][$i];
5182
			
5182
 
5183
				#var_dump($keyDefine);
5183
				#var_dump($keyDefine);
5184
			
5184
 
5185
				#跳過該行內容
5185
				#跳過該行內容
5186
				continue;
5186
				continue;
5187
									
5187
 
5188
				}#if end
5188
				}#if end
5189
			
5189
 
5190
			#判斷該 $columnString["dataArray"][0]是否為 "CONSTRAINT" 或 "KEY"
5190
			#判斷該 $columnString["dataArray"][0]是否為 "CONSTRAINT" 或 "KEY"
5191
			if($columnString["dataArray"][0]==="CONSTRAINT" || $columnString["dataArray"][0]==="KEY"){
5191
			if($columnString["dataArray"][0]==="CONSTRAINT" || $columnString["dataArray"][0]==="KEY"){
5192
				
5192
 
5193
				#代表是屬於定義 外鍵 的 CONSTRAINT 定義
5193
				#代表是屬於定義 外鍵 的 CONSTRAINT 定義
5194
				$keyDefine[]=$everyLine["dataArray"][$i];
5194
				$keyDefine[]=$everyLine["dataArray"][$i];
5195
			
5195
 
5196
				#跳過該行內容
5196
				#跳過該行內容
5197
				continue;
5197
				continue;
5198
									
5198
 
5199
				}#if end
5199
				}#if end
5200
			
5200
 
5201
			#函式說明:
5201
			#函式說明:
5202
			#處理字串避免網頁出錯
5202
			#處理字串避免網頁出錯
5203
			#回傳結果::
5203
			#回傳結果::
5204
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5204
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
5205
			#$result["function"],當前執行的函數.
5205
			#$result["function"],當前執行的函數.
Line 5214... Line 5214...
5214
			$correctCharacterResult=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5214
			$correctCharacterResult=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5215
			unset($conf["stringProcess"]);
5215
			unset($conf["stringProcess"]);
5216
 
5216
 
5217
			#如果處理字串失敗
5217
			#如果處理字串失敗
5218
			if($correctCharacterResult["status"]==="false"){
5218
			if($correctCharacterResult["status"]==="false"){
5219
				
5219
 
5220
				#設置執行失敗
5220
				#設置執行失敗
5221
				$reuslt["status"]="false";
5221
				$reuslt["status"]="false";
5222
				
5222
 
5223
				#設置錯誤訊息
5223
				#設置錯誤訊息
5224
				$result["error"]=$correctCharacterResult;
5224
				$result["error"]=$correctCharacterResult;
5225
				
5225
 
5226
				#回傳結果
5226
				#回傳結果
5227
				return $result;
5227
				return $result;
5228
				
5228
 
5229
				}#if end
5229
				}#if end
5230
			
5230
 
5231
			#如果不是 "CONSTRAINT" 且 存在 $result["columnVarTypeAndLengthLimit"][$i]
5231
			#如果不是 "CONSTRAINT" 且 存在 $result["columnVarTypeAndLengthLimit"][$i]
5232
			if($correctCharacterResult["content"]!=="CONSTRAINT" && isset($result["columnVarTypeAndLengthLimit"][$i])){
5232
			if($correctCharacterResult["content"]!=="CONSTRAINT" && isset($result["columnVarTypeAndLengthLimit"][$i])){
5233
				
5233
 
5234
				#取得欄位名稱,遇到有空格的欄位名稱會出錯
5234
				#取得欄位名稱,遇到有空格的欄位名稱會出錯
5235
				#$result["columnName"][$i]=$correctCharacterResult["content"];
5235
				#$result["columnName"][$i]=$correctCharacterResult["content"];
5236
				#$result["columnName"][$correctCharacterResult["content"]]=$correctCharacterResult["content"];
5236
				#$result["columnName"][$correctCharacterResult["content"]]=$correctCharacterResult["content"];
5237
			
5237
 
5238
				#取得欄位變數形態與長度限制,遇到有空格的欄位名稱會出錯
5238
				#取得欄位變數形態與長度限制,遇到有空格的欄位名稱會出錯
5239
				#$result["columnVarTypeAndLengthLimit"][$i]=$columnString["dataArray"][1];
5239
				#$result["columnVarTypeAndLengthLimit"][$i]=$columnString["dataArray"][1];
5240
				#$result["columnVarTypeAndLengthLimit"][$result["columnName"][$i]]=$columnString["dataArray"][1];
5240
				#$result["columnVarTypeAndLengthLimit"][$result["columnName"][$i]]=$columnString["dataArray"][1];
5241
				
5241
 
5242
				#檢查是否有欄位的長度限制關鍵字 "(" ")"
5242
				#檢查是否有欄位的長度限制關鍵字 "(" ")"
5243
				#函式說明:
5243
				#函式說明:
5244
				#檢查一個字串裡面是否有多個關鍵字
5244
				#檢查一個字串裡面是否有多個關鍵字
5245
				#回傳結果::
5245
				#回傳結果::
5246
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5246
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 5251... Line 5251...
5251
				$conf["search"]["findManyKeyWords"]["string"]=$result["columnVarTypeAndLengthLimit"][$i];#要被搜尋的字串內容
5251
				$conf["search"]["findManyKeyWords"]["string"]=$result["columnVarTypeAndLengthLimit"][$i];#要被搜尋的字串內容
5252
				#可省略參數:
5252
				#可省略參數:
5253
				#$conf["search"]["findManyKeyWords"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5253
				#$conf["search"]["findManyKeyWords"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5254
				$lengthLimitKeyWordSearchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
5254
				$lengthLimitKeyWordSearchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
5255
				unset($conf["search"]["findManyKeyWords"]);
5255
				unset($conf["search"]["findManyKeyWords"]);
5256
				
5256
 
5257
				#如果  檢查是否有欄位的長度限制關鍵字 "(" ")" 失敗
5257
				#如果  檢查是否有欄位的長度限制關鍵字 "(" ")" 失敗
5258
				if($lengthLimitKeyWordSearchResult["status"]==="false"){
5258
				if($lengthLimitKeyWordSearchResult["status"]==="false"){
5259
				
5259
 
5260
					#設置執行失敗
5260
					#設置執行失敗
5261
					$reuslt["status"]="false";
5261
					$reuslt["status"]="false";
5262
					
5262
 
5263
					#設置錯誤訊息
5263
					#設置錯誤訊息
5264
					$result["error"]=$lengthLimitKeyWordSearchResult;
5264
					$result["error"]=$lengthLimitKeyWordSearchResult;
5265
					
5265
 
5266
					#回傳結果
5266
					#回傳結果
5267
					return $result;
5267
					return $result;
5268
					
5268
 
5269
					}#if end
5269
					}#if end
5270
				
5270
 
5271
				#如果 $lengthLimitKeyWordSearchResult["founded"] 等於 "true"
5271
				#如果 $lengthLimitKeyWordSearchResult["founded"] 等於 "true"
5272
				if($lengthLimitKeyWordSearchResult["foundedAll"]==="true"){
5272
				if($lengthLimitKeyWordSearchResult["foundedAll"]==="true"){
5273
					
5273
 
5274
					#代表有長度限制的字串
5274
					#代表有長度限制的字串
5275
					
5275
 
5276
					#以"("為關鍵字進行分割
5276
					#以"("為關鍵字進行分割
5277
					#函式說明:
5277
					#函式說明:
5278
					#將固定格式的字串分開,並回傳分開的結果。
5278
					#將固定格式的字串分開,並回傳分開的結果。
5279
					#回傳的參數:
5279
					#回傳的參數:
5280
					#$result["oriStr"],要分割的原始字串內容
5280
					#$result["oriStr"],要分割的原始字串內容
Line 5283... Line 5283...
5283
					#必填參數:
5283
					#必填參數:
5284
					$conf["stringProcess"]["spiltString"]["stringIn"]=$result["columnVarTypeAndLengthLimit"][$i];#要處理的字串。
5284
					$conf["stringProcess"]["spiltString"]["stringIn"]=$result["columnVarTypeAndLengthLimit"][$i];#要處理的字串。
5285
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="(";#爲以哪個符號作爲分割
5285
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="(";#爲以哪個符號作爲分割
5286
					$columnTypeAndLengthLimitSpiledStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5286
					$columnTypeAndLengthLimitSpiledStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5287
					unset($conf["stringProcess"]["spiltString"]);
5287
					unset($conf["stringProcess"]["spiltString"]);
5288
					
5288
 
5289
					#如果分割字串失敗
5289
					#如果分割字串失敗
5290
					if($columnTypeAndLengthLimitSpiledStr["status"]==="false"){
5290
					if($columnTypeAndLengthLimitSpiledStr["status"]==="false"){
5291
						
5291
 
5292
						#設置執行失敗
5292
						#設置執行失敗
5293
						$reuslt["status"]="false";
5293
						$reuslt["status"]="false";
5294
						
5294
 
5295
						#設置錯誤訊息
5295
						#設置錯誤訊息
5296
						$result["error"]=$columnTypeAndLengthLimitSpiledStr;
5296
						$result["error"]=$columnTypeAndLengthLimitSpiledStr;
5297
						
5297
 
5298
						#回傳結果
5298
						#回傳結果
5299
						return $result;
5299
						return $result;
5300
						
5300
 
5301
						}#if end
5301
						}#if end
5302
					
5302
 
5303
					#取得欄位變數型別
5303
					#取得欄位變數型別
5304
					$result["columnVarType"][$i]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5304
					$result["columnVarType"][$i]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5305
					$result["columnVarType"][$result["columnName"][$i]]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5305
					$result["columnVarType"][$result["columnName"][$i]]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5306
					
5306
 
5307
					#以")"為關鍵字進行分割
5307
					#以")"為關鍵字進行分割
5308
					#函式說明:
5308
					#函式說明:
5309
					#將固定格式的字串分開,並回傳分開的結果。
5309
					#將固定格式的字串分開,並回傳分開的結果。
5310
					#回傳的參數:
5310
					#回傳的參數:
5311
					#$result["oriStr"],要分割的原始字串內容
5311
					#$result["oriStr"],要分割的原始字串內容
Line 5314... Line 5314...
5314
					#必填參數:
5314
					#必填參數:
5315
					$conf["stringProcess"]["spiltString"]["stringIn"]=$columnTypeAndLengthLimitSpiledStr["dataArray"][1];#要處理的字串。
5315
					$conf["stringProcess"]["spiltString"]["stringIn"]=$columnTypeAndLengthLimitSpiledStr["dataArray"][1];#要處理的字串。
5316
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=")";#爲以哪個符號作爲分割
5316
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=")";#爲以哪個符號作爲分割
5317
					$columnTypeAndLengthLimitSpiledStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5317
					$columnTypeAndLengthLimitSpiledStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5318
					unset($conf["stringProcess"]["spiltString"]);
5318
					unset($conf["stringProcess"]["spiltString"]);
5319
					
5319
 
5320
					#如果分割字串失敗
5320
					#如果分割字串失敗
5321
					if($columnTypeAndLengthLimitSpiledStr["status"]==="false"){
5321
					if($columnTypeAndLengthLimitSpiledStr["status"]==="false"){
5322
						
5322
 
5323
						#設置執行失敗
5323
						#設置執行失敗
5324
						$reuslt["status"]="false";
5324
						$reuslt["status"]="false";
5325
						
5325
 
5326
						#設置錯誤訊息
5326
						#設置錯誤訊息
5327
						$result["error"]=$columnTypeAndLengthLimitSpiledStr;
5327
						$result["error"]=$columnTypeAndLengthLimitSpiledStr;
5328
						
5328
 
5329
						#回傳結果
5329
						#回傳結果
5330
						return $result;
5330
						return $result;
5331
						
5331
 
5332
						}#if end
5332
						}#if end
5333
					
5333
 
5334
					#取得欄位的長度限制
5334
					#取得欄位的長度限制
5335
					$result["columnVarLengthLimit"][$i]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5335
					$result["columnVarLengthLimit"][$i]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5336
					$result["columnVarLengthLimit"][$result["columnName"][$i]]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5336
					$result["columnVarLengthLimit"][$result["columnName"][$i]]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
5337
					
5337
 
5338
					}#if end
5338
					}#if end
5339
				
5339
 
5340
				#反之代表沒有長度限制的字串
5340
				#反之代表沒有長度限制的字串
5341
				else{
5341
				else{
5342
					
5342
 
5343
					#取得欄位變數型別
5343
					#取得欄位變數型別
5344
					$result["columnVarType"][$i]=$result["columnVarTypeAndLengthLimit"][$i];
5344
					$result["columnVarType"][$i]=$result["columnVarTypeAndLengthLimit"][$i];
5345
					$result["columnVarType"][$result["columnName"][$i]]=$result["columnVarTypeAndLengthLimit"][$i];
5345
					$result["columnVarType"][$result["columnName"][$i]]=$result["columnVarTypeAndLengthLimit"][$i];
5346
					
5346
 
5347
					#取得欄位變數長度限制
5347
					#取得欄位變數長度限制
5348
					$result["columnVarLengthLimit"][$i]="";
5348
					$result["columnVarLengthLimit"][$i]="";
5349
					$result["columnVarLengthLimit"][$result["columnName"][$i]]="";
5349
					$result["columnVarLengthLimit"][$result["columnName"][$i]]="";
5350
	
5350
 
5351
					}#else
5351
					}#else
5352
				
5352
 
5353
				#欄位是否不可為null
5353
				#欄位是否不可為null
5354
				#函式說明:
5354
				#函式說明:
5355
				#檢查字串裡面有無指定的關鍵字
5355
				#檢查字串裡面有無指定的關鍵字
5356
				#回傳結果::
5356
				#回傳結果::
5357
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5357
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 5362... Line 5362...
5362
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5362
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5363
				#可省略參數:
5363
				#可省略參數:
5364
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5364
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5365
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5365
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5366
				unset($conf["search"]["findKeyWord"]);
5366
				unset($conf["search"]["findKeyWord"]);
5367
				
5367
 
5368
				#如果取得 欄位是否不可為null 失敗
5368
				#如果取得 欄位是否不可為null 失敗
5369
				if($searchResult["status"]==="false"){
5369
				if($searchResult["status"]==="false"){
5370
					
5370
 
5371
					#設置執行失敗
5371
					#設置執行失敗
5372
					$reuslt["status"]="false";
5372
					$reuslt["status"]="false";
5373
					
5373
 
5374
					#設置錯誤訊息
5374
					#設置錯誤訊息
5375
					$result["error"]=$searchResult;
5375
					$result["error"]=$searchResult;
5376
					
5376
 
5377
					#回傳結果
5377
					#回傳結果
5378
					return $result;
5378
					return $result;
5379
					
5379
 
5380
					}#if end
5380
					}#if end
5381
				
5381
 
5382
				#如果有找到 NOT NULL
5382
				#如果有找到 NOT NULL
5383
				if($searchResult["founded"]==="true"){
5383
				if($searchResult["founded"]==="true"){
5384
					
5384
 
5385
					$result["columnNotNull"][$i]="true";
5385
					$result["columnNotNull"][$i]="true";
5386
					$result["columnNotNull"][$result["columnName"][$i]]="true";
5386
					$result["columnNotNull"][$result["columnName"][$i]]="true";
5387
					
5387
 
5388
					}#if end
5388
					}#if end
5389
					
5389
 
5390
				#反之沒有找到 NOT NULL
5390
				#反之沒有找到 NOT NULL
5391
				else{
5391
				else{
5392
				
5392
 
5393
					$result["columnNotNull"][$i]="false";
5393
					$result["columnNotNull"][$i]="false";
5394
					$result["columnNotNull"][$result["columnName"][$i]]="false";
5394
					$result["columnNotNull"][$result["columnName"][$i]]="false";
5395
					
5395
 
5396
					}#else end
5396
					}#else end
5397
					
5397
 
5398
				#欄位是否會自動加1
5398
				#欄位是否會自動加1
5399
				#函式說明:
5399
				#函式說明:
5400
				#檢查字串裡面有無指定的關鍵字
5400
				#檢查字串裡面有無指定的關鍵字
5401
				#回傳結果::
5401
				#回傳結果::
5402
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5402
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 5407... Line 5407...
5407
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5407
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5408
				#可省略參數:
5408
				#可省略參數:
5409
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5409
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5410
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5410
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5411
				unset($conf["search"]["findKeyWord"]);
5411
				unset($conf["search"]["findKeyWord"]);
5412
				
5412
 
5413
				#如果取得 欄位是否會自動加1 失敗
5413
				#如果取得 欄位是否會自動加1 失敗
5414
				if($searchResult["status"]==="false"){
5414
				if($searchResult["status"]==="false"){
5415
					
5415
 
5416
					#設置執行失敗
5416
					#設置執行失敗
5417
					$reuslt["status"]="false";
5417
					$reuslt["status"]="false";
5418
					
5418
 
5419
					#設置錯誤訊息
5419
					#設置錯誤訊息
5420
					$result["error"]=$searchResult;
5420
					$result["error"]=$searchResult;
5421
					
5421
 
5422
					#回傳結果
5422
					#回傳結果
5423
					return $result;
5423
					return $result;
5424
					
5424
 
5425
					}#if end
5425
					}#if end
5426
				
5426
 
5427
				#如果有找到 AUTO_INCREMENT
5427
				#如果有找到 AUTO_INCREMENT
5428
				if($searchResult["founded"]==="true"){
5428
				if($searchResult["founded"]==="true"){
5429
					
5429
 
5430
					$result["columnAutoIncrement"][$i]="true";
5430
					$result["columnAutoIncrement"][$i]="true";
5431
					$result["columnAutoIncrement"][$result["columnName"][$i]]="true";
5431
					$result["columnAutoIncrement"][$result["columnName"][$i]]="true";
5432
					
5432
 
5433
					}#if end
5433
					}#if end
5434
					
5434
 
5435
				#反之沒有 AUTO_INCREMENT
5435
				#反之沒有 AUTO_INCREMENT
5436
				else{
5436
				else{
5437
					
5437
 
5438
					$result["columnAutoIncrement"][$i]="false";
5438
					$result["columnAutoIncrement"][$i]="false";
5439
					$result["columnAutoIncrement"][$result["columnName"][$i]]="false";
5439
					$result["columnAutoIncrement"][$result["columnName"][$i]]="false";
5440
					
5440
 
5441
					}#else end
5441
					}#else end
5442
					
5442
 
5443
				#欄位是否有預設內容
5443
				#欄位是否有預設內容
5444
				
5444
 
5445
				#函式說明:
5445
				#函式說明:
5446
				#檢查字串裡面有無指定的關鍵字
5446
				#檢查字串裡面有無指定的關鍵字
5447
				#回傳結果::
5447
				#回傳結果::
5448
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5448
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5449
				#$result["error"],錯誤訊息
5449
				#$result["error"],錯誤訊息
Line 5453... Line 5453...
5453
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5453
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5454
				#可省略參數:
5454
				#可省略參數:
5455
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5455
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5456
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5456
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5457
				unset($conf["search"]["findKeyWord"]);
5457
				unset($conf["search"]["findKeyWord"]);
5458
				
5458
 
5459
				#如果取得 欄位是否有預設內容 失敗
5459
				#如果取得 欄位是否有預設內容 失敗
5460
				if($searchResult["status"]==="false"){
5460
				if($searchResult["status"]==="false"){
5461
					
5461
 
5462
					#設置執行失敗
5462
					#設置執行失敗
5463
					$reuslt["status"]="false";
5463
					$reuslt["status"]="false";
5464
					
5464
 
5465
					#設置錯誤訊息
5465
					#設置錯誤訊息
5466
					$result["error"]=$searchResult;
5466
					$result["error"]=$searchResult;
5467
					
5467
 
5468
					#回傳結果
5468
					#回傳結果
5469
					return $result;
5469
					return $result;
5470
					
5470
 
5471
					}#if end
5471
					}#if end
5472
				
5472
 
5473
				#如果有找到 DEFAULT
5473
				#如果有找到 DEFAULT
5474
				if($searchResult["founded"]==="true"){
5474
				if($searchResult["founded"]==="true"){
5475
					
5475
 
5476
					#函式說明:
5476
					#函式說明:
5477
					#將固定格式的字串分開,並回傳分開的結果。
5477
					#將固定格式的字串分開,並回傳分開的結果。
5478
					#回傳的參數:
5478
					#回傳的參數:
5479
					#$result["oriStr"],要分割的原始字串內容
5479
					#$result["oriStr"],要分割的原始字串內容
5480
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5480
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5482... Line 5482...
5482
					#必填參數:
5482
					#必填參數:
5483
					$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5483
					$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5484
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="DEFAULT ";#爲以哪個符號作爲分割
5484
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="DEFAULT ";#爲以哪個符號作爲分割
5485
					$defaultString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5485
					$defaultString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5486
					unset($conf["stringProcess"]["spiltString"]);
5486
					unset($conf["stringProcess"]["spiltString"]);
5487
					
5487
 
5488
					#如果分割字串失敗
5488
					#如果分割字串失敗
5489
					if($defaultString["status"]=="false"){
5489
					if($defaultString["status"]=="false"){
5490
						
5490
 
5491
						#設置執行失敗
5491
						#設置執行失敗
5492
						$result["status"]="false";
5492
						$result["status"]="false";
5493
						
5493
 
5494
						#設置執行錯誤訊息
5494
						#設置執行錯誤訊息
5495
						$result["error"]=$defaultString;
5495
						$result["error"]=$defaultString;
5496
						
5496
 
5497
						#回傳結果
5497
						#回傳結果
5498
						return $result;
5498
						return $result;
5499
						
5499
 
5500
						}#if end
5500
						}#if end
5501
					
5501
 
5502
					#函式說明:
5502
					#函式說明:
5503
					#將固定格式的字串分開,並回傳分開的結果。
5503
					#將固定格式的字串分開,並回傳分開的結果。
5504
					#回傳的參數:
5504
					#回傳的參數:
5505
					#$result["oriStr"],要分割的原始字串內容
5505
					#$result["oriStr"],要分割的原始字串內容
5506
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5506
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5508... Line 5508...
5508
					#必填參數:
5508
					#必填參數:
5509
					$conf["stringProcess"]["spiltString"]["stringIn"]=$defaultString["dataArray"][1];#要處理的字串。
5509
					$conf["stringProcess"]["spiltString"]["stringIn"]=$defaultString["dataArray"][1];#要處理的字串。
5510
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5510
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5511
					$defaultString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5511
					$defaultString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5512
					unset($conf["stringProcess"]["spiltString"]);
5512
					unset($conf["stringProcess"]["spiltString"]);
5513
					
5513
 
5514
					#如果分割字串失敗
5514
					#如果分割字串失敗
5515
					if($defaultString["status"]=="false"){
5515
					if($defaultString["status"]=="false"){
5516
						
5516
 
5517
						#設置執行失敗
5517
						#設置執行失敗
5518
						$result["status"]="false";
5518
						$result["status"]="false";
5519
						
5519
 
5520
						#設置執行錯誤訊息
5520
						#設置執行錯誤訊息
5521
						$result["error"]=$defaultString;
5521
						$result["error"]=$defaultString;
5522
						
5522
 
5523
						#回傳結果
5523
						#回傳結果
5524
						return $result;
5524
						return $result;
5525
						
5525
 
5526
						}#if end
5526
						}#if end
5527
					
5527
 
5528
					#將「,」,「'」去掉 
5528
					#將「,」,「'」去掉
5529
					#函式說明:
5529
					#函式說明:
5530
					#處理字串避免網頁出錯
5530
					#處理字串避免網頁出錯
5531
					#回傳結果::
5531
					#回傳結果::
5532
					#$result,爲處理好的字串。
5532
					#$result,爲處理好的字串。
5533
					#必填參數:
5533
					#必填參數:
Line 5536... Line 5536...
5536
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","'");#爲被選擇要處理的字串/字元,須爲陣列值。
5536
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","'");#爲被選擇要處理的字串/字元,須爲陣列值。
5537
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5537
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5538
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5538
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5539
					$thisColumnDefaultValue=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5539
					$thisColumnDefaultValue=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5540
					unset($conf["stringProcess"]["correctCharacter"]);
5540
					unset($conf["stringProcess"]["correctCharacter"]);
5541
					
5541
 
5542
					#如果處理字串失敗
5542
					#如果處理字串失敗
5543
					if($thisColumnDefaultValue["status"]=="false"){
5543
					if($thisColumnDefaultValue["status"]=="false"){
5544
						
5544
 
5545
						#設置執行不正常
5545
						#設置執行不正常
5546
						$result["status"]="false";
5546
						$result["status"]="false";
5547
						
5547
 
5548
						#設置錯誤訊息
5548
						#設置錯誤訊息
5549
						$result["error"]=$thisColumnDefaultValue;
5549
						$result["error"]=$thisColumnDefaultValue;
5550
						
5550
 
5551
						#回傳結果
5551
						#回傳結果
5552
						return $result;
5552
						return $result;
5553
						
5553
 
5554
						}#if end
5554
						}#if end
5555
					
5555
 
5556
					#取得該欄位的預設內容
5556
					#取得該欄位的預設內容
5557
					$result["columnDefault"][$i]=$thisColumnDefaultValue["content"];
5557
					$result["columnDefault"][$i]=$thisColumnDefaultValue["content"];
5558
					$result["columnDefault"][$result["columnName"][$i]]=$thisColumnDefaultValue["content"];
5558
					$result["columnDefault"][$result["columnName"][$i]]=$thisColumnDefaultValue["content"];
5559
					
5559
 
5560
					}#if end
5560
					}#if end
5561
				
5561
 
5562
				#反之沒有找到 DEFAULT	
5562
				#反之沒有找到 DEFAULT
5563
				else{
5563
				else{
5564
					
5564
 
5565
					$result["columnDefault"][$i]="沒有指定";
5565
					$result["columnDefault"][$i]="沒有指定";
5566
					$result["columnDefault"][$result["columnName"][$i]]=$result["columnDefault"][$i];
5566
					$result["columnDefault"][$result["columnName"][$i]]=$result["columnDefault"][$i];
5567
					
5567
 
5568
					}#else end
5568
					}#else end
5569
					
5569
 
5570
				#如果有欄位內有 ON UPDATE 的字樣
5570
				#如果有欄位內有 ON UPDATE 的字樣
5571
				
5571
 
5572
				#函式說明:
5572
				#函式說明:
5573
				#檢查字串裡面有無指定的關鍵字
5573
				#檢查字串裡面有無指定的關鍵字
5574
				#回傳結果::
5574
				#回傳結果::
5575
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5575
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5576
				#$result["error"],錯誤訊息
5576
				#$result["error"],錯誤訊息
Line 5580... Line 5580...
5580
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5580
				$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5581
				#可省略參數:
5581
				#可省略參數:
5582
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5582
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5583
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5583
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5584
				unset($conf["search"]["findKeyWord"]);
5584
				unset($conf["search"]["findKeyWord"]);
5585
				
5585
 
5586
				#如果尋找 欄位內是否有 ON UPDATE 的字樣失敗
5586
				#如果尋找 欄位內是否有 ON UPDATE 的字樣失敗
5587
				if($searchResult["status"]==="false"){
5587
				if($searchResult["status"]==="false"){
5588
					
5588
 
5589
					#設置執行失敗
5589
					#設置執行失敗
5590
					$result["status"]="false";
5590
					$result["status"]="false";
5591
					
5591
 
5592
					#設置執行錯誤訊息
5592
					#設置執行錯誤訊息
5593
					$result["error"]=$searchResult;
5593
					$result["error"]=$searchResult;
5594
					
5594
 
5595
					#回傳結果
5595
					#回傳結果
5596
					return $result;
5596
					return $result;
5597
					
5597
 
5598
					}#if end
5598
					}#if end
5599
				
5599
 
5600
				#如果有找到 ON UPDATE
5600
				#如果有找到 ON UPDATE
5601
				if($searchResult["founded"]==="true"){ 
5601
				if($searchResult["founded"]==="true"){
5602
					
5602
 
5603
					#函式說明:
5603
					#函式說明:
5604
					#將固定格式的字串分開,並回傳分開的結果。
5604
					#將固定格式的字串分開,並回傳分開的結果。
5605
					#回傳的參數:
5605
					#回傳的參數:
5606
					#$result["oriStr"],要分割的原始字串內容
5606
					#$result["oriStr"],要分割的原始字串內容
5607
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5607
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5609... Line 5609...
5609
					#必填參數:
5609
					#必填參數:
5610
					$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5610
					$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5611
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON UPDATE ";#爲以哪個符號作爲分割
5611
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON UPDATE ";#爲以哪個符號作爲分割
5612
					$onUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5612
					$onUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5613
					unset($conf["stringProcess"]["spiltString"]);
5613
					unset($conf["stringProcess"]["spiltString"]);
5614
										
5614
 
5615
					#函式說明:
5615
					#函式說明:
5616
					#將固定格式的字串分開,並回傳分開的結果。
5616
					#將固定格式的字串分開,並回傳分開的結果。
5617
					#回傳的參數:
5617
					#回傳的參數:
5618
					#$result["oriStr"],要分割的原始字串內容
5618
					#$result["oriStr"],要分割的原始字串內容
5619
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5619
					#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5621... Line 5621...
5621
					#必填參數:
5621
					#必填參數:
5622
					$conf["stringProcess"]["spiltString"]["stringIn"]=$onUpdateString["dataArray"][1];#要處理的字串。
5622
					$conf["stringProcess"]["spiltString"]["stringIn"]=$onUpdateString["dataArray"][1];#要處理的字串。
5623
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5623
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5624
					$onUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5624
					$onUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5625
					unset($conf["stringProcess"]["spiltString"]);
5625
					unset($conf["stringProcess"]["spiltString"]);
5626
					
5626
 
5627
					#如果分割字串失敗
5627
					#如果分割字串失敗
5628
					if($onUpdateString["status"]=="false"){
5628
					if($onUpdateString["status"]=="false"){
5629
						
5629
 
5630
						#設置執行不正常
5630
						#設置執行不正常
5631
						$result["status"]="false";
5631
						$result["status"]="false";
5632
						
5632
 
5633
						#設置錯誤訊息
5633
						#設置錯誤訊息
5634
						$result["error"]=$onUpdateString;
5634
						$result["error"]=$onUpdateString;
5635
						
5635
 
5636
						#回傳結果
5636
						#回傳結果
5637
						return $result;
5637
						return $result;
5638
						
5638
 
5639
						}#if end
5639
						}#if end
5640
					
5640
 
5641
					#將「,」去掉 
5641
					#將「,」去掉
5642
					#函式說明:
5642
					#函式說明:
5643
					#處理字串避免網頁出錯
5643
					#處理字串避免網頁出錯
5644
					#回傳結果::
5644
					#回傳結果::
5645
					#$result,爲處理好的字串。
5645
					#$result,爲處理好的字串。
5646
					#必填參數:
5646
					#必填參數:
Line 5649... Line 5649...
5649
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
5649
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
5650
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5650
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5651
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5651
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5652
					$columnOnUpdateActionStr=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5652
					$columnOnUpdateActionStr=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5653
					unset($conf["stringProcess"]["correctCharacter"]);
5653
					unset($conf["stringProcess"]["correctCharacter"]);
5654
					
5654
 
5655
					#如果 處理字串失敗
5655
					#如果 處理字串失敗
5656
					if($columnOnUpdateActionStr["status"]=="false"){
5656
					if($columnOnUpdateActionStr["status"]=="false"){
5657
						
5657
 
5658
						#設置執行不正常
5658
						#設置執行不正常
5659
						$result["status"]="false";
5659
						$result["status"]="false";
5660
						
5660
 
5661
						#設置錯誤訊息
5661
						#設置錯誤訊息
5662
						$result["error"]=$columnOnUpdateActionStr;
5662
						$result["error"]=$columnOnUpdateActionStr;
5663
						
5663
 
5664
						#回傳結果
5664
						#回傳結果
5665
						return $result;
5665
						return $result;
5666
						
5666
 
5667
						}#if end
5667
						}#if end
5668
					
5668
 
5669
					#取得 ON UPDATE 的對應動作
5669
					#取得 ON UPDATE 的對應動作
5670
					$result["columnOnUpdateAction"][$result["columnName"][$i]]=$columnOnUpdateActionStr["content"];
5670
					$result["columnOnUpdateAction"][$result["columnName"][$i]]=$columnOnUpdateActionStr["content"];
5671
					$result["columnOnUpdateAction"][$i]=$columnOnUpdateActionStr["content"];
5671
					$result["columnOnUpdateAction"][$i]=$columnOnUpdateActionStr["content"];
5672
															
5672
 
5673
					}#if end
5673
					}#if end
5674
					
5674
 
5675
				#反之,沒有 ON UPDATE 的對應動作
5675
				#反之,沒有 ON UPDATE 的對應動作
5676
				else{
5676
				else{
5677
					
5677
 
5678
					$result["columnOnUpdateAction"][$i]="沒有指定";
5678
					$result["columnOnUpdateAction"][$i]="沒有指定";
5679
					$result["columnOnUpdateAction"][$result["columnName"][$i]]=$result["columnOnUpdateAction"][$i];
5679
					$result["columnOnUpdateAction"][$result["columnName"][$i]]=$result["columnOnUpdateAction"][$i];
5680
					
5680
 
5681
					}#else end
5681
					}#else end
5682
				
5682
 
5683
				}#if end
5683
				}#if end
5684
			
5684
 
5685
			#如果有欄位內有 CHARACTER SET 的字樣
5685
			#如果有欄位內有 CHARACTER SET 的字樣
5686
			
5686
 
5687
			#函式說明:
5687
			#函式說明:
5688
			#檢查字串裡面有無指定的關鍵字
5688
			#檢查字串裡面有無指定的關鍵字
5689
			#回傳結果::
5689
			#回傳結果::
5690
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5690
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5691
			#$result["error"],錯誤訊息
5691
			#$result["error"],錯誤訊息
Line 5695... Line 5695...
5695
			$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5695
			$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5696
			#可省略參數:
5696
			#可省略參數:
5697
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5697
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5698
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5698
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5699
			unset($conf["search"]["findKeyWord"]);
5699
			unset($conf["search"]["findKeyWord"]);
5700
			
5700
 
5701
			#如果尋找關鍵字失敗
5701
			#如果尋找關鍵字失敗
5702
			if($searchResult["status"]==="false"){
5702
			if($searchResult["status"]==="false"){
5703
				
5703
 
5704
				#設置執行不正常
5704
				#設置執行不正常
5705
				$result["status"]="false";
5705
				$result["status"]="false";
5706
				
5706
 
5707
				#設置錯誤訊息
5707
				#設置錯誤訊息
5708
				$result["error"]=$searchResult;
5708
				$result["error"]=$searchResult;
5709
				
5709
 
5710
				#回傳結果
5710
				#回傳結果
5711
				return $result;
5711
				return $result;
5712
				
5712
 
5713
				}#if end
5713
				}#if end
5714
			
5714
 
5715
			#如果有找到 CHARACTER SET
5715
			#如果有找到 CHARACTER SET
5716
			if($searchResult["founded"]==="true"){ 
5716
			if($searchResult["founded"]==="true"){
5717
				
5717
 
5718
				#函式說明:
5718
				#函式說明:
5719
				#將固定格式的字串分開,並回傳分開的結果。
5719
				#將固定格式的字串分開,並回傳分開的結果。
5720
				#回傳的參數:
5720
				#回傳的參數:
5721
				#$result["oriStr"],要分割的原始字串內容
5721
				#$result["oriStr"],要分割的原始字串內容
5722
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5722
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5724... Line 5724...
5724
				#必填參數:
5724
				#必填參數:
5725
				$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5725
				$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5726
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="CHARACTER SET ";#爲以哪個符號作爲分割
5726
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="CHARACTER SET ";#爲以哪個符號作爲分割
5727
				$characterSetString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5727
				$characterSetString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5728
				unset($conf["stringProcess"]["spiltString"]);
5728
				unset($conf["stringProcess"]["spiltString"]);
5729
				
5729
 
5730
				#如果分割字串失敗
5730
				#如果分割字串失敗
5731
				if($characterSetString["status"]==="false"){
5731
				if($characterSetString["status"]==="false"){
5732
						
5732
 
5733
					#設置執行不正常
5733
					#設置執行不正常
5734
					$result["status"]="false";
5734
					$result["status"]="false";
5735
					
5735
 
5736
					#設置錯誤訊息
5736
					#設置錯誤訊息
5737
					$result["error"]=$characterSetString;
5737
					$result["error"]=$characterSetString;
5738
					
5738
 
5739
					#回傳結果
5739
					#回傳結果
5740
					return $result;
5740
					return $result;
5741
					
5741
 
5742
					}#if end
5742
					}#if end
5743
				
5743
 
5744
				#函式說明:
5744
				#函式說明:
5745
				#將固定格式的字串分開,並回傳分開的結果。
5745
				#將固定格式的字串分開,並回傳分開的結果。
5746
				#回傳的參數:
5746
				#回傳的參數:
5747
				#$result["oriStr"],要分割的原始字串內容
5747
				#$result["oriStr"],要分割的原始字串內容
5748
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5748
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5750... Line 5750...
5750
				#必填參數:
5750
				#必填參數:
5751
				$conf["stringProcess"]["spiltString"]["stringIn"]=$characterSetString["dataArray"][1];#要處理的字串。
5751
				$conf["stringProcess"]["spiltString"]["stringIn"]=$characterSetString["dataArray"][1];#要處理的字串。
5752
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5752
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5753
				$characterSetString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5753
				$characterSetString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5754
				unset($conf["stringProcess"]["spiltString"]);
5754
				unset($conf["stringProcess"]["spiltString"]);
5755
				
5755
 
5756
				#如果分割字串失敗
5756
				#如果分割字串失敗
5757
				if($characterSetString["status"]==="false"){
5757
				if($characterSetString["status"]==="false"){
5758
						
5758
 
5759
					#設置執行不正常
5759
					#設置執行不正常
5760
					$result["status"]="false";
5760
					$result["status"]="false";
5761
					
5761
 
5762
					#設置錯誤訊息
5762
					#設置錯誤訊息
5763
					$result["error"]=$characterSetString;
5763
					$result["error"]=$characterSetString;
5764
					
5764
 
5765
					#回傳結果
5765
					#回傳結果
5766
					return $result;
5766
					return $result;
5767
					
5767
 
5768
					}#if end
5768
					}#if end
5769
				
5769
 
5770
				#將「,」去掉 
5770
				#將「,」去掉
5771
				#函式說明:
5771
				#函式說明:
5772
				#處理字串避免網頁出錯
5772
				#處理字串避免網頁出錯
5773
				#回傳結果::
5773
				#回傳結果::
5774
				#$result,爲處理好的字串。
5774
				#$result,爲處理好的字串。
5775
				#必填參數:
5775
				#必填參數:
Line 5778... Line 5778...
5778
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
5778
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
5779
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5779
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5780
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5780
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5781
				$processedCharacterSetStr=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5781
				$processedCharacterSetStr=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5782
				unset($conf["stringProcess"]["correctCharacter"]);
5782
				unset($conf["stringProcess"]["correctCharacter"]);
5783
				
5783
 
5784
				#如果處理字串失敗
5784
				#如果處理字串失敗
5785
				if($processedCharacterSetStr["status"]==="false"){
5785
				if($processedCharacterSetStr["status"]==="false"){
5786
					
5786
 
5787
					#設置執行不正常
5787
					#設置執行不正常
5788
					$result["status"]="false";
5788
					$result["status"]="false";
5789
					
5789
 
5790
					#設置錯誤訊息
5790
					#設置錯誤訊息
5791
					$result["error"]=$processedCharacterSetStr;
5791
					$result["error"]=$processedCharacterSetStr;
5792
					
5792
 
5793
					#回傳結果
5793
					#回傳結果
5794
					return $result;
5794
					return $result;
5795
					
5795
 
5796
					}#if end
5796
					}#if end
5797
				
5797
 
5798
				#取得CHARACTER SET的設定字串
5798
				#取得CHARACTER SET的設定字串
5799
				$result["columnCharacterSet"][$i]=$processedCharacterSetStr["content"];
5799
				$result["columnCharacterSet"][$i]=$processedCharacterSetStr["content"];
5800
				$result["columnCharacterSet"][$result["columnName"][$i]]=$processedCharacterSetStr["content"];
5800
				$result["columnCharacterSet"][$result["columnName"][$i]]=$processedCharacterSetStr["content"];
5801
				
5801
 
5802
				}#if end
5802
				}#if end
5803
				
5803
 
5804
			#反之,沒有 CHARACTER SET 字樣
5804
			#反之,沒有 CHARACTER SET 字樣
5805
			else{
5805
			else{
5806
				
5806
 
5807
				#如果存在該欄位
5807
				#如果存在該欄位
5808
				if(isset($result["columnName"][$i])){
5808
				if(isset($result["columnName"][$i])){
5809
				
5809
 
5810
					#採用預設的 $result["charset"]
5810
					#採用預設的 $result["charset"]
5811
					$result["columnCharacterSet"][$i]=$result["charset"];
5811
					$result["columnCharacterSet"][$i]=$result["charset"];
5812
					$result["columnCharacterSet"][$result["columnName"][$i]]=$result["columnCharacterSet"][$i];
5812
					$result["columnCharacterSet"][$result["columnName"][$i]]=$result["columnCharacterSet"][$i];
5813
				
5813
 
5814
					}#if end
5814
					}#if end
5815
				
5815
 
5816
				}#else end
5816
				}#else end
5817
				
5817
 
5818
			#檢查是否有 COLLATE 字樣...
5818
			#檢查是否有 COLLATE 字樣...
5819
			
5819
 
5820
			#函式說明:
5820
			#函式說明:
5821
			#檢查字串裡面有無指定的關鍵字
5821
			#檢查字串裡面有無指定的關鍵字
5822
			#回傳結果::
5822
			#回傳結果::
5823
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5823
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5824
			#$result["error"],錯誤訊息
5824
			#$result["error"],錯誤訊息
Line 5828... Line 5828...
5828
			$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5828
			$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5829
			#可省略參數:
5829
			#可省略參數:
5830
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5830
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5831
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5831
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5832
			unset($conf["search"]["findKeyWord"]);
5832
			unset($conf["search"]["findKeyWord"]);
5833
			
5833
 
5834
			#如果尋找關鍵字失敗
5834
			#如果尋找關鍵字失敗
5835
			if($searchResult["status"]==="false"){
5835
			if($searchResult["status"]==="false"){
5836
				
5836
 
5837
				#設置執行不正常
5837
				#設置執行不正常
5838
				$result["status"]="false";
5838
				$result["status"]="false";
5839
				
5839
 
5840
				#設置錯誤訊息
5840
				#設置錯誤訊息
5841
				$result["error"]=$searchResult;
5841
				$result["error"]=$searchResult;
5842
				
5842
 
5843
				#回傳結果
5843
				#回傳結果
5844
				return $result;
5844
				return $result;
5845
				
5845
 
5846
				}#if end
5846
				}#if end
5847
			
5847
 
5848
			#如果有找到 CHARACTER SET
5848
			#如果有找到 CHARACTER SET
5849
			if($searchResult["founded"]==="true"){ 
5849
			if($searchResult["founded"]==="true"){
5850
				
5850
 
5851
				#函式說明:
5851
				#函式說明:
5852
				#將固定格式的字串分開,並回傳分開的結果。
5852
				#將固定格式的字串分開,並回傳分開的結果。
5853
				#回傳的參數:
5853
				#回傳的參數:
5854
				#$result["oriStr"],要分割的原始字串內容
5854
				#$result["oriStr"],要分割的原始字串內容
5855
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5855
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5857... Line 5857...
5857
				#必填參數:
5857
				#必填參數:
5858
				$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5858
				$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5859
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="COLLATE ";#爲以哪個符號作爲分割
5859
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="COLLATE ";#爲以哪個符號作爲分割
5860
				$collateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5860
				$collateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5861
				unset($conf["stringProcess"]["spiltString"]);
5861
				unset($conf["stringProcess"]["spiltString"]);
5862
				
5862
 
5863
				#如果分割字串失敗
5863
				#如果分割字串失敗
5864
				if($collateString["status"]=="false"){
5864
				if($collateString["status"]=="false"){
5865
					
5865
 
5866
					#設置執行不正常
5866
					#設置執行不正常
5867
					$result["status"]="false";
5867
					$result["status"]="false";
5868
					
5868
 
5869
					#設置錯誤訊息
5869
					#設置錯誤訊息
5870
					$result["error"]=$searchResult;
5870
					$result["error"]=$searchResult;
5871
					
5871
 
5872
					#回傳結果
5872
					#回傳結果
5873
					return $result;
5873
					return $result;
5874
					
5874
 
5875
					}#if end
5875
					}#if end
5876
				
5876
 
5877
				#函式說明:
5877
				#函式說明:
5878
				#將固定格式的字串分開,並回傳分開的結果。
5878
				#將固定格式的字串分開,並回傳分開的結果。
5879
				#回傳的參數:
5879
				#回傳的參數:
5880
				#$result["oriStr"],要分割的原始字串內容
5880
				#$result["oriStr"],要分割的原始字串內容
5881
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5881
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5883... Line 5883...
5883
				#必填參數:
5883
				#必填參數:
5884
				$conf["stringProcess"]["spiltString"]["stringIn"]=$collateString["dataArray"][1];#要處理的字串。
5884
				$conf["stringProcess"]["spiltString"]["stringIn"]=$collateString["dataArray"][1];#要處理的字串。
5885
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5885
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
5886
				$collateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5886
				$collateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5887
				unset($conf["stringProcess"]["spiltString"]);
5887
				unset($conf["stringProcess"]["spiltString"]);
5888
				
5888
 
5889
				#如果分割字串失敗
5889
				#如果分割字串失敗
5890
				if($collateString["status"]==="false"){
5890
				if($collateString["status"]==="false"){
5891
					
5891
 
5892
					#設置執行不正常
5892
					#設置執行不正常
5893
					$result["status"]="false";
5893
					$result["status"]="false";
5894
					
5894
 
5895
					#設置錯誤訊息
5895
					#設置錯誤訊息
5896
					$result["error"]=$searchResult;
5896
					$result["error"]=$searchResult;
5897
					
5897
 
5898
					#回傳結果
5898
					#回傳結果
5899
					return $result;
5899
					return $result;
5900
					
5900
 
5901
					}#if end
5901
					}#if end
5902
				
5902
 
5903
				#將「,」去掉 
5903
				#將「,」去掉
5904
				#函式說明:
5904
				#函式說明:
5905
				#處理字串避免網頁出錯
5905
				#處理字串避免網頁出錯
5906
				#回傳結果::
5906
				#回傳結果::
5907
				#$result,爲處理好的字串。
5907
				#$result,爲處理好的字串。
5908
				#必填參數:
5908
				#必填參數:
Line 5911... Line 5911...
5911
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
5911
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
5912
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5912
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
5913
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5913
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
5914
				$thisColumnCollate=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5914
				$thisColumnCollate=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
5915
				unset($conf["stringProcess"]["correctCharacter"]);
5915
				unset($conf["stringProcess"]["correctCharacter"]);
5916
				
5916
 
5917
				#如果處理字串失敗
5917
				#如果處理字串失敗
5918
				if($thisColumnCollate["status"]==="false"){
5918
				if($thisColumnCollate["status"]==="false"){
5919
					
5919
 
5920
					#設置執行不正常
5920
					#設置執行不正常
5921
					$result["status"]="false";
5921
					$result["status"]="false";
5922
					
5922
 
5923
					#設置錯誤訊息
5923
					#設置錯誤訊息
5924
					$result["error"]=$thisColumnCollate;
5924
					$result["error"]=$thisColumnCollate;
5925
					
5925
 
5926
					#回傳結果
5926
					#回傳結果
5927
					return $result;
5927
					return $result;
5928
					
5928
 
5929
					}#if end
5929
					}#if end
5930
				
5930
 
5931
				#儲存 COLLATE 資訊字串
5931
				#儲存 COLLATE 資訊字串
5932
				$result["columnCollate"][$i]=$thisColumnCollate["content"];
5932
				$result["columnCollate"][$i]=$thisColumnCollate["content"];
5933
				$result["columnCollate"][$result["columnName"][$i]]=$thisColumnCollate["content"];
5933
				$result["columnCollate"][$result["columnName"][$i]]=$thisColumnCollate["content"];
5934
				
5934
 
5935
				}#if end
5935
				}#if end
5936
				
5936
 
5937
			#反之,沒有 COLLATE  字樣
5937
			#反之,沒有 COLLATE  字樣
5938
			else{
5938
			else{
5939
				#如果存在該欄位
5939
				#如果存在該欄位
5940
				if(isset($result["columnName"][$i])){
5940
				if(isset($result["columnName"][$i])){
5941
								
5941
 
5942
					$result["columnCollate"][$i]="沒有指定";
5942
					$result["columnCollate"][$i]="沒有指定";
5943
					$result["columnCollate"][$result["columnName"][$i]]=$result["columnCollate"][$i];
5943
					$result["columnCollate"][$result["columnName"][$i]]=$result["columnCollate"][$i];
5944
				
5944
 
5945
					}#if end
5945
					}#if end
5946
				
5946
 
5947
				}#else end
5947
				}#else end
5948
				
5948
 
5949
			#檢查是否有COMMENT字樣
5949
			#檢查是否有COMMENT字樣
5950
			#函式說明:
5950
			#函式說明:
5951
			#檢查字串裡面有無指定的關鍵字
5951
			#檢查字串裡面有無指定的關鍵字
5952
			#回傳結果::
5952
			#回傳結果::
5953
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
5953
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 5958... Line 5958...
5958
			$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5958
			$conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
5959
			#可省略參數:
5959
			#可省略參數:
5960
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5960
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
5961
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5961
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
5962
			unset($conf["search"]);
5962
			unset($conf["search"]);
5963
			
5963
 
5964
			#如果尋找關鍵字失敗
5964
			#如果尋找關鍵字失敗
5965
			if($searchResult["status"]==="false"){
5965
			if($searchResult["status"]==="false"){
5966
				
5966
 
5967
				#設置執行不正常
5967
				#設置執行不正常
5968
				$result["status"]="false";
5968
				$result["status"]="false";
5969
				
5969
 
5970
				#設置錯誤訊息
5970
				#設置錯誤訊息
5971
				$result["error"]=$searchResult;
5971
				$result["error"]=$searchResult;
5972
				
5972
 
5973
				#回傳結果
5973
				#回傳結果
5974
				return $result;
5974
				return $result;
5975
				
5975
 
5976
				}#if end
5976
				}#if end
5977
				
5977
 
5978
			#如果有 COMMENT 字樣
5978
			#如果有 COMMENT 字樣
5979
			if($searchResult["founded"]==="true"){
5979
			if($searchResult["founded"]==="true"){
5980
				
5980
 
5981
				#函式說明:
5981
				#函式說明:
5982
				#將固定格式的字串分開,並回傳分開的結果。
5982
				#將固定格式的字串分開,並回傳分開的結果。
5983
				#回傳的參數:
5983
				#回傳的參數:
5984
				#$result["oriStr"],要分割的原始字串內容
5984
				#$result["oriStr"],要分割的原始字串內容
5985
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
5985
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 5987... Line 5987...
5987
				#必填參數:
5987
				#必填參數:
5988
				$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5988
				$conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
5989
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="COMMENT ";#爲以哪個符號作爲分割
5989
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="COMMENT ";#爲以哪個符號作爲分割
5990
				$commentString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5990
				$commentString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
5991
				unset($conf["stringProcess"]["spiltString"]);
5991
				unset($conf["stringProcess"]["spiltString"]);
5992
				
5992
 
5993
				#如果分割字串失敗
5993
				#如果分割字串失敗
5994
				if($commentString["status"]=="false"){
5994
				if($commentString["status"]=="false"){
5995
					
5995
 
5996
					#設置執行不正常
5996
					#設置執行不正常
5997
					$result["status"]="false";
5997
					$result["status"]="false";
5998
					
5998
 
5999
					#設置錯誤訊息
5999
					#設置錯誤訊息
6000
					$result["error"]=$commentString;
6000
					$result["error"]=$commentString;
6001
					
6001
 
6002
					#回傳結果
6002
					#回傳結果
6003
					return $result;
6003
					return $result;
6004
					
6004
 
6005
					}#if end
6005
					}#if end
6006
				
6006
 
6007
				#函式說明:
6007
				#函式說明:
6008
				#將固定格式的字串分開,並回傳分開的結果。
6008
				#將固定格式的字串分開,並回傳分開的結果。
6009
				#回傳的參數:
6009
				#回傳的參數:
6010
				#$result["oriStr"],要分割的原始字串內容
6010
				#$result["oriStr"],要分割的原始字串內容
6011
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
6011
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 6013... Line 6013...
6013
				#必填參數:
6013
				#必填參數:
6014
				$conf["stringProcess"]["spiltString"]["stringIn"]=$commentString["dataArray"][1];#要處理的字串。
6014
				$conf["stringProcess"]["spiltString"]["stringIn"]=$commentString["dataArray"][1];#要處理的字串。
6015
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="'";#爲以哪個符號作爲分割
6015
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="'";#爲以哪個符號作爲分割
6016
				$commentString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6016
				$commentString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6017
				unset($conf["stringProcess"]["spiltString"]);
6017
				unset($conf["stringProcess"]["spiltString"]);
6018
				
6018
 
6019
				#如果分割字串失敗
6019
				#如果分割字串失敗
6020
				if($commentString["status"]==="false"){
6020
				if($commentString["status"]==="false"){
6021
					
6021
 
6022
					#設置執行不正常
6022
					#設置執行不正常
6023
					$result["status"]="false";
6023
					$result["status"]="false";
6024
					
6024
 
6025
					#設置錯誤訊息
6025
					#設置錯誤訊息
6026
					$result["error"]=$commentString;
6026
					$result["error"]=$commentString;
6027
					
6027
 
6028
					#回傳結果
6028
					#回傳結果
6029
					return $result;
6029
					return $result;
6030
					
6030
 
6031
					}#if end
6031
					}#if end
6032
				
6032
 
6033
				#取得該欄位的註解內容
6033
				#取得該欄位的註解內容
6034
				$result["columnComment"][$i]=$commentString["dataArray"][0];
6034
				$result["columnComment"][$i]=$commentString["dataArray"][0];
6035
				$result["columnComment"][$result["columnName"][$i]]=$commentString["dataArray"][0];
6035
				$result["columnComment"][$result["columnName"][$i]]=$commentString["dataArray"][0];
6036
											
6036
 
6037
				}#if end
6037
				}#if end
6038
			
6038
 
6039
			#反之,沒有 COMMENT 字樣
6039
			#反之,沒有 COMMENT 字樣
6040
			else{
6040
			else{
6041
				#如果存在該欄位
6041
				#如果存在該欄位
6042
				if(isset($result["columnName"][$i])){
6042
				if(isset($result["columnName"][$i])){
6043
								
6043
 
6044
					#設置該欄位沒有註解
6044
					#設置該欄位沒有註解
6045
					$result["columnComment"][$i]="沒有註解";
6045
					$result["columnComment"][$i]="沒有註解";
6046
					$result["columnComment"][$result["columnName"][$i]]="沒有註解";
6046
					$result["columnComment"][$result["columnName"][$i]]="沒有註解";
6047
				
6047
 
6048
					}#if end
6048
					}#if end
6049
				
6049
 
6050
				}#else end
6050
				}#else end
6051
											
6051
 
6052
			}#for end
6052
			}#for end
6053
		
6053
 
6054
		#初始化索引鍵的陣列
6054
		#初始化索引鍵的陣列
6055
		$result["key"]=array();
6055
		$result["key"]=array();
6056
			
6056
 
6057
		#依據有幾個鍵值的定義來執行
6057
		#依據有幾個鍵值的定義來執行
6058
		foreach($keyDefine as $unClassifyString){
6058
		foreach($keyDefine as $unClassifyString){
6059
					
6059
 
6060
			#依據第一個單字來進行判斷
6060
			#依據第一個單字來進行判斷
6061
			#可能的有:
6061
			#可能的有:
6062
			#PRIMARY KEY,主鍵
6062
			#PRIMARY KEY,主鍵
6063
			#KEY,索引鍵
6063
			#KEY,索引鍵
6064
			#CONSTRAINT,外鍵
6064
			#CONSTRAINT,外鍵
6065
			
6065
 
6066
			#如果找到 PRIMARY KEY
6066
			#如果找到 PRIMARY KEY
6067
			#函式說明:
6067
			#函式說明:
6068
			#檢查字串裡面有無指定的關鍵字
6068
			#檢查字串裡面有無指定的關鍵字
6069
			#回傳結果::
6069
			#回傳結果::
6070
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6070
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6075... Line 6075...
6075
			$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6075
			$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6076
			#可省略參數:
6076
			#可省略參數:
6077
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6077
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6078
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6078
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6079
			unset($conf["search"]["findKeyWord"]);
6079
			unset($conf["search"]["findKeyWord"]);
6080
			
6080
 
6081
			#如果尋找關鍵字失敗
6081
			#如果尋找關鍵字失敗
6082
			if($searchResult["status"]=="false"){
6082
			if($searchResult["status"]=="false"){
6083
				
6083
 
6084
				#設置執行不正常
6084
				#設置執行不正常
6085
				$result["status"]="false";
6085
				$result["status"]="false";
6086
				
6086
 
6087
				#設置錯誤訊息
6087
				#設置錯誤訊息
6088
				$result["error"]=$searchResult;
6088
				$result["error"]=$searchResult;
6089
				
6089
 
6090
				#回傳結果
6090
				#回傳結果
6091
				return $result;
6091
				return $result;
6092
				
6092
 
6093
				}#if end
6093
				}#if end
6094
			
6094
 
6095
			#如果有找到 PRIMARY KEY
6095
			#如果有找到 PRIMARY KEY
6096
			if($searchResult["founded"]=="true"){ 
6096
			if($searchResult["founded"]=="true"){
6097
				
6097
 
6098
				#函式說明:
6098
				#函式說明:
6099
				#將固定格式的字串分開,並回傳分開的結果。
6099
				#將固定格式的字串分開,並回傳分開的結果。
6100
				#回傳的參數:
6100
				#回傳的參數:
6101
				#$result["oriStr"],要分割的原始字串內容
6101
				#$result["oriStr"],要分割的原始字串內容
6102
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
6102
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 6104... Line 6104...
6104
				#必填參數:
6104
				#必填參數:
6105
				$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6105
				$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6106
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="PRIMARY KEY ";#爲以哪個符號作爲分割
6106
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="PRIMARY KEY ";#爲以哪個符號作爲分割
6107
				$primaryKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6107
				$primaryKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6108
				unset($conf["stringProcess"]["spiltString"]);
6108
				unset($conf["stringProcess"]["spiltString"]);
6109
				
6109
 
6110
				#如果分割字串失敗
6110
				#如果分割字串失敗
6111
				if($primaryKeyString["status"]=="false"){
6111
				if($primaryKeyString["status"]=="false"){
6112
					
6112
 
6113
					#設置執行不正常
6113
					#設置執行不正常
6114
					$result["status"]="false";
6114
					$result["status"]="false";
6115
					
6115
 
6116
					#設置錯誤訊息
6116
					#設置錯誤訊息
6117
					$result["error"]=$primaryKeyString;
6117
					$result["error"]=$primaryKeyString;
6118
					
6118
 
6119
					#回傳結果
6119
					#回傳結果
6120
					return $result;
6120
					return $result;
6121
					
6121
 
6122
					}#if end
6122
					}#if end
6123
				
6123
 
6124
				#取得主鍵的欄位名稱
6124
				#取得主鍵的欄位名稱
6125
				$primaryKey=$primaryKeyString["dataArray"][1];
6125
				$primaryKey=$primaryKeyString["dataArray"][1];
6126
				
6126
 
6127
				#將「,」、「`」、「(」、「)」去掉 
6127
				#將「,」、「`」、「(」、「)」去掉
6128
				#函式說明:
6128
				#函式說明:
6129
				#處理字串避免網頁出錯
6129
				#處理字串避免網頁出錯
6130
				#回傳結果::
6130
				#回傳結果::
6131
				#$result,爲處理好的字串。
6131
				#$result,爲處理好的字串。
6132
				#必填參數:
6132
				#必填參數:
Line 6135... Line 6135...
6135
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
6135
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
6136
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6136
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6137
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6137
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6138
				$getPrimaryKey=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6138
				$getPrimaryKey=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6139
				unset($conf["stringProcess"]["correctCharacter"]);
6139
				unset($conf["stringProcess"]["correctCharacter"]);
6140
				
6140
 
6141
				#如果 處理字串失敗
6141
				#如果 處理字串失敗
6142
				if($getPrimaryKey["status"]=="false"){
6142
				if($getPrimaryKey["status"]=="false"){
6143
					
6143
 
6144
					#設置執行不正常
6144
					#設置執行不正常
6145
					$result["status"]="false";
6145
					$result["status"]="false";
6146
					
6146
 
6147
					#設置錯誤訊息
6147
					#設置錯誤訊息
6148
					$result["error"]=$getPrimaryKey;
6148
					$result["error"]=$getPrimaryKey;
6149
					
6149
 
6150
					#回傳結果
6150
					#回傳結果
6151
					return $result;
6151
					return $result;
6152
					
6152
 
6153
					}#if end
6153
					}#if end
6154
				
6154
 
6155
				#取得主鍵欄位名稱
6155
				#取得主鍵欄位名稱
6156
				$result["primaryKey"]=$getPrimaryKey["content"];
6156
				$result["primaryKey"]=$getPrimaryKey["content"];
6157
				
6157
 
6158
				#後續省略
6158
				#後續省略
6159
				continue;
6159
				continue;
6160
				
6160
 
6161
				}#if end
6161
				}#if end
6162
			
6162
 
6163
			#尋找是否有 KEY 關鍵字
6163
			#尋找是否有 KEY 關鍵字
6164
			#函式說明:
6164
			#函式說明:
6165
			#檢查字串裡面有無指定的關鍵字
6165
			#檢查字串裡面有無指定的關鍵字
6166
			#回傳結果::
6166
			#回傳結果::
6167
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6167
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6172... Line 6172...
6172
			$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6172
			$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6173
			#可省略參數:
6173
			#可省略參數:
6174
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6174
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6175
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6175
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6176
			unset($conf["search"]["findKeyWord"]);
6176
			unset($conf["search"]["findKeyWord"]);
6177
			
6177
 
6178
			#如果尋找關鍵字失敗
6178
			#如果尋找關鍵字失敗
6179
			if($searchResult["status"]=="false"){
6179
			if($searchResult["status"]=="false"){
6180
				
6180
 
6181
				#設置執行不正常
6181
				#設置執行不正常
6182
				$result["status"]="false";
6182
				$result["status"]="false";
6183
				
6183
 
6184
				#設置錯誤訊息
6184
				#設置錯誤訊息
6185
				$result["error"]=$searchResult;
6185
				$result["error"]=$searchResult;
6186
				
6186
 
6187
				#回傳結果
6187
				#回傳結果
6188
				return $result;
6188
				return $result;
6189
				
6189
 
6190
				}#if end
6190
				}#if end
6191
				
6191
 
6192
			#如果有找到 "  KEY "
6192
			#如果有找到 "  KEY "
6193
			if($searchResult["founded"]=="true"){
6193
			if($searchResult["founded"]=="true"){
6194
			
6194
 
6195
				# 用 "  KEY " 來分割
6195
				# 用 "  KEY " 來分割
6196
				#函式說明:
6196
				#函式說明:
6197
				#將固定格式的字串分開,並回傳分開的結果。
6197
				#將固定格式的字串分開,並回傳分開的結果。
6198
				#回傳的參數:
6198
				#回傳的參數:
6199
				#$result["oriStr"],要分割的原始字串內容
6199
				#$result["oriStr"],要分割的原始字串內容
Line 6202... Line 6202...
6202
				#必填參數:
6202
				#必填參數:
6203
				$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6203
				$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6204
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="  KEY ";#爲以哪個符號作爲分割
6204
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="  KEY ";#爲以哪個符號作爲分割
6205
				$keyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6205
				$keyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6206
				unset($conf["stringProcess"]["spiltString"]);
6206
				unset($conf["stringProcess"]["spiltString"]);
6207
			
6207
 
6208
				#如果分割字串失敗
6208
				#如果分割字串失敗
6209
				if($keyString["status"]=="false"){
6209
				if($keyString["status"]=="false"){
6210
					
6210
 
6211
					#設置執行不正常
6211
					#設置執行不正常
6212
					$result["status"]="false";
6212
					$result["status"]="false";
6213
					
6213
 
6214
					#設置錯誤訊息
6214
					#設置錯誤訊息
6215
					$result["error"]=$keyString;
6215
					$result["error"]=$keyString;
6216
					
6216
 
6217
					#回傳結果
6217
					#回傳結果
6218
					return $result;
6218
					return $result;
6219
					
6219
 
6220
					}#if end
6220
					}#if end
6221
			
6221
 
6222
				#函式說明:
6222
				#函式說明:
6223
				#將固定格式的字串分開,並回傳分開的結果。
6223
				#將固定格式的字串分開,並回傳分開的結果。
6224
				#回傳的參數:
6224
				#回傳的參數:
6225
				#$result["oriStr"],要分割的原始字串內容
6225
				#$result["oriStr"],要分割的原始字串內容
6226
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
6226
				#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 6228... Line 6228...
6228
				#必填參數:
6228
				#必填參數:
6229
				$conf["stringProcess"]["spiltString"]["stringIn"]=$keyString["dataArray"][0];#要處理的字串。
6229
				$conf["stringProcess"]["spiltString"]["stringIn"]=$keyString["dataArray"][0];#要處理的字串。
6230
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
6230
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
6231
				$keyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6231
				$keyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6232
				unset($conf["stringProcess"]["spiltString"]);
6232
				unset($conf["stringProcess"]["spiltString"]);
6233
				
6233
 
6234
				#debug
6234
				#debug
6235
				#var_dump($keyString);
6235
				#var_dump($keyString);
6236
				
6236
 
6237
				#如果分割字串失敗
6237
				#如果分割字串失敗
6238
				if($keyString["status"]=="false"){
6238
				if($keyString["status"]=="false"){
6239
					
6239
 
6240
					#設置執行不正常
6240
					#設置執行不正常
6241
					$result["status"]="false";
6241
					$result["status"]="false";
6242
					
6242
 
6243
					#設置錯誤訊息
6243
					#設置錯誤訊息
6244
					$result["error"]=$keyString;
6244
					$result["error"]=$keyString;
6245
					
6245
 
6246
					#回傳結果
6246
					#回傳結果
6247
					return $result;
6247
					return $result;
6248
					
6248
 
6249
					}#if end
6249
					}#if end
6250
				
6250
 
6251
				#取得索引的欄位名稱
6251
				#取得索引的欄位名稱
6252
				$thisKeyColumnName=$keyString["dataArray"][2];
6252
				$thisKeyColumnName=$keyString["dataArray"][2];
6253
				
6253
 
6254
				#取得要回傳的key欄位名稱
6254
				#取得要回傳的key欄位名稱
6255
				$result["key"][]=$thisKeyColumnName;
6255
				$result["key"][]=$thisKeyColumnName;
6256
				
6256
 
6257
				#用index key欄位的名稱來儲存index key的欄位
6257
				#用index key欄位的名稱來儲存index key的欄位
6258
				$result["key"][$thisKeyColumnName]=$thisKeyColumnName;
6258
				$result["key"][$thisKeyColumnName]=$thisKeyColumnName;
6259
				
6259
 
6260
				#取得用於識別 key 的 Constraint
6260
				#取得用於識別 key 的 Constraint
6261
				$keyConstraintName=$keyString["dataArray"][0];
6261
				$keyConstraintName=$keyString["dataArray"][0];
6262
				
6262
 
6263
				#將「`」去掉 
6263
				#將「`」去掉
6264
				#函式說明:
6264
				#函式說明:
6265
				#處理字串避免網頁出錯
6265
				#處理字串避免網頁出錯
6266
				#回傳結果::
6266
				#回傳結果::
6267
				#$result,爲處理好的字串。
6267
				#$result,爲處理好的字串。
6268
				#必填參數:
6268
				#必填參數:
Line 6271... Line 6271...
6271
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
6271
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
6272
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6272
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6273
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6273
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6274
				$thisKeyConstraintName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6274
				$thisKeyConstraintName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6275
				unset($conf["stringProcess"]["correctCharacter"]);
6275
				unset($conf["stringProcess"]["correctCharacter"]);
6276
				
6276
 
6277
				#如果處理字串失敗
6277
				#如果處理字串失敗
6278
				if($thisKeyConstraintName["status"]=="false"){
6278
				if($thisKeyConstraintName["status"]=="false"){
6279
					
6279
 
6280
					#設置執行不正常
6280
					#設置執行不正常
6281
					$result["status"]="false";
6281
					$result["status"]="false";
6282
					
6282
 
6283
					#設置錯誤訊息
6283
					#設置錯誤訊息
6284
					$result["error"]=$thisKeyConstraintName;
6284
					$result["error"]=$thisKeyConstraintName;
6285
					
6285
 
6286
					#回傳結果
6286
					#回傳結果
6287
					return $result;
6287
					return $result;
6288
					
6288
 
6289
					}#if end
6289
					}#if end
6290
				
6290
 
6291
				#儲存 key 的名稱
6291
				#儲存 key 的名稱
6292
				$result["keyConstraintName"][]=$thisKeyConstraintName["content"];
6292
				$result["keyConstraintName"][]=$thisKeyConstraintName["content"];
6293
				
6293
 
6294
				#將 $result["keyConstraintName"] 用 欄位的名稱去儲存
6294
				#將 $result["keyConstraintName"] 用 欄位的名稱去儲存
6295
				$result["keyConstraintName"][$thisKeyColumnName]=$thisKeyConstraintName["content"];
6295
				$result["keyConstraintName"][$thisKeyColumnName]=$thisKeyConstraintName["content"];
6296
				
6296
 
6297
				#後續省略
6297
				#後續省略
6298
				continue;
6298
				continue;
6299
					
6299
 
6300
				}#if end
6300
				}#if end
6301
				
6301
 
6302
			#尋找是否有 CONSTRAINT 關鍵字
6302
			#尋找是否有 CONSTRAINT 關鍵字
6303
			#函式說明:
6303
			#函式說明:
6304
			#檢查字串裡面有無指定的關鍵字
6304
			#檢查字串裡面有無指定的關鍵字
6305
			#回傳結果::
6305
			#回傳結果::
6306
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6306
			#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6311... Line 6311...
6311
			$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6311
			$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6312
			#可省略參數:
6312
			#可省略參數:
6313
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6313
			#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6314
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6314
			$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6315
			unset($conf["search"]["findKeyWord"]);
6315
			unset($conf["search"]["findKeyWord"]);
6316
			
6316
 
6317
			#如果尋找關鍵字失敗
6317
			#如果尋找關鍵字失敗
6318
			if($searchResult["status"]=="false"){
6318
			if($searchResult["status"]=="false"){
6319
				
6319
 
6320
				#設置執行不正常
6320
				#設置執行不正常
6321
				$result["status"]="false";
6321
				$result["status"]="false";
6322
				
6322
 
6323
				#設置錯誤訊息
6323
				#設置錯誤訊息
6324
				$result["error"]=$searchResult;
6324
				$result["error"]=$searchResult;
6325
				
6325
 
6326
				#回傳結果
6326
				#回傳結果
6327
				return $result;
6327
				return $result;
6328
				
6328
 
6329
				}#if end
6329
				}#if end
6330
			
6330
 
6331
			#如果有找到 "CONSTRAINT"
6331
			#如果有找到 "CONSTRAINT"
6332
			if($searchResult["founded"]=="true"){
6332
			if($searchResult["founded"]=="true"){
6333
				
6333
 
6334
				#取得 CONSTRAINT 的名稱
6334
				#取得 CONSTRAINT 的名稱
6335
				
6335
 
6336
				#用 " " 來分割字串
6336
				#用 " " 來分割字串
6337
				#函式說明:
6337
				#函式說明:
6338
				#將固定格式的字串分開,並回傳分開的結果。
6338
				#將固定格式的字串分開,並回傳分開的結果。
6339
				#回傳的參數:
6339
				#回傳的參數:
6340
				#$result["oriStr"],要分割的原始字串內容
6340
				#$result["oriStr"],要分割的原始字串內容
Line 6343... Line 6343...
6343
				#必填參數:
6343
				#必填參數:
6344
				$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6344
				$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6345
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
6345
				$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
6346
				$foreignKeyConstraintString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6346
				$foreignKeyConstraintString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6347
				unset($conf["stringProcess"]["spiltString"]);
6347
				unset($conf["stringProcess"]["spiltString"]);
6348
					
6348
 
6349
				#如果分割字串失敗
6349
				#如果分割字串失敗
6350
				if($foreignKeyConstraintString["status"]=="false"){
6350
				if($foreignKeyConstraintString["status"]=="false"){
6351
					
6351
 
6352
					#設置執行不正常
6352
					#設置執行不正常
6353
					$result["status"]="false";
6353
					$result["status"]="false";
6354
					
6354
 
6355
					#設置錯誤訊息
6355
					#設置錯誤訊息
6356
					$result["error"]=$foreignKeyConstraintString;
6356
					$result["error"]=$foreignKeyConstraintString;
6357
					
6357
 
6358
					#回傳結果
6358
					#回傳結果
6359
					return $result;
6359
					return $result;
6360
					
6360
 
6361
					}#if end	
6361
					}#if end
6362
											
6362
 
6363
				#將 $foreignKeyString[0] 的非必要字元踢除
6363
				#將 $foreignKeyString[0] 的非必要字元踢除
6364
				#將「,」、「`」、「(」、「)」去掉 
6364
				#將「,」、「`」、「(」、「)」去掉
6365
				#函式說明:
6365
				#函式說明:
6366
				#處理字串避免網頁出錯
6366
				#處理字串避免網頁出錯
6367
				#回傳結果::
6367
				#回傳結果::
6368
				#$result,爲處理好的字串。
6368
				#$result,爲處理好的字串。
6369
				#必填參數:
6369
				#必填參數:
Line 6371... Line 6371...
6371
				#可省略參數:
6371
				#可省略參數:
6372
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
6372
				$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
6373
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6373
				#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6374
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6374
				#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6375
				$foreignConstraintName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6375
				$foreignConstraintName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6376
				unset($conf["stringProcess"]["correctCharacter"]);		
6376
				unset($conf["stringProcess"]["correctCharacter"]);
6377
					
6377
 
6378
				#如果處理 CONSTRAINT 字串失敗
6378
				#如果處理 CONSTRAINT 字串失敗
6379
				if($foreignConstraintName["status"]=="false"){
6379
				if($foreignConstraintName["status"]=="false"){
6380
					
6380
 
6381
					#設置執行不正常
6381
					#設置執行不正常
6382
					$result["status"]="false";
6382
					$result["status"]="false";
6383
					
6383
 
6384
					#設置錯誤訊息
6384
					#設置錯誤訊息
6385
					$result["error"]=$foreignConstraintName;
6385
					$result["error"]=$foreignConstraintName;
6386
					
6386
 
6387
					#回傳結果
6387
					#回傳結果
6388
					return $result;
6388
					return $result;
6389
					
6389
 
6390
					}#if end	
6390
					}#if end
6391
					
6391
 
6392
				#儲存 foreignKey 的 CONSTRAINT 名稱
6392
				#儲存 foreignKey 的 CONSTRAINT 名稱
6393
				$result["foreignKey"]["constraintName"][]=$foreignConstraintName["content"];	
6393
				$result["foreignKey"]["constraintName"][]=$foreignConstraintName["content"];
6394
									
6394
 
6395
				#尋找 "FOREIGN KEY"
6395
				#尋找 "FOREIGN KEY"
6396
				#函式說明:
6396
				#函式說明:
6397
				#檢查字串裡面有無指定的關鍵字
6397
				#檢查字串裡面有無指定的關鍵字
6398
				#回傳結果::
6398
				#回傳結果::
6399
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6399
				#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6404... Line 6404...
6404
				$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6404
				$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6405
				#可省略參數:
6405
				#可省略參數:
6406
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6406
				#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6407
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6407
				$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6408
				unset($conf["search"]["findKeyWord"]);
6408
				unset($conf["search"]["findKeyWord"]);
6409
				
6409
 
6410
				#如果尋找關鍵字失敗
6410
				#如果尋找關鍵字失敗
6411
				if($searchResult["status"]=="false"){
6411
				if($searchResult["status"]=="false"){
6412
					
6412
 
6413
					#設置執行不正常
6413
					#設置執行不正常
6414
					$result["status"]="false";
6414
					$result["status"]="false";
6415
					
6415
 
6416
					#設置錯誤訊息
6416
					#設置錯誤訊息
6417
					$result["error"]=$searchResult;
6417
					$result["error"]=$searchResult;
6418
					
6418
 
6419
					#回傳結果
6419
					#回傳結果
6420
					return $result;
6420
					return $result;
6421
					
6421
 
6422
					}#if end
6422
					}#if end
6423
				
6423
 
6424
				#如果有找到 "FOREIGN KEY"
6424
				#如果有找到 "FOREIGN KEY"
6425
				if($searchResult["founded"]=="true"){
6425
				if($searchResult["founded"]=="true"){
6426
					
6426
 
6427
					#用 "FOREIGN KEY " 來分割字串
6427
					#用 "FOREIGN KEY " 來分割字串
6428
					#函式說明:
6428
					#函式說明:
6429
					#將固定格式的字串分開,並回傳分開的結果。
6429
					#將固定格式的字串分開,並回傳分開的結果。
6430
					#回傳的參數:
6430
					#回傳的參數:
6431
					#$result["oriStr"],要分割的原始字串內容
6431
					#$result["oriStr"],要分割的原始字串內容
Line 6434... Line 6434...
6434
					#必填參數:
6434
					#必填參數:
6435
					$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6435
					$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6436
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="FOREIGN KEY ";#爲以哪個符號作爲分割
6436
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="FOREIGN KEY ";#爲以哪個符號作爲分割
6437
					$foreignKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6437
					$foreignKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6438
					unset($conf["stringProcess"]["spiltString"]);
6438
					unset($conf["stringProcess"]["spiltString"]);
6439
					
6439
 
6440
					#如果分割字串失敗
6440
					#如果分割字串失敗
6441
					if($foreignKeyString["status"]=="false"){
6441
					if($foreignKeyString["status"]=="false"){
6442
						
6442
 
6443
						#設置執行不正常
6443
						#設置執行不正常
6444
						$result["status"]="false";
6444
						$result["status"]="false";
6445
						
6445
 
6446
						#設置錯誤訊息
6446
						#設置錯誤訊息
6447
						$result["error"]=$foreignKeyString;
6447
						$result["error"]=$foreignKeyString;
6448
						
6448
 
6449
						#回傳結果
6449
						#回傳結果
6450
						return $result;
6450
						return $result;
6451
						
6451
 
6452
						}#if end	
6452
						}#if end
6453
					
6453
 
6454
					#用 " " 來分割字串
6454
					#用 " " 來分割字串
6455
					#函式說明:
6455
					#函式說明:
6456
					#將固定格式的字串分開,並回傳分開的結果。
6456
					#將固定格式的字串分開,並回傳分開的結果。
6457
					#回傳的參數:
6457
					#回傳的參數:
6458
					#$result["oriStr"],要分割的原始字串內容
6458
					#$result["oriStr"],要分割的原始字串內容
Line 6461... Line 6461...
6461
					#必填參數:
6461
					#必填參數:
6462
					$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyString["dataArray"][1];#要處理的字串。
6462
					$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyString["dataArray"][1];#要處理的字串。
6463
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
6463
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
6464
					$foreignKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6464
					$foreignKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6465
					unset($conf["stringProcess"]["spiltString"]);
6465
					unset($conf["stringProcess"]["spiltString"]);
6466
					
6466
 
6467
					#如果分割字串失敗
6467
					#如果分割字串失敗
6468
					if($foreignKeyString["status"]=="false"){
6468
					if($foreignKeyString["status"]=="false"){
6469
						
6469
 
6470
						#設置執行不正常
6470
						#設置執行不正常
6471
						$result["status"]="false";
6471
						$result["status"]="false";
6472
						
6472
 
6473
						#設置錯誤訊息
6473
						#設置錯誤訊息
6474
						$result["error"]=$foreignKeyString;
6474
						$result["error"]=$foreignKeyString;
6475
						
6475
 
6476
						#回傳結果
6476
						#回傳結果
6477
						return $result;
6477
						return $result;
6478
						
6478
 
6479
						}#if end	
6479
						}#if end
6480
					
6480
 
6481
					#將 $foreignKeyString[0] 的非必要字元踢除
6481
					#將 $foreignKeyString[0] 的非必要字元踢除
6482
					#將「,」、「`」、「(」、「)」去掉 
6482
					#將「,」、「`」、「(」、「)」去掉
6483
					#函式說明:
6483
					#函式說明:
6484
					#處理字串避免網頁出錯
6484
					#處理字串避免網頁出錯
6485
					#回傳結果::
6485
					#回傳結果::
6486
					#$result,爲處理好的字串。
6486
					#$result,爲處理好的字串。
6487
					#必填參數:
6487
					#必填參數:
Line 6490... Line 6490...
6490
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
6490
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
6491
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6491
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6492
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6492
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6493
					$thisForeignKeyColumnName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6493
					$thisForeignKeyColumnName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6494
					unset($conf["stringProcess"]["correctCharacter"]);
6494
					unset($conf["stringProcess"]["correctCharacter"]);
6495
					
6495
 
6496
					#如果 處理字串失敗
6496
					#如果 處理字串失敗
6497
					if($thisForeignKeyColumnName["status"]=="false"){
6497
					if($thisForeignKeyColumnName["status"]=="false"){
6498
						
6498
 
6499
						#設置執行不正常
6499
						#設置執行不正常
6500
						$result["status"]="false";
6500
						$result["status"]="false";
6501
						
6501
 
6502
						#設置錯誤訊息
6502
						#設置錯誤訊息
6503
						$result["error"]=$thisForeignKeyColumnName;
6503
						$result["error"]=$thisForeignKeyColumnName;
6504
						
6504
 
6505
						#回傳結果
6505
						#回傳結果
6506
						return $result;
6506
						return $result;
6507
						
6507
 
6508
						}#if end
6508
						}#if end
6509
					
6509
 
6510
					#儲存外鍵欄位的名稱
6510
					#儲存外鍵欄位的名稱
6511
					$result["foreignKey"]["columnName"][]=$thisForeignKeyColumnName["content"];
6511
					$result["foreignKey"]["columnName"][]=$thisForeignKeyColumnName["content"];
6512
											
6512
 
6513
					#用該外鍵欄位的名稱,作為key來存放外鍵欄位的名稱
6513
					#用該外鍵欄位的名稱,作為key來存放外鍵欄位的名稱
6514
					$result["foreignKey"]["columnName"][$thisForeignKeyColumnName["content"]]=$thisForeignKeyColumnName["content"];
6514
					$result["foreignKey"]["columnName"][$thisForeignKeyColumnName["content"]]=$thisForeignKeyColumnName["content"];
6515
											
6515
 
6516
					#用 "REFERENCES " 來分割字串
6516
					#用 "REFERENCES " 來分割字串
6517
					#函式說明:
6517
					#函式說明:
6518
					#將固定格式的字串分開,並回傳分開的結果。
6518
					#將固定格式的字串分開,並回傳分開的結果。
6519
					#回傳的參數:
6519
					#回傳的參數:
6520
					#$result["oriStr"],要分割的原始字串內容
6520
					#$result["oriStr"],要分割的原始字串內容
Line 6523... Line 6523...
6523
					#必填參數:
6523
					#必填參數:
6524
					$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6524
					$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6525
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="REFERENCES ";#爲以哪個符號作爲分割
6525
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]="REFERENCES ";#爲以哪個符號作爲分割
6526
					$foreignKeyReferencesString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6526
					$foreignKeyReferencesString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6527
					unset($conf["stringProcess"]["spiltString"]);
6527
					unset($conf["stringProcess"]["spiltString"]);
6528
					
6528
 
6529
					#如果分割字串失敗
6529
					#如果分割字串失敗
6530
					if($foreignKeyReferencesString["status"]=="false"){
6530
					if($foreignKeyReferencesString["status"]=="false"){
6531
						
6531
 
6532
						#設置執行不正常
6532
						#設置執行不正常
6533
						$result["status"]="false";
6533
						$result["status"]="false";
6534
						
6534
 
6535
						#設置錯誤訊息
6535
						#設置錯誤訊息
6536
						$result["error"]=$foreignKeyReferencesString;
6536
						$result["error"]=$foreignKeyReferencesString;
6537
						
6537
 
6538
						#回傳結果
6538
						#回傳結果
6539
						return $result;
6539
						return $result;
6540
						
6540
 
6541
						}#if end
6541
						}#if end
6542
					
6542
 
6543
					#用 " " 來分割字串
6543
					#用 " " 來分割字串
6544
					#函式說明:
6544
					#函式說明:
6545
					#將固定格式的字串分開,並回傳分開的結果。
6545
					#將固定格式的字串分開,並回傳分開的結果。
6546
					#回傳的參數:
6546
					#回傳的參數:
6547
					#$result["oriStr"],要分割的原始字串內容
6547
					#$result["oriStr"],要分割的原始字串內容
Line 6550... Line 6550...
6550
					#必填參數:
6550
					#必填參數:
6551
					$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyReferencesString["dataArray"][1];#要處理的字串。
6551
					$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyReferencesString["dataArray"][1];#要處理的字串。
6552
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
6552
					$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
6553
					$foreignKeyReferencesString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6553
					$foreignKeyReferencesString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6554
					unset($conf["stringProcess"]["spiltString"]);
6554
					unset($conf["stringProcess"]["spiltString"]);
6555
					
6555
 
6556
					#如果分割字串失敗
6556
					#如果分割字串失敗
6557
					if($foreignKeyReferencesString["status"]=="false"){
6557
					if($foreignKeyReferencesString["status"]=="false"){
6558
						
6558
 
6559
						#設置執行不正常
6559
						#設置執行不正常
6560
						$result["status"]="false";
6560
						$result["status"]="false";
6561
						
6561
 
6562
						#設置錯誤訊息
6562
						#設置錯誤訊息
6563
						$result["error"]=$foreignKeyReferencesString;
6563
						$result["error"]=$foreignKeyReferencesString;
6564
						
6564
 
6565
						#回傳結果
6565
						#回傳結果
6566
						return $result;
6566
						return $result;
6567
						
6567
 
6568
						}#if end
6568
						}#if end
6569
					
6569
 
6570
					#將 $foreignKeyString[0] 的非必要字元踢除
6570
					#將 $foreignKeyString[0] 的非必要字元踢除
6571
					#將「,」、「`」、「(」、「)」去掉 
6571
					#將「,」、「`」、「(」、「)」去掉
6572
					#函式說明:
6572
					#函式說明:
6573
					#處理字串避免網頁出錯
6573
					#處理字串避免網頁出錯
6574
					#回傳結果::
6574
					#回傳結果::
6575
					#$result,爲處理好的字串。
6575
					#$result,爲處理好的字串。
6576
					#必填參數:
6576
					#必填參數:
Line 6579... Line 6579...
6579
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
6579
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
6580
						#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6580
						#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6581
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6581
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6582
					$tempReferencesColumn=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6582
					$tempReferencesColumn=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6583
					unset($conf["stringProcess"]["correctCharacter"]);
6583
					unset($conf["stringProcess"]["correctCharacter"]);
6584
					
6584
 
6585
					#如果 處理字串失敗
6585
					#如果 處理字串失敗
6586
					if($tempReferencesColumn["status"]=="false"){
6586
					if($tempReferencesColumn["status"]=="false"){
6587
						
6587
 
6588
						#設置執行不正常
6588
						#設置執行不正常
6589
						$result["status"]="false";
6589
						$result["status"]="false";
6590
						
6590
 
6591
						#設置錯誤訊息
6591
						#設置錯誤訊息
6592
						$result["error"]=$tempReferencesColumn;
6592
						$result["error"]=$tempReferencesColumn;
6593
						
6593
 
6594
						#回傳結果
6594
						#回傳結果
6595
						return $result;
6595
						return $result;
6596
						
6596
 
6597
						}#if end
6597
						}#if end
6598
					
6598
 
6599
					#取得參照的欄位名稱
6599
					#取得參照的欄位名稱
6600
					$result["foreignKey"]["referencesColumn"][]=$tempReferencesColumn["content"];
6600
					$result["foreignKey"]["referencesColumn"][]=$tempReferencesColumn["content"];
6601
					
6601
 
6602
					#用欄位名稱來儲存參照的資料表
6602
					#用欄位名稱來儲存參照的資料表
6603
					$result["foreignKey"]["referencesColumn"][$thisForeignKeyColumnName["content"]]=$tempReferencesColumn["content"];
6603
					$result["foreignKey"]["referencesColumn"][$thisForeignKeyColumnName["content"]]=$tempReferencesColumn["content"];
6604
					
6604
 
6605
					#將 $foreignKeyString[0] 的非必要字元踢除
6605
					#將 $foreignKeyString[0] 的非必要字元踢除
6606
					#將「,」、「`」、「(」、「)」去掉 
6606
					#將「,」、「`」、「(」、「)」去掉
6607
					#函式說明:
6607
					#函式說明:
6608
					#處理字串避免網頁出錯
6608
					#處理字串避免網頁出錯
6609
					#回傳結果::
6609
					#回傳結果::
6610
					#$result,爲處理好的字串。
6610
					#$result,爲處理好的字串。
6611
					#必填參數:
6611
					#必填參數:
Line 6614... Line 6614...
6614
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
6614
					$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
6615
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6615
					#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6616
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6616
					#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6617
					$tempReferencesTable=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6617
					$tempReferencesTable=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6618
					unset($conf["stringProcess"]["correctCharacter"]);
6618
					unset($conf["stringProcess"]["correctCharacter"]);
6619
						
6619
 
6620
					#如果處理字串失敗
6620
					#如果處理字串失敗
6621
					if($tempReferencesTable["status"]=="false"){
6621
					if($tempReferencesTable["status"]=="false"){
6622
						
6622
 
6623
						#設置執行不正常
6623
						#設置執行不正常
6624
						$result["status"]="false";
6624
						$result["status"]="false";
6625
						
6625
 
6626
						#設置錯誤訊息
6626
						#設置錯誤訊息
6627
						$result["error"]=$tempReferencesTable;
6627
						$result["error"]=$tempReferencesTable;
6628
						
6628
 
6629
						#回傳結果
6629
						#回傳結果
6630
						return $result;
6630
						return $result;
6631
						
6631
 
6632
						}#if end	
6632
						}#if end
6633
						
6633
 
6634
					#取得參照的資料表
6634
					#取得參照的資料表
6635
					$result["foreignKey"]["referencesTable"][]=$tempReferencesTable["content"];
6635
					$result["foreignKey"]["referencesTable"][]=$tempReferencesTable["content"];
6636
										
6636
 
6637
					#用欄位名稱來儲存參照的欄位
6637
					#用欄位名稱來儲存參照的欄位
6638
					$result["foreignKey"]["referencesTable"][$thisForeignKeyColumnName["content"]]=$tempReferencesTable["content"];
6638
					$result["foreignKey"]["referencesTable"][$thisForeignKeyColumnName["content"]]=$tempReferencesTable["content"];
6639
											
6639
 
6640
					#如果有 "ON UPDATE" 存在
6640
					#如果有 "ON UPDATE" 存在
6641
					#函式說明:
6641
					#函式說明:
6642
					#檢查字串裡面有無指定的關鍵字
6642
					#檢查字串裡面有無指定的關鍵字
6643
					#回傳結果::
6643
					#回傳結果::
6644
					#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6644
					#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6649... Line 6649...
6649
					$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6649
					$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6650
					#可省略參數:
6650
					#可省略參數:
6651
					#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6651
					#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6652
					$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6652
					$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6653
					unset($conf["search"]["findKeyWord"]);
6653
					unset($conf["search"]["findKeyWord"]);
6654
					
6654
 
6655
					#如果尋找關鍵字失敗
6655
					#如果尋找關鍵字失敗
6656
					if($searchResult["status"]=="false"){
6656
					if($searchResult["status"]=="false"){
6657
						
6657
 
6658
						#設置執行不正常
6658
						#設置執行不正常
6659
						$result["status"]="false";
6659
						$result["status"]="false";
6660
						
6660
 
6661
						#設置錯誤訊息
6661
						#設置錯誤訊息
6662
						$result["error"]=$searchResult;
6662
						$result["error"]=$searchResult;
6663
						
6663
 
6664
						#回傳結果
6664
						#回傳結果
6665
						return $result;
6665
						return $result;
6666
						
6666
 
6667
						}#if end
6667
						}#if end
6668
					
6668
 
6669
					#如果有找到 "ON UPDATE"
6669
					#如果有找到 "ON UPDATE"
6670
					if($searchResult["founded"]=="true"){
6670
					if($searchResult["founded"]=="true"){
6671
						
6671
 
6672
						#用 "ON UPDATE " 來分割字串
6672
						#用 "ON UPDATE " 來分割字串
6673
						#函式說明:
6673
						#函式說明:
6674
						#將固定格式的字串分開,並回傳分開的結果。
6674
						#將固定格式的字串分開,並回傳分開的結果。
6675
						#回傳的參數:
6675
						#回傳的參數:
6676
						#$result["oriStr"],要分割的原始字串內容
6676
						#$result["oriStr"],要分割的原始字串內容
Line 6679... Line 6679...
6679
						#必填參數:
6679
						#必填參數:
6680
						$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6680
						$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6681
						$conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON UPDATE ";#爲以哪個符號作爲分割
6681
						$conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON UPDATE ";#爲以哪個符號作爲分割
6682
						$foreignKeyOnUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6682
						$foreignKeyOnUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6683
						unset($conf["stringProcess"]["spiltString"]);
6683
						unset($conf["stringProcess"]["spiltString"]);
6684
						
6684
 
6685
						#如果分割字串失敗
6685
						#如果分割字串失敗
6686
						if($foreignKeyOnUpdateString["status"]=="false"){
6686
						if($foreignKeyOnUpdateString["status"]=="false"){
6687
							
6687
 
6688
							#設置執行不正常
6688
							#設置執行不正常
6689
							$result["status"]="false";
6689
							$result["status"]="false";
6690
							
6690
 
6691
							#設置錯誤訊息
6691
							#設置錯誤訊息
6692
							$result["error"]=$searchResult;
6692
							$result["error"]=$searchResult;
6693
							
6693
 
6694
							#回傳結果
6694
							#回傳結果
6695
							return $result;
6695
							return $result;
6696
							
6696
 
6697
							}#if end
6697
							}#if end
6698
						
6698
 
6699
						#檢查裏面是否含有 " ON DELETE " 字樣
6699
						#檢查裏面是否含有 " ON DELETE " 字樣
6700
						#函式說明:
6700
						#函式說明:
6701
						#檢查字串裡面有無指定的關鍵字
6701
						#檢查字串裡面有無指定的關鍵字
6702
						#回傳結果::
6702
						#回傳結果::
6703
						#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6703
						#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6708... Line 6708...
6708
						$conf["search"]["findKeyWord"]["string"]=$foreignKeyOnUpdateString["dataArray"][1];#要被搜尋的字串內容
6708
						$conf["search"]["findKeyWord"]["string"]=$foreignKeyOnUpdateString["dataArray"][1];#要被搜尋的字串內容
6709
						#可省略參數:
6709
						#可省略參數:
6710
						#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6710
						#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6711
						$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6711
						$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6712
						unset($conf["search"]["findKeyWord"]);
6712
						unset($conf["search"]["findKeyWord"]);
6713
						
6713
 
6714
						#如果尋找關鍵字失敗
6714
						#如果尋找關鍵字失敗
6715
						if($searchResult["status"]=="false"){
6715
						if($searchResult["status"]=="false"){
6716
							
6716
 
6717
							#設置執行不正常
6717
							#設置執行不正常
6718
							$result["status"]="false";
6718
							$result["status"]="false";
6719
							
6719
 
6720
							#設置錯誤訊息
6720
							#設置錯誤訊息
6721
							$result["error"]=$searchResult;
6721
							$result["error"]=$searchResult;
6722
							
6722
 
6723
							#回傳結果
6723
							#回傳結果
6724
							return $result;
6724
							return $result;
6725
							
6725
 
6726
							}#if end
6726
							}#if end
6727
						
6727
 
6728
						#如果裏面含有 "ON DELETE " 字樣
6728
						#如果裏面含有 "ON DELETE " 字樣
6729
						if($searchResult["founded"]=="true"){
6729
						if($searchResult["founded"]=="true"){
6730
							
6730
 
6731
							#我們只要取得 "ON DELETE " 前面的內容
6731
							#我們只要取得 "ON DELETE " 前面的內容
6732
							#用"ON UPDATE "來分割
6732
							#用"ON UPDATE "來分割
6733
							#函式說明:
6733
							#函式說明:
6734
							#將固定格式的字串分開,並回傳分開的結果。
6734
							#將固定格式的字串分開,並回傳分開的結果。
6735
							#回傳的參數:
6735
							#回傳的參數:
Line 6740... Line 6740...
6740
							$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyOnUpdateString["dataArray"][1];#要處理的字串。
6740
							$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyOnUpdateString["dataArray"][1];#要處理的字串。
6741
							$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ON DELETE ";#爲以哪個符號作爲分割
6741
							$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ON DELETE ";#爲以哪個符號作爲分割
6742
							$foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6742
							$foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6743
							unset($conf["stringProcess"]["spiltString"]);
6743
							unset($conf["stringProcess"]["spiltString"]);
6744
							#var_dump($foreignKeyOnDeleteString);
6744
							#var_dump($foreignKeyOnDeleteString);
6745
							
6745
 
6746
							#如果分割字串失敗
6746
							#如果分割字串失敗
6747
							if($foreignKeyOnDeleteString["status"]=="false"){
6747
							if($foreignKeyOnDeleteString["status"]=="false"){
6748
							
6748
 
6749
								#設置執行不正常
6749
								#設置執行不正常
6750
								$result["status"]="false";
6750
								$result["status"]="false";
6751
								
6751
 
6752
								#設置錯誤訊息
6752
								#設置錯誤訊息
6753
								$result["error"]=$foreignKeyOnDeleteString;
6753
								$result["error"]=$foreignKeyOnDeleteString;
6754
								
6754
 
6755
								#回傳結果
6755
								#回傳結果
6756
								return $result;
6756
								return $result;
6757
								
6757
 
6758
								}#if end
6758
								}#if end
6759
							
6759
 
6760
							$foreignKeyOnUpdateString=$foreignKeyOnUpdateString["dataArray"][0];
6760
							$foreignKeyOnUpdateString=$foreignKeyOnUpdateString["dataArray"][0];
6761
							
6761
 
6762
							#將 $foreignKeyOnUpdateString 的非必要字元踢除
6762
							#將 $foreignKeyOnUpdateString 的非必要字元踢除
6763
							#將「,」、「`」、「(」、「)」去掉 
6763
							#將「,」、「`」、「(」、「)」去掉
6764
							#函式說明:
6764
							#函式說明:
6765
							#處理字串避免網頁出錯
6765
							#處理字串避免網頁出錯
6766
							#回傳結果::
6766
							#回傳結果::
6767
							#$result,爲處理好的字串。
6767
							#$result,爲處理好的字串。
6768
							#必填參數:
6768
							#必填參數:
Line 6771... Line 6771...
6771
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
6771
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
6772
								#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6772
								#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6773
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6773
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6774
							$tempOnUpdateAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6774
							$tempOnUpdateAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6775
							unset($conf["stringProcess"]["correctCharacter"]);
6775
							unset($conf["stringProcess"]["correctCharacter"]);
6776
							
6776
 
6777
							#如果 處理字串 失敗
6777
							#如果 處理字串 失敗
6778
							if($tempOnUpdateAction["status"]=="false"){
6778
							if($tempOnUpdateAction["status"]=="false"){
6779
								
6779
 
6780
								#設置執行不正常
6780
								#設置執行不正常
6781
								$result["status"]="false";
6781
								$result["status"]="false";
6782
								
6782
 
6783
								#設置錯誤訊息
6783
								#設置錯誤訊息
6784
								$result["error"]=$tempOnUpdateAction;
6784
								$result["error"]=$tempOnUpdateAction;
6785
								
6785
 
6786
								#回傳結果
6786
								#回傳結果
6787
								return $result;
6787
								return $result;
6788
								
6788
 
6789
								}#if end
6789
								}#if end
6790
							
6790
 
6791
							#紀錄 ON UPDATE 的動作字串
6791
							#紀錄 ON UPDATE 的動作字串
6792
							$result["foreignKey"]["onUpdateAction"][]=$tempOnUpdateAction["content"];
6792
							$result["foreignKey"]["onUpdateAction"][]=$tempOnUpdateAction["content"];
6793
							
6793
 
6794
							#用 freign key 的名稱來紀錄外鍵更新的動作
6794
							#用 freign key 的名稱來紀錄外鍵更新的動作
6795
							$result["foreignKey"]["onUpdateAction"][$thisForeignKeyColumnName]=$tempOnUpdateAction["content"];
6795
							$result["foreignKey"]["onUpdateAction"][$thisForeignKeyColumnName]=$tempOnUpdateAction["content"];
6796
							
6796
 
6797
							}#if end
6797
							}#if end
6798
 
6798
 
6799
						#反之 沒有 "ON DELETE " 字樣
6799
						#反之 沒有 "ON DELETE " 字樣
6800
						else{	
6800
						else{
6801
							
6801
 
6802
							#var_dump($foreignKeyOnUpdateString["dataArray"][1]);
6802
							#var_dump($foreignKeyOnUpdateString["dataArray"][1]);
6803
														
6803
 
6804
							#將 $foreignKeyOnUpdateString 的非必要字元踢除
6804
							#將 $foreignKeyOnUpdateString 的非必要字元踢除
6805
							#將「,」、「`」、「(」、「)」去掉 
6805
							#將「,」、「`」、「(」、「)」去掉
6806
							#函式說明:
6806
							#函式說明:
6807
							#處理字串避免網頁出錯
6807
							#處理字串避免網頁出錯
6808
							#回傳結果::
6808
							#回傳結果::
6809
							#$result,爲處理好的字串。
6809
							#$result,爲處理好的字串。
6810
							#必填參數:
6810
							#必填參數:
Line 6813... Line 6813...
6813
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
6813
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
6814
								#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6814
								#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6815
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6815
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6816
							$tempOnUpdateAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6816
							$tempOnUpdateAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6817
							unset($conf["stringProcess"]["correctCharacter"]);
6817
							unset($conf["stringProcess"]["correctCharacter"]);
6818
							
6818
 
6819
							#如果處理字串失敗
6819
							#如果處理字串失敗
6820
							if($tempOnUpdateAction["status"]=="false"){
6820
							if($tempOnUpdateAction["status"]=="false"){
6821
								
6821
 
6822
								#設置執行不正常
6822
								#設置執行不正常
6823
								$result["status"]="false";
6823
								$result["status"]="false";
6824
								
6824
 
6825
								#設置錯誤訊息
6825
								#設置錯誤訊息
6826
								$result["error"]=$tempOnUpdateAction;
6826
								$result["error"]=$tempOnUpdateAction;
6827
								
6827
 
6828
								#回傳結果
6828
								#回傳結果
6829
								return $result;
6829
								return $result;
6830
								
6830
 
6831
								}#if end
6831
								}#if end
6832
							
6832
 
6833
							#紀錄外鍵更新的動作
6833
							#紀錄外鍵更新的動作
6834
							$result["foreignKey"]["onUpdateAction"][]=$tempOnUpdateAction["content"];
6834
							$result["foreignKey"]["onUpdateAction"][]=$tempOnUpdateAction["content"];
6835
							
6835
 
6836
							#用 freign key 的名稱來紀錄外鍵更新的動作
6836
							#用 freign key 的名稱來紀錄外鍵更新的動作
6837
							$result["foreignKey"]["onUpdateAction"][$thisForeignKeyColumnName["content"]]=$tempOnUpdateAction["content"];
6837
							$result["foreignKey"]["onUpdateAction"][$thisForeignKeyColumnName["content"]]=$tempOnUpdateAction["content"];
6838
						
6838
 
6839
							}#else end
6839
							}#else end
6840
						
6840
 
6841
						}#if end
6841
						}#if end
6842
						
6842
 
6843
					#如果有 "ON DELETE" 存在
6843
					#如果有 "ON DELETE" 存在
6844
					#函式說明:
6844
					#函式說明:
6845
					#檢查字串裡面有無指定的關鍵字
6845
					#檢查字串裡面有無指定的關鍵字
6846
					#回傳結果::
6846
					#回傳結果::
6847
					#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6847
					#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6852... Line 6852...
6852
					$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6852
					$conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
6853
					#可省略參數:
6853
					#可省略參數:
6854
					#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6854
					#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6855
					$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6855
					$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6856
					unset($conf["search"]["findKeyWord"]);
6856
					unset($conf["search"]["findKeyWord"]);
6857
					
6857
 
6858
					#如果尋找關鍵字失敗
6858
					#如果尋找關鍵字失敗
6859
					if($searchResult["status"]=="false"){
6859
					if($searchResult["status"]=="false"){
6860
								
6860
 
6861
						#設置執行不正常
6861
						#設置執行不正常
6862
						$result["status"]="false";
6862
						$result["status"]="false";
6863
						
6863
 
6864
						#設置錯誤訊息
6864
						#設置錯誤訊息
6865
						$result["error"]=$searchResult;
6865
						$result["error"]=$searchResult;
6866
						
6866
 
6867
						#回傳結果
6867
						#回傳結果
6868
						return $result;
6868
						return $result;
6869
						
6869
 
6870
						}#if end
6870
						}#if end
6871
					
6871
 
6872
					#如果有找到 "ON DELETE"
6872
					#如果有找到 "ON DELETE"
6873
					if($searchResult["founded"]=="true"){							
6873
					if($searchResult["founded"]=="true"){
6874
					
6874
 
6875
						#用 "ON DELETE " 來分割字串
6875
						#用 "ON DELETE " 來分割字串
6876
						#函式說明:
6876
						#函式說明:
6877
						#將固定格式的字串分開,並回傳分開的結果。
6877
						#將固定格式的字串分開,並回傳分開的結果。
6878
						#回傳的參數:
6878
						#回傳的參數:
6879
						#$result["oriStr"],要分割的原始字串內容
6879
						#$result["oriStr"],要分割的原始字串內容
Line 6882... Line 6882...
6882
						#必填參數:
6882
						#必填參數:
6883
						$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6883
						$conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
6884
						$conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON DELETE ";#爲以哪個符號作爲分割
6884
						$conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON DELETE ";#爲以哪個符號作爲分割
6885
						$foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6885
						$foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6886
						unset($conf["stringProcess"]["spiltString"]);
6886
						unset($conf["stringProcess"]["spiltString"]);
6887
						
6887
 
6888
						#如果分割字串失敗
6888
						#如果分割字串失敗
6889
						if($foreignKeyOnDeleteString["status"]=="false"){
6889
						if($foreignKeyOnDeleteString["status"]=="false"){
6890
								
6890
 
6891
							#設置執行不正常
6891
							#設置執行不正常
6892
							$result["status"]="false";
6892
							$result["status"]="false";
6893
							
6893
 
6894
							#設置錯誤訊息
6894
							#設置錯誤訊息
6895
							$result["error"]=$foreignKeyOnDeleteString;
6895
							$result["error"]=$foreignKeyOnDeleteString;
6896
							
6896
 
6897
							#回傳結果
6897
							#回傳結果
6898
							return $result;
6898
							return $result;
6899
							
6899
 
6900
							}#if end
6900
							}#if end
6901
						
6901
 
6902
						#檢查裏面是否含有 " ON UPDATE " 字樣
6902
						#檢查裏面是否含有 " ON UPDATE " 字樣
6903
						#函式說明:
6903
						#函式說明:
6904
						#檢查字串裡面有無指定的關鍵字
6904
						#檢查字串裡面有無指定的關鍵字
6905
						#回傳結果::
6905
						#回傳結果::
6906
						#$result["status"],"true"代表執行成功,"false"代表執行失敗。
6906
						#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 6911... Line 6911...
6911
						$conf["search"]["findKeyWord"]["string"]=$foreignKeyOnDeleteString["dataArray"][1];#要被搜尋的字串內容
6911
						$conf["search"]["findKeyWord"]["string"]=$foreignKeyOnDeleteString["dataArray"][1];#要被搜尋的字串內容
6912
						#可省略參數:
6912
						#可省略參數:
6913
						#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6913
						#$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
6914
						$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6914
						$searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
6915
						unset($conf["search"]["findKeyWord"]);
6915
						unset($conf["search"]["findKeyWord"]);
6916
						
6916
 
6917
						#如果分割字串失敗
6917
						#如果分割字串失敗
6918
						if($searchResult["status"]=="false"){
6918
						if($searchResult["status"]=="false"){
6919
								
6919
 
6920
							#設置執行不正常
6920
							#設置執行不正常
6921
							$result["status"]="false";
6921
							$result["status"]="false";
6922
							
6922
 
6923
							#設置錯誤訊息
6923
							#設置錯誤訊息
6924
							$result["error"]=$searchResult;
6924
							$result["error"]=$searchResult;
6925
							
6925
 
6926
							#回傳結果
6926
							#回傳結果
6927
							return $result;
6927
							return $result;
6928
							
6928
 
6929
							}#if end
6929
							}#if end
6930
						
6930
 
6931
						#如果裏面含有 "ON UPDATE " 字樣
6931
						#如果裏面含有 "ON UPDATE " 字樣
6932
						if($searchResult["founded"]=="true"){
6932
						if($searchResult["founded"]=="true"){
6933
							
6933
 
6934
							#我們只要取得 "ON UPDATE " 前面的內容
6934
							#我們只要取得 "ON UPDATE " 前面的內容
6935
							#用"ON UPDATE "來分割
6935
							#用"ON UPDATE "來分割
6936
							#函式說明:
6936
							#函式說明:
6937
							#將固定格式的字串分開,並回傳分開的結果。
6937
							#將固定格式的字串分開,並回傳分開的結果。
6938
							#回傳的參數:
6938
							#回傳的參數:
Line 6942... Line 6942...
6942
							#必填參數:
6942
							#必填參數:
6943
							$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyOnDeleteString["dataArray"][1];#要處理的字串。
6943
							$conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyOnDeleteString["dataArray"][1];#要處理的字串。
6944
							$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ON UPDATE ";#爲以哪個符號作爲分割
6944
							$conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ON UPDATE ";#爲以哪個符號作爲分割
6945
							$foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6945
							$foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
6946
							unset($conf["stringProcess"]["spiltString"]);
6946
							unset($conf["stringProcess"]["spiltString"]);
6947
							
6947
 
6948
							#如果分割字串失敗
6948
							#如果分割字串失敗
6949
							if($searchResult["status"]=="false"){
6949
							if($searchResult["status"]=="false"){
6950
									
6950
 
6951
								#設置執行不正常
6951
								#設置執行不正常
6952
								$result["status"]="false";
6952
								$result["status"]="false";
6953
								
6953
 
6954
								#設置錯誤訊息
6954
								#設置錯誤訊息
6955
								$result["error"]=$searchResult;
6955
								$result["error"]=$searchResult;
6956
								
6956
 
6957
								#回傳結果
6957
								#回傳結果
6958
								return $result;
6958
								return $result;
6959
								
6959
 
6960
								}#if end
6960
								}#if end
6961
							
6961
 
6962
							$foreignKeyOnDeleteString=$foreignKeyOnDeleteString["dataArray"][0];
6962
							$foreignKeyOnDeleteString=$foreignKeyOnDeleteString["dataArray"][0];
6963
							
6963
 
6964
							#將 $foreignKeyString[0] 的非必要字元踢除
6964
							#將 $foreignKeyString[0] 的非必要字元踢除
6965
							#將「,」、「`」、「(」、「)」去掉 
6965
							#將「,」、「`」、「(」、「)」去掉
6966
							#函式說明:
6966
							#函式說明:
6967
							#處理字串避免網頁出錯
6967
							#處理字串避免網頁出錯
6968
							#回傳結果::
6968
							#回傳結果::
6969
							#$result,爲處理好的字串。
6969
							#$result,爲處理好的字串。
6970
							#必填參數:
6970
							#必填參數:
Line 6973... Line 6973...
6973
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
6973
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
6974
								#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6974
								#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
6975
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6975
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
6976
							$tempOneleteAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6976
							$tempOneleteAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
6977
							unset($conf["stringProcess"]["correctCharacter"]);
6977
							unset($conf["stringProcess"]["correctCharacter"]);
6978
							
6978
 
6979
							#如果處理字串失敗
6979
							#如果處理字串失敗
6980
							if($tempOneleteAction["status"]=="false"){
6980
							if($tempOneleteAction["status"]=="false"){
6981
								
6981
 
6982
								#設置執行不正常
6982
								#設置執行不正常
6983
								$result["status"]="false";
6983
								$result["status"]="false";
6984
								
6984
 
6985
								#設置錯誤訊息
6985
								#設置錯誤訊息
6986
								$result["error"]=$tempOneleteAction;
6986
								$result["error"]=$tempOneleteAction;
6987
								
6987
 
6988
								#回傳結果
6988
								#回傳結果
6989
								return $result;
6989
								return $result;
6990
								
6990
 
6991
								}#if end
6991
								}#if end
6992
							
6992
 
6993
							#儲存外鍵移除後的動作
6993
							#儲存外鍵移除後的動作
6994
							$result["foreignKey"]["onDeleteAction"][]=$tempOneleteAction["content"];
6994
							$result["foreignKey"]["onDeleteAction"][]=$tempOneleteAction["content"];
6995
							
6995
 
6996
							#用 freign key 的名稱來紀錄外鍵移除後的動作
6996
							#用 freign key 的名稱來紀錄外鍵移除後的動作
6997
							$result["foreignKey"]["onDeleteAction"][$thisForeignKeyColumnName["content"]]=$tempOneleteAction["content"];
6997
							$result["foreignKey"]["onDeleteAction"][$thisForeignKeyColumnName["content"]]=$tempOneleteAction["content"];
6998
							
6998
 
6999
							}#if end
6999
							}#if end
7000
							
7000
 
7001
						#反之裏面沒有 "ON UPDATE " 字樣
7001
						#反之裏面沒有 "ON UPDATE " 字樣
7002
						else{
7002
						else{
7003
						
7003
 
7004
							#將 $foreignKeyString[0] 的非必要字元踢除
7004
							#將 $foreignKeyString[0] 的非必要字元踢除
7005
							#將「,」、「`」、「(」、「)」去掉 
7005
							#將「,」、「`」、「(」、「)」去掉
7006
							#函式說明:
7006
							#函式說明:
7007
							#處理字串避免網頁出錯
7007
							#處理字串避免網頁出錯
7008
							#回傳結果::
7008
							#回傳結果::
7009
							#$result,爲處理好的字串。
7009
							#$result,爲處理好的字串。
7010
							#必填參數:
7010
							#必填參數:
Line 7013... Line 7013...
7013
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
7013
							$conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
7014
							#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
7014
							#若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
7015
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
7015
							#$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
7016
							$tempOneleteAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
7016
							$tempOneleteAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
7017
							unset($conf["stringProcess"]["correctCharacter"]);
7017
							unset($conf["stringProcess"]["correctCharacter"]);
7018
							
7018
 
7019
							#如果處理字串失敗
7019
							#如果處理字串失敗
7020
							if($tempOneleteAction["status"]=="false"){
7020
							if($tempOneleteAction["status"]=="false"){
7021
								
7021
 
7022
								#設置執行不正常
7022
								#設置執行不正常
7023
								$result["status"]="false";
7023
								$result["status"]="false";
7024
								
7024
 
7025
								#設置錯誤訊息
7025
								#設置錯誤訊息
7026
								$result["error"]=$tempOneleteAction;
7026
								$result["error"]=$tempOneleteAction;
7027
								
7027
 
7028
								#回傳結果
7028
								#回傳結果
7029
								return $result;
7029
								return $result;
7030
								
7030
 
7031
								}#if end
7031
								}#if end
7032
							
7032
 
7033
							#取得 外鍵移除後的動作
7033
							#取得 外鍵移除後的動作
7034
							$result["foreignKey"]["OnDeleteAction"][]=$tempOneleteAction["content"];
7034
							$result["foreignKey"]["OnDeleteAction"][]=$tempOneleteAction["content"];
7035
							
7035
 
7036
							#用 freign key 的名稱來紀錄外鍵移除後的動作
7036
							#用 freign key 的名稱來紀錄外鍵移除後的動作
7037
							$result["foreignKey"]["onDeleteAction"][$thisForeignKeyColumnName]=$tempOneleteAction["content"];
7037
							$result["foreignKey"]["onDeleteAction"][$thisForeignKeyColumnName]=$tempOneleteAction["content"];
7038
							
7038
 
7039
							}#else end
7039
							}#else end
7040
					
7040
 
7041
						}#if end
7041
						}#if end
7042
					
7042
 
7043
					}#if end
7043
					}#if end
7044
				
7044
 
7045
				}#if end
7045
				}#if end
7046
			
7046
 
7047
			}#foreach end
7047
			}#foreach end
7048
			
7048
 
7049
		#如果儲存索引鍵資訊的變數存在
7049
		#如果儲存索引鍵資訊的變數存在
7050
		if(isset($result["key"])){
7050
		if(isset($result["key"])){
7051
			
7051
 
7052
			#如果索引鍵的數量大於0
7052
			#如果索引鍵的數量大於0
7053
			if(count($result["key"])>0){
7053
			if(count($result["key"])>0){
7054
				
7054
 
7055
				#設置 $result["key"]["exist"] 為 "true";
7055
				#設置 $result["key"]["exist"] 為 "true";
7056
				$result["key"]["exist"]="true";
7056
				$result["key"]["exist"]="true";
7057
				
7057
 
7058
				}#if end
7058
				}#if end
7059
			
7059
 
7060
			#反之沒有索引鍵	
7060
			#反之沒有索引鍵
7061
			else{
7061
			else{
7062
				
7062
 
7063
				#設置 $result["key"]["exist"] 為 "false";
7063
				#設置 $result["key"]["exist"] 為 "false";
7064
				$result["key"]["exist"]="false";
7064
				$result["key"]["exist"]="false";
7065
				
7065
 
7066
				}#else end
7066
				}#else end
7067
			
7067
 
7068
			}#if end
7068
			}#if end
7069
		
7069
 
7070
		#如果 $result["foreignKey"]["constraintName"] 存在
7070
		#如果 $result["foreignKey"]["constraintName"] 存在
7071
		if(isset($result["foreignKey"]["constraintName"])){
7071
		if(isset($result["foreignKey"]["constraintName"])){
7072
		
7072
 
7073
			#如果 $result["foreignKey"]["constraintName"] 數量大於 0
7073
			#如果 $result["foreignKey"]["constraintName"] 數量大於 0
7074
			if(count($result["foreignKey"]["constraintName"])>0){
7074
			if(count($result["foreignKey"]["constraintName"])>0){
7075
				
7075
 
7076
				#針對每個 $result["foreignKey"]["constraintName"][$k] 
7076
				#針對每個 $result["foreignKey"]["constraintName"][$k]
7077
				for($i=0;$i<count($result["foreignKey"]["columnName"])/2;$i++){
7077
				for($i=0;$i<count($result["foreignKey"]["columnName"])/2;$i++){
7078
					
7078
 
7079
					#指派 $result["foreignKey"]["constraintName"][$k] 的內容同時指派給 $result["foreignKey"]["constraintName"][$result["foreignKey"]["columnName"][$k]]
7079
					#指派 $result["foreignKey"]["constraintName"][$k] 的內容同時指派給 $result["foreignKey"]["constraintName"][$result["foreignKey"]["columnName"][$k]]
7080
					$result["foreignKey"]["constraintName"][$result["foreignKey"]["columnName"][$i]]=$result["foreignKey"]["constraintName"][$i];
7080
					$result["foreignKey"]["constraintName"][$result["foreignKey"]["columnName"][$i]]=$result["foreignKey"]["constraintName"][$i];
7081
					
7081
 
7082
					}#if end
7082
					}#if end
7083
				
7083
 
7084
				#將 $result["foreignKey"]["exist"] 設為 "true"
7084
				#將 $result["foreignKey"]["exist"] 設為 "true"
7085
				$result["foreignKey"]["exist"]="true";
7085
				$result["foreignKey"]["exist"]="true";
7086
				
7086
 
7087
				}#if end
7087
				}#if end
7088
			
7088
 
7089
			#反之 $result["foreignKey"]["exist"] 數量等於 0
7089
			#反之 $result["foreignKey"]["exist"] 數量等於 0
7090
			else{
7090
			else{
7091
				
7091
 
7092
				#將 $result["foreignKey"]["exist"] 設為 "fasle"
7092
				#將 $result["foreignKey"]["exist"] 設為 "fasle"
7093
				$result["foreignKey"]["exist"]="false";
7093
				$result["foreignKey"]["exist"]="false";
7094
				
7094
 
7095
				}#else end
7095
				}#else end
7096
			
7096
 
7097
			}#if end	
7097
			}#if end
7098
			
7098
 
7099
		#反之 $result["foreignKey"]["constraintName"] 不存在
7099
		#反之 $result["foreignKey"]["constraintName"] 不存在
7100
		else{
7100
		else{
7101
			
7101
 
7102
			#將 $result["foreignKey"]["exist"] 設為 "fasle"
7102
			#將 $result["foreignKey"]["exist"] 設為 "fasle"
7103
			$result["foreignKey"]["exist"]="false";
7103
			$result["foreignKey"]["exist"]="false";
7104
			
7104
 
7105
			}#else end
7105
			}#else end
7106
			
7106
 
7107
		#執行到這邊代表執行成功
7107
		#執行到這邊代表執行成功
7108
		
7108
 
7109
		#設置成功訊息
7109
		#設置成功訊息
7110
		$result["status"]="true";
7110
		$result["status"]="true";
7111
			
7111
 
7112
		#回傳結果
7112
		#回傳結果
7113
		return $result;
7113
		return $result;
7114
		
7114
 
7115
		}#function getTableColumnDetailInfo end
7115
		}#function getTableColumnDetailInfo end
7116
 
7116
 
7117
	/*
7117
	/*
7118
	#函式說明:
7118
	#函式說明:
7119
	#移除資料表單1欄位的外鍵
7119
	#移除資料表單1欄位的外鍵
Line 7131... Line 7131...
7131
	$conf["selectedDataBaseName"]="";
7131
	$conf["selectedDataBaseName"]="";
7132
	#$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
7132
	#$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
7133
	$conf["selectedDataTableName"]="";
7133
	$conf["selectedDataTableName"]="";
7134
	#$conf["erasedForeignKeyColumnConstraintName"],字串,要移除外鍵欄位的CONSTRAINT名稱.
7134
	#$conf["erasedForeignKeyColumnConstraintName"],字串,要移除外鍵欄位的CONSTRAINT名稱.
7135
	$conf["erasedForeignKeyColumnConstraintName"]="";
7135
	$conf["erasedForeignKeyColumnConstraintName"]="";
7136
	#可省略參數: 
7136
	#可省略參數:
7137
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7137
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7138
	#$conf["dbPassword"]=$dbPassword;
7138
	#$conf["dbPassword"]=$dbPassword;
7139
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7139
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7140
	#$conf["dbPort"]="3306";
7140
	#$conf["dbPort"]="3306";
7141
	#參考資料:
7141
	#參考資料:
7142
	#無.
7142
	#無.
7143
	#備註:
7143
	#備註:
7144
	#無.
7144
	#無.
7145
	*/ 
7145
	*/
7146
	public static function eraseForeignKey($conf){
7146
	public static function eraseForeignKey($conf){
7147
		
7147
 
7148
		#初始化要回傳的內容
7148
		#初始化要回傳的內容
7149
		$result=array();
7149
		$result=array();
7150
 
7150
 
7151
		#取得當前執行的函數名稱
7151
		#取得當前執行的函數名稱
7152
		$result["function"]=__FUNCTION__;
7152
		$result["function"]=__FUNCTION__;
7153
 
7153
 
7154
		#如果 $conf 不為陣列
7154
		#如果 $conf 不為陣列
7155
		if(gettype($conf)!="array"){
7155
		if(gettype($conf)!="array"){
7156
			
7156
 
7157
			#設置執行失敗
7157
			#設置執行失敗
7158
			$result["status"]="false";
7158
			$result["status"]="false";
7159
			
7159
 
7160
			#設置執行錯誤訊息
7160
			#設置執行錯誤訊息
7161
			$result["error"][]="\$conf變數須為陣列形態";
7161
			$result["error"][]="\$conf變數須為陣列形態";
7162
 
7162
 
7163
			#如果傳入的參數為 null
7163
			#如果傳入的參數為 null
7164
			if($conf==null){
7164
			if($conf==null){
7165
				
7165
 
7166
				#設置執行錯誤訊息
7166
				#設置執行錯誤訊息
7167
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7167
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7168
				
7168
 
7169
				}#if end
7169
				}#if end
7170
 
7170
 
7171
			#回傳結果
7171
			#回傳結果
7172
			return $result;
7172
			return $result;
7173
			
7173
 
7174
			}#if end
7174
			}#if end
7175
		
7175
 
7176
		#函式說明:
7176
		#函式說明:
7177
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7177
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7178
		#回傳結果:
7178
		#回傳結果:
7179
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7179
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7180
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7180
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7181
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7181
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7182
		#必填參數:
7182
		#必填參數:
7183
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7183
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7184
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","erasedForeignKeyColumnConstraintName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7184
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","erasedForeignKeyColumnConstraintName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7185
		#可省略參數:
7185
		#可省略參數:
7186
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
7186
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
7187
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7187
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7188
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7188
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7189
		unset($conf["variableCheck"]["isexistMuti"]);
7189
		unset($conf["variableCheck"]["isexistMuti"]);
7190
		
7190
 
7191
		#如果檢查不通過
7191
		#如果檢查不通過
7192
		if($checkResult["passed"]=="false"){
7192
		if($checkResult["passed"]=="false"){
7193
			
7193
 
7194
			#設置執行失敗的訊息
7194
			#設置執行失敗的訊息
7195
			$result["status"]="false";
7195
			$result["status"]="false";
7196
			
7196
 
7197
			#設置錯誤訊息
7197
			#設置錯誤訊息
7198
			$result["error"]=$checkResult;
7198
			$result["error"]=$checkResult;
7199
			
7199
 
7200
			#回傳結果
7200
			#回傳結果
7201
			return $result;
7201
			return $result;
7202
			
7202
 
7203
			}#if end
7203
			}#if end
7204
		
7204
 
7205
		#移除foreignKey的語法
7205
		#移除foreignKey的語法
7206
		$sql="ALTER TABLE ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." DROP FOREIGN KEY ".$conf["erasedForeignKeyColumnConstraintName"];
7206
		$sql="ALTER TABLE ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." DROP FOREIGN KEY ".$conf["erasedForeignKeyColumnConstraintName"];
7207
		
7207
 
7208
		#函式說明:
7208
		#函式說明:
7209
		#執行mysql查詢的指令
7209
		#執行mysql查詢的指令
7210
		#回傳結果::
7210
		#回傳結果::
7211
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7211
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7212
		#$result["error"],錯誤訊息的陣列
7212
		#$result["error"],錯誤訊息的陣列
7213
		#查詢號的解果,需要解析。
7213
		#查詢號的解果,需要解析。
7214
		#必填參數:
7214
		#必填參數:
7215
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7215
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7216
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7216
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7217
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7217
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7218
		#可省略參數: 
7218
		#可省略參數:
7219
		
7219
 
7220
		#如果有設定密碼
7220
		#如果有設定密碼
7221
		if(isset($conf["dbPassword"])){
7221
		if(isset($conf["dbPassword"])){
7222
		
7222
 
7223
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7223
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7224
		
7224
 
7225
			}#if end
7225
			}#if end
7226
		
7226
 
7227
		#如果有設定 $conf["dbPort"]	
7227
		#如果有設定 $conf["dbPort"]
7228
		if(isset($conf["dbPort"])){
7228
		if(isset($conf["dbPort"])){
7229
		
7229
 
7230
			#設定 $conf["dbPort"]
7230
			#設定 $conf["dbPort"]
7231
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7231
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7232
		
7232
 
7233
			}#if end	
7233
			}#if end
7234
		
7234
 
7235
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
7235
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
7236
		unset($conf["db"]["execMysqlQuery"]);
7236
		unset($conf["db"]["execMysqlQuery"]);
7237
		
7237
 
7238
		#取得執行的sql語法
7238
		#取得執行的sql語法
7239
		$result["sql"]=$queryResult["queryString"];
7239
		$result["sql"]=$queryResult["queryString"];
7240
		
7240
 
7241
		#如果執行sql語法錯誤
7241
		#如果執行sql語法錯誤
7242
		if($queryResult["status"]=="false"){
7242
		if($queryResult["status"]=="false"){
7243
			
7243
 
7244
			#設置執行失敗的識別
7244
			#設置執行失敗的識別
7245
			$result["status"]="false";
7245
			$result["status"]="false";
7246
			
7246
 
7247
			#設置執行錯誤資訊
7247
			#設置執行錯誤資訊
7248
			$result["error"]=$queryResult;
7248
			$result["error"]=$queryResult;
7249
			
7249
 
7250
			#回傳結果
7250
			#回傳結果
7251
			return $result;
7251
			return $result;
7252
			
7252
 
7253
			}#if end
7253
			}#if end
7254
		
7254
 
7255
		#執行到這邊代表執行無誤
7255
		#執行到這邊代表執行無誤
7256
		
7256
 
7257
		#設置執行成功的識別
7257
		#設置執行成功的識別
7258
		$result["status"]="true";
7258
		$result["status"]="true";
7259
		
7259
 
7260
		#回傳結果
7260
		#回傳結果
7261
		return $result;
7261
		return $result;
7262
		
7262
 
7263
		}#function eraseForeignKey end
7263
		}#function eraseForeignKey end
7264
 
7264
 
7265
	/*
7265
	/*
7266
	#函式說明:
7266
	#函式說明:
7267
	#移除資料表單1欄位的索引鍵
7267
	#移除資料表單1欄位的索引鍵
Line 7278... Line 7278...
7278
	$conf["selectedDataBaseName"]="";
7278
	$conf["selectedDataBaseName"]="";
7279
	$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
7279
	$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
7280
	$conf["selectedDataTableName"]="";
7280
	$conf["selectedDataTableName"]="";
7281
	$conf["erasedIndexKeyColumnConstraintName"],字串,要移除外鍵欄位的CONSTRAINT名稱.
7281
	$conf["erasedIndexKeyColumnConstraintName"],字串,要移除外鍵欄位的CONSTRAINT名稱.
7282
	$conf["erasedIndexKeyColumnConstraintName"]="";
7282
	$conf["erasedIndexKeyColumnConstraintName"]="";
7283
	#可省略參數: 
7283
	#可省略參數:
7284
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7284
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7285
	#$conf["dbPassword"]=$dbPassword;
7285
	#$conf["dbPassword"]=$dbPassword;
7286
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7286
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7287
	#$conf["dbPort"]="3306";
7287
	#$conf["dbPort"]="3306";
7288
	#參考資料:
7288
	#參考資料:
7289
	#無.
7289
	#無.
7290
	#備註:
7290
	#備註:
7291
	#無.
7291
	#無.
7292
	*/ 
7292
	*/
7293
	public static function eraseIndexKey($conf){
7293
	public static function eraseIndexKey($conf){
7294
		
7294
 
7295
		#初始化要回傳的內容
7295
		#初始化要回傳的內容
7296
		$result=array();
7296
		$result=array();
7297
 
7297
 
7298
		#取得當前執行的函數名稱
7298
		#取得當前執行的函數名稱
7299
		$result["function"]=__FUNCTION__;
7299
		$result["function"]=__FUNCTION__;
7300
 
7300
 
7301
		#如果 $conf 不為陣列
7301
		#如果 $conf 不為陣列
7302
		if(gettype($conf)!="array"){
7302
		if(gettype($conf)!="array"){
7303
			
7303
 
7304
			#設置執行失敗
7304
			#設置執行失敗
7305
			$result["status"]="false";
7305
			$result["status"]="false";
7306
			
7306
 
7307
			#設置執行錯誤訊息
7307
			#設置執行錯誤訊息
7308
			$result["error"][]="\$conf變數須為陣列形態";
7308
			$result["error"][]="\$conf變數須為陣列形態";
7309
 
7309
 
7310
			#如果傳入的參數為 null
7310
			#如果傳入的參數為 null
7311
			if($conf==null){
7311
			if($conf==null){
7312
				
7312
 
7313
				#設置執行錯誤訊息
7313
				#設置執行錯誤訊息
7314
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7314
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7315
				
7315
 
7316
				}#if end
7316
				}#if end
7317
 
7317
 
7318
			#回傳結果
7318
			#回傳結果
7319
			return $result;
7319
			return $result;
7320
			
7320
 
7321
			}#if end
7321
			}#if end
7322
		
7322
 
7323
		#函式說明:
7323
		#函式說明:
7324
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7324
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7325
		#回傳結果:
7325
		#回傳結果:
7326
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7326
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7327
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7327
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7328
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7328
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7329
		#必填參數:
7329
		#必填參數:
7330
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7330
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7331
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","erasedIndexKeyColumnConstraintName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7331
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","erasedIndexKeyColumnConstraintName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7332
		#可省略參數:
7332
		#可省略參數:
7333
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
7333
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
7334
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7334
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7335
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7335
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7336
		unset($conf["variableCheck"]["isexistMuti"]);
7336
		unset($conf["variableCheck"]["isexistMuti"]);
7337
		
7337
 
7338
		#檢查有誤
7338
		#檢查有誤
7339
		if($checkResult["status"]=="false"){
7339
		if($checkResult["status"]=="false"){
7340
			
7340
 
7341
			#設置執行失敗的訊息
7341
			#設置執行失敗的訊息
7342
			$result["status"]="false";
7342
			$result["status"]="false";
7343
			
7343
 
7344
			#設置錯誤訊息
7344
			#設置錯誤訊息
7345
			$result["error"]=$checkResult;
7345
			$result["error"]=$checkResult;
7346
			
7346
 
7347
			#回傳結果
7347
			#回傳結果
7348
			return $result;
7348
			return $result;
7349
			
7349
 
7350
			}#if end
7350
			}#if end
7351
		
7351
 
7352
		#如果檢查不通過
7352
		#如果檢查不通過
7353
		if($checkResult["passed"]=="false"){
7353
		if($checkResult["passed"]=="false"){
7354
			
7354
 
7355
			#設置執行失敗的訊息
7355
			#設置執行失敗的訊息
7356
			$result["status"]="false";
7356
			$result["status"]="false";
7357
			
7357
 
7358
			#設置錯誤訊息
7358
			#設置錯誤訊息
7359
			$result["error"]=$checkResult;
7359
			$result["error"]=$checkResult;
7360
			
7360
 
7361
			#回傳結果
7361
			#回傳結果
7362
			return $result;
7362
			return $result;
7363
			
7363
 
7364
			}#if end
7364
			}#if end
7365
		
7365
 
7366
		#移除Key的語法
7366
		#移除Key的語法
7367
		$sql="ALTER TABLE ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." DROP INDEX `".$conf["erasedIndexKeyColumnConstraintName"]."`";
7367
		$sql="ALTER TABLE ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." DROP INDEX `".$conf["erasedIndexKeyColumnConstraintName"]."`";
7368
		
7368
 
7369
		#函式說明:
7369
		#函式說明:
7370
		#執行mysql查詢的指令
7370
		#執行mysql查詢的指令
7371
		#回傳結果::
7371
		#回傳結果::
7372
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7372
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7373
		#$result["error"],錯誤訊息的陣列
7373
		#$result["error"],錯誤訊息的陣列
7374
		#查詢號的解果,需要解析。
7374
		#查詢號的解果,需要解析。
7375
		#必填參數:
7375
		#必填參數:
7376
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7376
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7377
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7377
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7378
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7378
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7379
		#可省略參數: 
7379
		#可省略參數:
7380
		
7380
 
7381
		#如果有設定密碼
7381
		#如果有設定密碼
7382
		if(isset($conf["dbPassword"])){
7382
		if(isset($conf["dbPassword"])){
7383
		
7383
 
7384
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7384
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7385
		
7385
 
7386
			}#if end
7386
			}#if end
7387
		
7387
 
7388
		#如果有設定 $conf["dbPort"]	
7388
		#如果有設定 $conf["dbPort"]
7389
		if(isset($conf["dbPort"])){
7389
		if(isset($conf["dbPort"])){
7390
		
7390
 
7391
			#設定 $conf["dbPort"]
7391
			#設定 $conf["dbPort"]
7392
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7392
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7393
		
7393
 
7394
			}#if end	
7394
			}#if end
7395
		
7395
 
7396
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
7396
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
7397
		unset($conf["db"]["execMysqlQuery"]);
7397
		unset($conf["db"]["execMysqlQuery"]);
7398
		
7398
 
7399
		#取得執行的sql語法
7399
		#取得執行的sql語法
7400
		$result["sql"]=$queryResult["queryString"];
7400
		$result["sql"]=$queryResult["queryString"];
7401
		
7401
 
7402
		#如果執行sql語法錯誤
7402
		#如果執行sql語法錯誤
7403
		if($queryResult["status"]=="false"){
7403
		if($queryResult["status"]=="false"){
7404
			
7404
 
7405
			#設置執行失敗的識別
7405
			#設置執行失敗的識別
7406
			$result["status"]="false";
7406
			$result["status"]="false";
7407
			
7407
 
7408
			#設置執行錯誤資訊
7408
			#設置執行錯誤資訊
7409
			$result["error"]=$queryResult;
7409
			$result["error"]=$queryResult;
7410
			
7410
 
7411
			#回傳結果
7411
			#回傳結果
7412
			return $result;
7412
			return $result;
7413
			
7413
 
7414
			}#if end
7414
			}#if end
7415
		
7415
 
7416
		#執行到這邊代表執行無誤
7416
		#執行到這邊代表執行無誤
7417
		
7417
 
7418
		#設置執行失敗的識別
7418
		#設置執行失敗的識別
7419
		$result["status"]="true";
7419
		$result["status"]="true";
7420
		
7420
 
7421
		#回傳結果
7421
		#回傳結果
7422
		return $result;
7422
		return $result;
7423
		
7423
 
7424
		}#function eraseIndexKey end
7424
		}#function eraseIndexKey end
7425
 
7425
 
7426
	/*
7426
	/*
7427
	#函式說明:
7427
	#函式說明:
7428
	#移除資料表的欄位
7428
	#移除資料表的欄位
Line 7439... Line 7439...
7439
	$conf["selectedDataBaseName"]="";
7439
	$conf["selectedDataBaseName"]="";
7440
	#$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
7440
	#$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
7441
	$conf["selectedDataTableName"]="";
7441
	$conf["selectedDataTableName"]="";
7442
	#$conf["removedColumnName"],字串,要移除的欄位名稱.
7442
	#$conf["removedColumnName"],字串,要移除的欄位名稱.
7443
	$conf["removedColumnName"]="";
7443
	$conf["removedColumnName"]="";
7444
	#可省略參數: 
7444
	#可省略參數:
7445
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7445
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7446
	#$conf["dbPassword"]=$dbPassword;
7446
	#$conf["dbPassword"]=$dbPassword;
7447
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7447
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7448
	#$conf["dbPort"]="3306";
7448
	#$conf["dbPort"]="3306";
7449
	#參考資料:
7449
	#參考資料:
7450
	#無.
7450
	#無.
7451
	#備註:
7451
	#備註:
7452
	#無.
7452
	#無.
7453
	*/
7453
	*/
7454
	public static function dropColumn($conf){
7454
	public static function dropColumn($conf){
7455
	
7455
 
7456
		#初始化要回傳的內容
7456
		#初始化要回傳的內容
7457
		$result=array();
7457
		$result=array();
7458
 
7458
 
7459
		#取得當前執行的函數名稱
7459
		#取得當前執行的函數名稱
7460
		$result["function"]=__FUNCTION__;
7460
		$result["function"]=__FUNCTION__;
7461
 
7461
 
7462
		#如果 $conf 不為陣列
7462
		#如果 $conf 不為陣列
7463
		if(gettype($conf)!="array"){
7463
		if(gettype($conf)!="array"){
7464
			
7464
 
7465
			#設置執行失敗
7465
			#設置執行失敗
7466
			$result["status"]="false";
7466
			$result["status"]="false";
7467
			
7467
 
7468
			#設置執行錯誤訊息
7468
			#設置執行錯誤訊息
7469
			$result["error"][]="\$conf變數須為陣列形態";
7469
			$result["error"][]="\$conf變數須為陣列形態";
7470
 
7470
 
7471
			#如果傳入的參數為 null
7471
			#如果傳入的參數為 null
7472
			if($conf==null){
7472
			if($conf==null){
7473
				
7473
 
7474
				#設置執行錯誤訊息
7474
				#設置執行錯誤訊息
7475
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7475
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7476
				
7476
 
7477
				}#if end
7477
				}#if end
7478
 
7478
 
7479
			#回傳結果
7479
			#回傳結果
7480
			return $result;
7480
			return $result;
7481
			
7481
 
7482
			}#if end
7482
			}#if end
7483
		
7483
 
7484
		#函式說明:
7484
		#函式說明:
7485
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7485
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7486
		#回傳結果:
7486
		#回傳結果:
7487
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7487
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7488
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7488
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7489
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7489
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7490
		#必填參數:
7490
		#必填參數:
7491
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7491
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7492
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","removedColumnName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7492
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","removedColumnName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7493
		#可省略參數:
7493
		#可省略參數:
7494
		$conf["variableType"]=array("string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
7494
		$conf["variableType"]=array("string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
7495
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7495
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7496
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7496
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7497
		unset($conf["variableCheck"]["isexistMuti"]);
7497
		unset($conf["variableCheck"]["isexistMuti"]);
7498
		
7498
 
7499
		#如果檢查失敗
7499
		#如果檢查失敗
7500
		if($checkResult["status"]=="false"){
7500
		if($checkResult["status"]=="false"){
7501
			
7501
 
7502
			#設置執行失敗的訊息
7502
			#設置執行失敗的訊息
7503
			$result["status"]="false";
7503
			$result["status"]="false";
7504
			
7504
 
7505
			#設置錯誤訊息
7505
			#設置錯誤訊息
7506
			$result["error"]=$checkResult;
7506
			$result["error"]=$checkResult;
7507
			
7507
 
7508
			#回傳結果
7508
			#回傳結果
7509
			return $result;
7509
			return $result;
7510
			
7510
 
7511
			}#if end
7511
			}#if end
7512
		
7512
 
7513
		#如果檢查不通過
7513
		#如果檢查不通過
7514
		if($checkResult["passed"]=="false"){
7514
		if($checkResult["passed"]=="false"){
7515
			
7515
 
7516
			#設置執行失敗的訊息
7516
			#設置執行失敗的訊息
7517
			$result["status"]="false";
7517
			$result["status"]="false";
7518
			
7518
 
7519
			#設置錯誤訊息
7519
			#設置錯誤訊息
7520
			$result["error"]=$checkResult;
7520
			$result["error"]=$checkResult;
7521
			
7521
 
7522
			#回傳結果
7522
			#回傳結果
7523
			return $result;
7523
			return $result;
7524
			
7524
 
7525
			}#if end
7525
			}#if end
7526
		
7526
 
7527
		#函式說明:
7527
		#函式說明:
7528
		#取得資料表所有欄位的詳細資訊
7528
		#取得資料表所有欄位的詳細資訊
7529
		#回傳的內容:
7529
		#回傳的內容:
7530
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
7530
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
7531
		#$result["error"],錯誤訊息陣列
7531
		#$result["error"],錯誤訊息陣列
Line 7558... Line 7558...
7558
		$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
7558
		$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
7559
		$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
7559
		$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
7560
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
7560
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
7561
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
7561
		$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
7562
		#可省略參數:
7562
		#可省略參數:
7563
		
7563
 
7564
		#如果 $conf["dbPassword"] 有設置
7564
		#如果 $conf["dbPassword"] 有設置
7565
		if(isset($conf["dbPassword"])){
7565
		if(isset($conf["dbPassword"])){
7566
		
7566
 
7567
			$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#連線到資料庫要用的密碼
7567
			$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#連線到資料庫要用的密碼
7568
		
7568
 
7569
			}#if end
7569
			}#if end
7570
			
7570
 
7571
		#如果有設定 $conf["dbPort"]	
7571
		#如果有設定 $conf["dbPort"]
7572
		if(isset($conf["dbPort"])){
7572
		if(isset($conf["dbPort"])){
7573
		
7573
 
7574
			#設定 $conf["dbPort"]
7574
			#設定 $conf["dbPort"]
7575
			$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
7575
			$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
7576
		
7576
 
7577
			}#if end	
7577
			}#if end
7578
		
7578
 
7579
		$tableDetail=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
7579
		$tableDetail=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
7580
		unset($conf["db"]["getTableColumnDetailInfo"]);
7580
		unset($conf["db"]["getTableColumnDetailInfo"]);
7581
		
7581
 
7582
		#如果取得資料表結構詳細資料失敗
7582
		#如果取得資料表結構詳細資料失敗
7583
		if($tableDetail["status"]=="false"){
7583
		if($tableDetail["status"]=="false"){
7584
			
7584
 
7585
			#設置執行失敗的訊息
7585
			#設置執行失敗的訊息
7586
			$result["status"]="false";
7586
			$result["status"]="false";
7587
			
7587
 
7588
			#設置錯誤訊息
7588
			#設置錯誤訊息
7589
			$result["error"]=$tableDetail;
7589
			$result["error"]=$tableDetail;
7590
			
7590
 
7591
			#回傳結果
7591
			#回傳結果
7592
			return $result;
7592
			return $result;
7593
			
7593
 
7594
			}#if end
7594
			}#if end
7595
		
7595
 
7596
		#var_dump($tableDetail["foreignKey"]);
7596
		#var_dump($tableDetail["foreignKey"]);
7597
				
7597
 
7598
		#判斷該欄位是否爲 foreign key
7598
		#判斷該欄位是否爲 foreign key
7599
		if(isset($tableDetail["foreignKey"]["columnName"][$conf["removedColumnName"]])){
7599
		if(isset($tableDetail["foreignKey"]["columnName"][$conf["removedColumnName"]])){
7600
			
7600
 
7601
			#代表該欄位等於 foreign key 
7601
			#代表該欄位等於 foreign key
7602
			
7602
 
7603
			#先移除foreign key...
7603
			#先移除foreign key...
7604
			#函式說明:
7604
			#函式說明:
7605
			#移除資料表單1欄位的外鍵
7605
			#移除資料表單1欄位的外鍵
7606
			#回傳結果:
7606
			#回傳結果:
7607
			#$result["status"],"true",代表執行成功;"false"代表執行失敗
7607
			#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 7610... Line 7610...
7610
			$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7610
			$conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7611
			$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7611
			$conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7612
			$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
7612
			$conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
7613
			$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
7613
			$conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
7614
			$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableDetail["foreignKey"]["constraintName"][$conf["removedColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
7614
			$conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableDetail["foreignKey"]["constraintName"][$conf["removedColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
7615
			#可省略參數: 
7615
			#可省略參數:
7616
			
7616
 
7617
			#如果 $conf["dbPassword"] 有設置
7617
			#如果 $conf["dbPassword"] 有設置
7618
			if(isset($conf["dbPassword"])){
7618
			if(isset($conf["dbPassword"])){
7619
			
7619
 
7620
				$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7620
				$conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7621
								
7621
 
7622
				}#if end
7622
				}#if end
7623
			
7623
 
7624
			#如果有設定 $conf["dbPort"]	
7624
			#如果有設定 $conf["dbPort"]
7625
			if(isset($conf["dbPort"])){
7625
			if(isset($conf["dbPort"])){
7626
			
7626
 
7627
				#設定 $conf["dbPort"]
7627
				#設定 $conf["dbPort"]
7628
				$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
7628
				$conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
7629
			
7629
 
7630
				}#if end	
7630
				}#if end
7631
				
7631
 
7632
			$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
7632
			$eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
7633
			unset($conf["db"]["eraseForeignKey"]);
7633
			unset($conf["db"]["eraseForeignKey"]);
7634
			
7634
 
7635
			#var_dump($eraseForeignKeyResult);
7635
			#var_dump($eraseForeignKeyResult);
7636
			
7636
 
7637
			#如果執行失敗
7637
			#如果執行失敗
7638
			if($eraseForeignKeyResult["status"]=="false"){
7638
			if($eraseForeignKeyResult["status"]=="false"){
7639
				
7639
 
7640
				#var_dump($eraseForeignKeyResult);
7640
				#var_dump($eraseForeignKeyResult);
7641
				
7641
 
7642
				#設置錯誤識別
7642
				#設置錯誤識別
7643
				$result["status"]="fasle";
7643
				$result["status"]="fasle";
7644
				
7644
 
7645
				#設置錯誤提示
7645
				#設置錯誤提示
7646
				$result["error"]=$eraseForeignKeyResult;
7646
				$result["error"]=$eraseForeignKeyResult;
7647
				
7647
 
7648
				#回傳結果
7648
				#回傳結果
7649
				return $result;
7649
				return $result;
7650
									
7650
 
7651
				}#if end
7651
				}#if end
7652
			
7652
 
7653
			}#if end
7653
			}#if end
7654
			
7654
 
7655
		#如果要移除欄位是index
7655
		#如果要移除欄位是index
7656
		if(isset($tableDetail["key"][$conf["removedColumnName"]])){
7656
		if(isset($tableDetail["key"][$conf["removedColumnName"]])){
7657
			
7657
 
7658
			#移除索引鍵
7658
			#移除索引鍵
7659
			#函式說明:
7659
			#函式說明:
7660
			#移除資料表單1欄位的索引鍵
7660
			#移除資料表單1欄位的索引鍵
7661
			#回傳結果:
7661
			#回傳結果:
7662
			#$result["status"],"true",代表執行成功;"false"代表執行失敗
7662
			#$result["status"],"true",代表執行成功;"false"代表執行失敗
Line 7665... Line 7665...
7665
			$conf["db"]["eraseIndexKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7665
			$conf["db"]["eraseIndexKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7666
			$conf["db"]["eraseIndexKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7666
			$conf["db"]["eraseIndexKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7667
			$conf["db"]["eraseIndexKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
7667
			$conf["db"]["eraseIndexKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
7668
			$conf["db"]["eraseIndexKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
7668
			$conf["db"]["eraseIndexKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
7669
			$conf["db"]["eraseIndexKey"]["erasedIndexKeyColumnConstraintName"]=$tableDetail["keyConstraintName"][$conf["removedColumnName"]];#要移除索引鍵欄位的CONSTRAINT名稱
7669
			$conf["db"]["eraseIndexKey"]["erasedIndexKeyColumnConstraintName"]=$tableDetail["keyConstraintName"][$conf["removedColumnName"]];#要移除索引鍵欄位的CONSTRAINT名稱
7670
			#可省略參數: 
7670
			#可省略參數:
7671
				
7671
 
7672
			#如果 $conf["dbPassword"] 有設置
7672
			#如果 $conf["dbPassword"] 有設置
7673
			if(isset($conf["dbPassword"])){
7673
			if(isset($conf["dbPassword"])){
7674
			
7674
 
7675
				$conf["db"]["eraseIndexKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7675
				$conf["db"]["eraseIndexKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7676
								
7676
 
7677
				}#if end
7677
				}#if end
7678
			
7678
 
7679
			#如果有設定 $conf["dbPort"]	
7679
			#如果有設定 $conf["dbPort"]
7680
			if(isset($conf["dbPort"])){
7680
			if(isset($conf["dbPort"])){
7681
			
7681
 
7682
				#設定 $conf["dbPort"]
7682
				#設定 $conf["dbPort"]
7683
				$conf["db"]["eraseIndexKey"]["dbPort"]=$conf["dbPort"];
7683
				$conf["db"]["eraseIndexKey"]["dbPort"]=$conf["dbPort"];
7684
			
7684
 
7685
				}#if end
7685
				}#if end
7686
			
7686
 
7687
			$eraseIndexKeyResult=db::eraseIndexKey($conf["db"]["eraseIndexKey"]);
7687
			$eraseIndexKeyResult=db::eraseIndexKey($conf["db"]["eraseIndexKey"]);
7688
			unset($conf["db"]["eraseIndexKey"]);
7688
			unset($conf["db"]["eraseIndexKey"]);
7689
						
7689
 
7690
			#如果執行失敗
7690
			#如果執行失敗
7691
			if($eraseIndexKeyResult["status"]=="false"){
7691
			if($eraseIndexKeyResult["status"]=="false"){
7692
				
7692
 
7693
				#var_dump($eraseIndexKeyResult);
7693
				#var_dump($eraseIndexKeyResult);
7694
				
7694
 
7695
				#設置錯誤識別
7695
				#設置錯誤識別
7696
				$result["status"]="fasle";
7696
				$result["status"]="fasle";
7697
				
7697
 
7698
				#設置錯誤提示
7698
				#設置錯誤提示
7699
				$result["error"]=$eraseIndexKeyResult;
7699
				$result["error"]=$eraseIndexKeyResult;
7700
				
7700
 
7701
				#回傳結果
7701
				#回傳結果
7702
				return $result;
7702
				return $result;
7703
									
7703
 
7704
				}#if end
7704
				}#if end
7705
			
7705
 
7706
			}#if end		
7706
			}#if end
7707
						
7707
 
7708
		#組合sql語言
7708
		#組合sql語言
7709
		$sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." drop `".$conf["removedColumnName"]."`;";
7709
		$sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." drop `".$conf["removedColumnName"]."`;";
7710
							
7710
 
7711
		#函式說明:
7711
		#函式說明:
7712
		#執行mysql指令
7712
		#執行mysql指令
7713
		#回傳結果::
7713
		#回傳結果::
7714
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7714
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7715
		#$result["error"],錯誤訊息的陣列
7715
		#$result["error"],錯誤訊息的陣列
Line 7717... Line 7717...
7717
		#查詢號的解果,需要解析。
7717
		#查詢號的解果,需要解析。
7718
		#必填參數:
7718
		#必填參數:
7719
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7719
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7720
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7720
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7721
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7721
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7722
		#可省略參數: 
7722
		#可省略參數:
7723
		
7723
 
7724
		#如果有設定連線密碼
7724
		#如果有設定連線密碼
7725
		if(isset($conf["dbPassword"])){
7725
		if(isset($conf["dbPassword"])){
7726
		
7726
 
7727
			#就套用密碼
7727
			#就套用密碼
7728
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7728
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7729
		
7729
 
7730
			}#if end
7730
			}#if end
7731
		
7731
 
7732
		#如果有設定 $conf["dbPort"]	
7732
		#如果有設定 $conf["dbPort"]
7733
		if(isset($conf["dbPort"])){
7733
		if(isset($conf["dbPort"])){
7734
		
7734
 
7735
			#設定 $conf["dbPort"]
7735
			#設定 $conf["dbPort"]
7736
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7736
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7737
		
7737
 
7738
			}#if end
7738
			}#if end
7739
		
7739
 
7740
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
7740
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
7741
		unset($conf["db"]["execMysqlQuery"]);
7741
		unset($conf["db"]["execMysqlQuery"]);
7742
		
7742
 
7743
		#如果執行失敗
7743
		#如果執行失敗
7744
		if($queryResult["status"]=="false"){
7744
		if($queryResult["status"]=="false"){
7745
			
7745
 
7746
			#設置執行失敗
7746
			#設置執行失敗
7747
			$result["status"]="false";
7747
			$result["status"]="false";
7748
			
7748
 
7749
			#取得錯誤訊息
7749
			#取得錯誤訊息
7750
			$result["error"]=$queryResult;
7750
			$result["error"]=$queryResult;
7751
			
7751
 
7752
			#回傳結果
7752
			#回傳結果
7753
			return $result;
7753
			return $result;
7754
			
7754
 
7755
			}#if end
7755
			}#if end
7756
		
7756
 
7757
		#設置執行成功
7757
		#設置執行成功
7758
		$result["status"]="true";
7758
		$result["status"]="true";
7759
		
7759
 
7760
		#回傳結果
7760
		#回傳結果
7761
		return $result;
7761
		return $result;
7762
		
7762
 
7763
		}#function dropColumn end
7763
		}#function dropColumn end
7764
 
7764
 
7765
	/*
7765
	/*
7766
	#函式說明:
7766
	#函式說明:
7767
	#清空資料表儲存的資料
7767
	#清空資料表儲存的資料
Line 7774... Line 7774...
7774
	$conf["dbAddress"]=$dbAddress;
7774
	$conf["dbAddress"]=$dbAddress;
7775
	$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
7775
	$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
7776
	$conf["dbAccount"]=$dbAccount;
7776
	$conf["dbAccount"]=$dbAccount;
7777
	$conf["dbName"]=$dbName;#爲目標資料表所屬的資料庫
7777
	$conf["dbName"]=$dbName;#爲目標資料表所屬的資料庫
7778
	$conf["dtName"]="";#爲要移除的資料表名稱
7778
	$conf["dtName"]="";#爲要移除的資料表名稱
7779
	#可省略參數:		
7779
	#可省略參數:
7780
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7780
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
7781
	#$conf["dbPassword"]=$dbPassword;
7781
	#$conf["dbPassword"]=$dbPassword;
7782
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7782
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
7783
	#$conf["dbPort"]="3306";
7783
	#$conf["dbPort"]="3306";
7784
	#參考資料:
7784
	#參考資料:
7785
	#https://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
7785
	#https://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
7786
	#備註:
7786
	#備註:
7787
	#無.
7787
	#無.
7788
	*/
7788
	*/
7789
	public static function emptyTable($conf){
7789
	public static function emptyTable($conf){
7790
		
7790
 
7791
		#初始化要回傳的內容
7791
		#初始化要回傳的內容
7792
		$result=array();
7792
		$result=array();
7793
 
7793
 
7794
		#取得當前執行的函數名稱
7794
		#取得當前執行的函數名稱
7795
		$result["function"]=__FUNCTION__;
7795
		$result["function"]=__FUNCTION__;
7796
 
7796
 
7797
		#如果 $conf 不為陣列
7797
		#如果 $conf 不為陣列
7798
		if(gettype($conf)!="array"){
7798
		if(gettype($conf)!="array"){
7799
			
7799
 
7800
			#設置執行失敗
7800
			#設置執行失敗
7801
			$result["status"]="false";
7801
			$result["status"]="false";
7802
			
7802
 
7803
			#設置執行錯誤訊息
7803
			#設置執行錯誤訊息
7804
			$result["error"][]="\$conf變數須為陣列形態";
7804
			$result["error"][]="\$conf變數須為陣列形態";
7805
 
7805
 
7806
			#如果傳入的參數為 null
7806
			#如果傳入的參數為 null
7807
			if($conf==null){
7807
			if($conf==null){
7808
				
7808
 
7809
				#設置執行錯誤訊息
7809
				#設置執行錯誤訊息
7810
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7810
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
7811
				
7811
 
7812
				}#if end
7812
				}#if end
7813
 
7813
 
7814
			#回傳結果
7814
			#回傳結果
7815
			return $result;
7815
			return $result;
7816
			
7816
 
7817
			}#if end
7817
			}#if end
7818
		
7818
 
7819
		#函式說明:
7819
		#函式說明:
7820
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7820
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
7821
		#回傳結果:
7821
		#回傳結果:
7822
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7822
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
7823
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7823
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
7824
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7824
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
7825
		#必填參數:
7825
		#必填參數:
7826
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7826
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
7827
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dbName","dtName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7827
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dbName","dtName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
7828
		#可省略參數:
7828
		#可省略參數:
7829
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
7829
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
7830
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7830
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
7831
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7831
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
7832
		unset($conf["variableCheck"]);
7832
		unset($conf["variableCheck"]);
7833
 
7833
 
7834
		#如果檢查不通過
7834
		#如果檢查不通過
7835
		if($checkResult["status"]=="false"){
7835
		if($checkResult["status"]=="false"){
7836
 
7836
 
7837
			#設置錯誤識別
7837
			#設置錯誤識別
7838
			$result["status"]="fasle";
7838
			$result["status"]="fasle";
7839
			
7839
 
7840
			#設置錯誤訊息
7840
			#設置錯誤訊息
7841
			$result["error"]=$checkResult;
7841
			$result["error"]=$checkResult;
7842
 
7842
 
7843
			#回傳結果
7843
			#回傳結果
7844
			return $result;
7844
			return $result;
Line 7848... Line 7848...
7848
		#如果檢查不通過
7848
		#如果檢查不通過
7849
		if($checkResult["passed"]=="false"){
7849
		if($checkResult["passed"]=="false"){
7850
 
7850
 
7851
			#設置錯誤識別
7851
			#設置錯誤識別
7852
			$result["status"]="fasle";
7852
			$result["status"]="fasle";
7853
			
7853
 
7854
			#設置錯誤訊息
7854
			#設置錯誤訊息
7855
			$result["error"]=$checkResult;
7855
			$result["error"]=$checkResult;
7856
 
7856
 
7857
			#回傳結果
7857
			#回傳結果
7858
			return $result;
7858
			return $result;
7859
 
7859
 
7860
			}#if end
7860
			}#if end
7861
		
7861
 
7862
		#設定要執行的sql語法
7862
		#設定要執行的sql語法
7863
		$sql="TRUNCATE TABLE ".$conf["dbName"].".".$conf["dtName"].";";
7863
		$sql="TRUNCATE TABLE ".$conf["dbName"].".".$conf["dtName"].";";
7864
		
7864
 
7865
		#函式說明:
7865
		#函式說明:
7866
		#執行mysql指令
7866
		#執行mysql指令
7867
		#回傳結果::
7867
		#回傳結果::
7868
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7868
		#$result["status"],"true"為執行成功;"false"為執行失敗。
7869
		#$result["error"],錯誤訊息的陣列
7869
		#$result["error"],錯誤訊息的陣列
Line 7872... Line 7872...
7872
		#查詢號的解果,需要解析。
7872
		#查詢號的解果,需要解析。
7873
		#必填參數:
7873
		#必填參數:
7874
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7874
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
7875
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7875
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
7876
		$conf["db.execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7876
		$conf["db.execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
7877
		#可省略參數: 
7877
		#可省略參數:
7878
		
7878
 
7879
		#如果 $conf["dbPassword"] 有設置
7879
		#如果 $conf["dbPassword"] 有設置
7880
		if(isset($conf["dbPassword"])){
7880
		if(isset($conf["dbPassword"])){
7881
			
7881
 
7882
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7882
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
7883
			
7883
 
7884
			}#if end
7884
			}#if end
7885
				
7885
 
7886
		#如果有設定 $conf["dbPort"]	
7886
		#如果有設定 $conf["dbPort"]
7887
		if(isset($conf["dbPort"])){
7887
		if(isset($conf["dbPort"])){
7888
		
7888
 
7889
			#設定 $conf["dbPort"]
7889
			#設定 $conf["dbPort"]
7890
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7890
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];
7891
		
7891
 
7892
			}#if end				
7892
			}#if end
7893
					
7893
 
7894
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
7894
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
7895
		unset($conf["db.execMysqlQuery"]);
7895
		unset($conf["db.execMysqlQuery"]);
7896
						
7896
 
7897
		#如果 $queryResult["status"] 為 "false"
7897
		#如果 $queryResult["status"] 為 "false"
7898
		if($queryResult["status"]=="false"){
7898
		if($queryResult["status"]=="false"){
7899
			
7899
 
7900
			#函式說明:
7900
			#函式說明:
7901
			#透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1
7901
			#透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1
7902
			#回傳結果:
7902
			#回傳結果:
7903
			#$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
7903
			#$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
7904
			#$result["error"],錯誤訊息.
7904
			#$result["error"],錯誤訊息.
Line 7912... Line 7912...
7912
			#$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbName"],字串,要連線到哪個資料庫.
7912
			#$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbName"],字串,要連線到哪個資料庫.
7913
			$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbName"]=$conf["dbName"];
7913
			$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbName"]=$conf["dbName"];
7914
			#$conf["db.eraseDataInTableThenResetAutoIncrement"]["dtName"],字串,要重設重設識別欄位的自動增量為0的資料表名稱.
7914
			#$conf["db.eraseDataInTableThenResetAutoIncrement"]["dtName"],字串,要重設重設識別欄位的自動增量為0的資料表名稱.
7915
			$conf["db.eraseDataInTableThenResetAutoIncrement"]["dtName"]=$conf["dtName"];
7915
			$conf["db.eraseDataInTableThenResetAutoIncrement"]["dtName"]=$conf["dtName"];
7916
			#可省略參數:
7916
			#可省略參數:
7917
			
7917
 
7918
			#如果 $conf["dbPassword"] 有設置
7918
			#如果 $conf["dbPassword"] 有設置
7919
			if(isset($conf["dbPassword"])){
7919
			if(isset($conf["dbPassword"])){
7920
			
7920
 
7921
				#$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPassword"],字串,連線到資料庫的密碼.
7921
				#$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPassword"],字串,連線到資料庫的密碼.
7922
				$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPassword"]=$conf["dbPassword"];
7922
				$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPassword"]=$conf["dbPassword"];
7923
			
7923
 
7924
				}#if end
7924
				}#if end
7925
			
7925
 
7926
			#如果有設定 $conf["dbPort"]	
7926
			#如果有設定 $conf["dbPort"]
7927
			if(isset($conf["dbPort"])){
7927
			if(isset($conf["dbPort"])){
7928
			
7928
 
7929
				#設定 $conf["dbPort"]
7929
				#設定 $conf["dbPort"]
7930
				$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPort"]=$conf["dbPort"];
7930
				$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPort"]=$conf["dbPort"];
7931
			
7931
 
7932
				}#if end	
7932
				}#if end
7933
			
7933
 
7934
			#參考資料:
7934
			#參考資料:
7935
			#http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
7935
			#http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
7936
			#參考語法:
7936
			#參考語法:
7937
			#ALTER TABLE dbName.dtName AUTO_INCREMENT = 1;
7937
			#ALTER TABLE dbName.dtName AUTO_INCREMENT = 1;
7938
			$eraseDataInTableThenResetAutoIncrementResult=db::eraseDataInTableThenResetAutoIncrement($conf["db.eraseDataInTableThenResetAutoIncrement"]);
7938
			$eraseDataInTableThenResetAutoIncrementResult=db::eraseDataInTableThenResetAutoIncrement($conf["db.eraseDataInTableThenResetAutoIncrement"]);
7939
			unset($conf["db.eraseDataInTableThenResetAutoIncrement"]);
7939
			unset($conf["db.eraseDataInTableThenResetAutoIncrement"]);
7940
			
7940
 
7941
			#如果 透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1 失敗
7941
			#如果 透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1 失敗
7942
			if($eraseDataInTableThenResetAutoIncrementResult["status"]=="false"){
7942
			if($eraseDataInTableThenResetAutoIncrementResult["status"]=="false"){
7943
				
7943
 
7944
				#設置錯誤識別
7944
				#設置錯誤識別
7945
				$result["status"]="false";
7945
				$result["status"]="false";
7946
				
7946
 
7947
				#設置錯誤訊息
7947
				#設置錯誤訊息
7948
				$result["error"]=$eraseDataInTableThenResetAutoIncrementResult;
7948
				$result["error"]=$eraseDataInTableThenResetAutoIncrementResult;
7949
 
7949
 
7950
				#回傳結果
7950
				#回傳結果
7951
				return $result;
7951
				return $result;
7952
				
7952
 
7953
				}#if end
7953
				}#if end
7954
			
7954
 
7955
			}#if end	
7955
			}#if end
7956
						
7956
 
7957
		#值行到這邊代表執行成功
7957
		#值行到這邊代表執行成功
7958
		$result["status"]="true";
7958
		$result["status"]="true";
7959
		
7959
 
7960
		#回傳結果
7960
		#回傳結果
7961
		return $result;
7961
		return $result;
7962
								
7962
 
7963
		}#function emptyTable end
7963
		}#function emptyTable end
7964
 
7964
 
7965
	/*
7965
	/*
7966
	#函式說明:
7966
	#函式說明:
7967
	#更改資料庫的名稱 
7967
	#更改資料庫的名稱
7968
	#回傳結果::
7968
	#回傳結果::
7969
	#$result["status"],"true"代表執行成功
7969
	#$result["status"],"true"代表執行成功
7970
	#$result["function"],當前執行的函數名稱.
7970
	#$result["function"],當前執行的函數名稱.
7971
	#$result["error"],錯誤訊息陣列.
7971
	#$result["error"],錯誤訊息陣列.
7972
	#必填參數:
7972
	#必填參數:
Line 7989... Line 7989...
7989
	#http://stackoverflow.com/questions/1708651/how-can-i-change-case-of-database-name-in-mysql
7989
	#http://stackoverflow.com/questions/1708651/how-can-i-change-case-of-database-name-in-mysql
7990
	#備註:
7990
	#備註:
7991
	#無.
7991
	#無.
7992
	*/
7992
	*/
7993
	public static function editDatabaseName($conf){
7993
	public static function editDatabaseName($conf){
7994
		
7994
 
7995
		#初始化要回傳的內容
7995
		#初始化要回傳的內容
7996
		$result=array();
7996
		$result=array();
7997
 
7997
 
7998
		#取得當前執行的函數名稱
7998
		#取得當前執行的函數名稱
7999
		$result["function"]=__FUNCTION__;
7999
		$result["function"]=__FUNCTION__;
8000
 
8000
 
8001
		#如果 $conf 不為陣列
8001
		#如果 $conf 不為陣列
8002
		if(gettype($conf)!="array"){
8002
		if(gettype($conf)!="array"){
8003
			
8003
 
8004
			#設置執行失敗
8004
			#設置執行失敗
8005
			$result["status"]="false";
8005
			$result["status"]="false";
8006
			
8006
 
8007
			#設置執行錯誤訊息
8007
			#設置執行錯誤訊息
8008
			$result["error"][]="\$conf變數須為陣列形態";
8008
			$result["error"][]="\$conf變數須為陣列形態";
8009
 
8009
 
8010
			#如果傳入的參數為 null
8010
			#如果傳入的參數為 null
8011
			if($conf==null){
8011
			if($conf==null){
8012
				
8012
 
8013
				#設置執行錯誤訊息
8013
				#設置執行錯誤訊息
8014
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8014
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8015
				
8015
 
8016
				}#if end
8016
				}#if end
8017
 
8017
 
8018
			#回傳結果
8018
			#回傳結果
8019
			return $result;
8019
			return $result;
8020
			
8020
 
8021
			}#if end
8021
			}#if end
8022
		
8022
 
8023
		#函式說明:
8023
		#函式說明:
8024
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8024
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8025
		#回傳結果:
8025
		#回傳結果:
8026
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
8026
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
8027
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
8027
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
8028
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8028
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8029
		#必填參數:
8029
		#必填參數:
8030
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8030
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8031
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","editedDatabaseName","newDatabaseName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8031
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","editedDatabaseName","newDatabaseName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8032
		#可省略參數:
8032
		#可省略參數:
8033
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
8033
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
8034
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8034
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8035
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8035
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8036
		unset($conf["variableCheck"]["isexistMuti"]);
8036
		unset($conf["variableCheck"]["isexistMuti"]);
8037
 
8037
 
8038
		#如果檢查失敗
8038
		#如果檢查失敗
Line 8060... Line 8060...
8060
 
8060
 
8061
			#回傳錯誤訊息
8061
			#回傳錯誤訊息
8062
			return $result;
8062
			return $result;
8063
 
8063
 
8064
			}#if end
8064
			}#if end
8065
		
8065
 
8066
		#檢查要修改名稱的資料庫是否爲系統資料庫
8066
		#檢查要修改名稱的資料庫是否爲系統資料庫
8067
		#函式說明:
8067
		#函式說明:
8068
		#檢查一個數值是否與陣列裏面的元素相同
8068
		#檢查一個數值是否與陣列裏面的元素相同
8069
		#回傳結果::
8069
		#回傳結果::
8070
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
8070
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
Line 8079... Line 8079...
8079
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
8079
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
8080
		unset($conf["search"]["getEqualVar"]);
8080
		unset($conf["search"]["getEqualVar"]);
8081
 
8081
 
8082
		#如果檢查失敗
8082
		#如果檢查失敗
8083
		if($searchResult["status"]=="false"){
8083
		if($searchResult["status"]=="false"){
8084
			
8084
 
8085
			#設置錯誤識別
8085
			#設置錯誤識別
8086
			$result["status"]="false";
8086
			$result["status"]="false";
8087
			
8087
 
8088
			#設置錯誤訊息
8088
			#設置錯誤訊息
8089
			$result["error"]=$searchResult;
8089
			$result["error"]=$searchResult;
8090
			
8090
 
8091
			#回傳結果
8091
			#回傳結果
8092
			return $result;
8092
			return $result;
8093
			
8093
 
8094
			}#if end
8094
			}#if end
8095
 
8095
 
8096
		#如果要移除的資料庫爲系統資料庫
8096
		#如果要移除的資料庫爲系統資料庫
8097
		if($searchResult["founded"]=="true"){
8097
		if($searchResult["founded"]=="true"){
8098
			
8098
 
8099
			#設置錯誤識別
8099
			#設置錯誤識別
8100
			$result["status"]="false";
8100
			$result["status"]="false";
8101
			
8101
 
8102
			#設置錯誤訊息
8102
			#設置錯誤訊息
8103
			$result["error"][]="您不能更改系統資料庫";
8103
			$result["error"][]="您不能更改系統資料庫";
8104
			
8104
 
8105
			#回傳結果
8105
			#回傳結果
8106
			return $result;
8106
			return $result;
8107
			
8107
 
8108
			}#if end
8108
			}#if end
8109
			
8109
 
8110
		#如果 $conf["dbPassword"] 不存在
8110
		#如果 $conf["dbPassword"] 不存在
8111
		if(!isset($conf["dbPassword"])){
8111
		if(!isset($conf["dbPassword"])){
8112
			
8112
 
8113
			#設爲空值
8113
			#設爲空值
8114
			$conf["dbPassword"]="";
8114
			$conf["dbPassword"]="";
8115
			
8115
 
8116
			}#if end
8116
			}#if end
8117
			
8117
 
8118
		#反之有設定
8118
		#反之有設定
8119
		else{
8119
		else{
8120
			
8120
 
8121
			#設定連線用的密碼
8121
			#設定連線用的密碼
8122
			$formatedPassword="--password=".$conf["dbPassword"];
8122
			$formatedPassword="--password=".$conf["dbPassword"];
8123
			
8123
 
8124
			}#else end
8124
			}#else end
8125
			
8125
 
8126
		#檢查新名字的資料庫是否存在
8126
		#檢查新名字的資料庫是否存在
8127
		#函式說明:
8127
		#函式說明:
8128
		#檢查該資料庫是否存在,結果會回傳一個陣列。
8128
		#檢查該資料庫是否存在,結果會回傳一個陣列。
8129
		#回傳結果:
8129
		#回傳結果:
8130
		#$result["status"],執行正常則回傳"true",執行失敗則回傳"false".
8130
		#$result["status"],執行正常則回傳"true",執行失敗則回傳"false".
Line 8133... Line 8133...
8133
		#必填的參數
8133
		#必填的參數
8134
		$conf["db"]["checkDataBaseExists"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8134
		$conf["db"]["checkDataBaseExists"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8135
		$conf["db"]["checkDataBaseExists"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8135
		$conf["db"]["checkDataBaseExists"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8136
		$conf["db"]["checkDataBaseExists"]["checkDataBaseName"]=$conf["newDatabaseName"];#爲要檢查是否存在的資料庫名稱
8136
		$conf["db"]["checkDataBaseExists"]["checkDataBaseName"]=$conf["newDatabaseName"];#爲要檢查是否存在的資料庫名稱
8137
		#可省略參數
8137
		#可省略參數
8138
		
8138
 
8139
		#如果 $conf["dbPassword"] 存在
8139
		#如果 $conf["dbPassword"] 存在
8140
		if(isset($conf["dbPassword"])){
8140
		if(isset($conf["dbPassword"])){
8141
			
8141
 
8142
			#設置密碼
8142
			#設置密碼
8143
			$conf["db"]["checkDataBaseExists"]["dbPassword"]=$conf["dbPassword"];
8143
			$conf["db"]["checkDataBaseExists"]["dbPassword"]=$conf["dbPassword"];
8144
			
8144
 
8145
			}#if end
8145
			}#if end
8146
				
8146
 
8147
		#如果 $conf["dbPort"] 存在
8147
		#如果 $conf["dbPort"] 存在
8148
		if(isset($conf["dbPort"])){
8148
		if(isset($conf["dbPort"])){
8149
		
8149
 
8150
			#設置密碼
8150
			#設置密碼
8151
			$conf["db"]["checkDataBaseExists"]["dbPort"]=$conf["dbPort"];
8151
			$conf["db"]["checkDataBaseExists"]["dbPort"]=$conf["dbPort"];
8152
		
8152
 
8153
			}#if end		
8153
			}#if end
8154
					
8154
 
8155
		$checkResult=db::checkDataBaseExists($conf["db"]["checkDataBaseExists"]);
8155
		$checkResult=db::checkDataBaseExists($conf["db"]["checkDataBaseExists"]);
8156
		unset($conf["db"]["checkDataBaseExists"]);
8156
		unset($conf["db"]["checkDataBaseExists"]);
8157
		
8157
 
8158
		#如果 $checkResult["status"] 等於 "false"
8158
		#如果 $checkResult["status"] 等於 "false"
8159
		if($checkResult["status"]==="false"){
8159
		if($checkResult["status"]==="false"){
8160
			
8160
 
8161
			#設置錯誤識別
8161
			#設置錯誤識別
8162
			$result["status"]="false";
8162
			$result["status"]="false";
8163
			
8163
 
8164
			#設置錯誤訊息
8164
			#設置錯誤訊息
8165
			$result["error"]=$checkResult;
8165
			$result["error"]=$checkResult;
8166
							
8166
 
8167
			#回傳結果
8167
			#回傳結果
8168
			return $result;
8168
			return $result;
8169
			
8169
 
8170
			}#if end
8170
			}#if end
8171
		
8171
 
8172
		#如果跟現有的資料庫名稱一樣
8172
		#如果跟現有的資料庫名稱一樣
8173
		if($checkResult["exist"]==="true"){
8173
		if($checkResult["exist"]==="true"){
8174
			
8174
 
8175
			#設置錯誤訊息
8175
			#設置錯誤訊息
8176
			$result["error"]=$checkResult;
8176
			$result["error"]=$checkResult;
8177
			
8177
 
8178
			#設置錯誤識別
8178
			#設置錯誤識別
8179
			$result["status"]="false";
8179
			$result["status"]="false";
8180
			
8180
 
8181
			#回傳結果
8181
			#回傳結果
8182
			return $result;
8182
			return $result;
8183
			
8183
 
8184
			}#if end
8184
			}#if end
8185
		
8185
 
8186
		#如果沒有跟現有的資料庫名稱一樣	
8186
		#如果沒有跟現有的資料庫名稱一樣
8187
		if($checkResult["exist"]==="false"){
8187
		if($checkResult["exist"]==="false"){
8188
			
8188
 
8189
			#建立新的資料庫
8189
			#建立新的資料庫
8190
			#函式說明:
8190
			#函式說明:
8191
			#建立資料庫,會回傳一個陣列。
8191
			#建立資料庫,會回傳一個陣列。
8192
			#回傳結果:
8192
			#回傳結果:
8193
			#$result["status"],若成功則爲"true",失敗則爲"false".
8193
			#$result["status"],若成功則爲"true",失敗則爲"false".
8194
			#$result["error"],錯誤訊息 
8194
			#$result["error"],錯誤訊息
8195
			#必填參數:
8195
			#必填參數:
8196
			$conf["db"]["createDatabase"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8196
			$conf["db"]["createDatabase"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8197
			$conf["db"]["createDatabase"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8197
			$conf["db"]["createDatabase"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8198
			$conf["db"]["createDatabase"]["newDatabaseName"]=$conf["newDatabaseName"];#爲要新增的資料庫名稱
8198
			$conf["db"]["createDatabase"]["newDatabaseName"]=$conf["newDatabaseName"];#爲要新增的資料庫名稱
8199
			#可省略參數:
8199
			#可省略參數:
8200
			
8200
 
8201
			#如果 $conf["dbPassword"] 存在
8201
			#如果 $conf["dbPassword"] 存在
8202
			if(isset($conf["dbPassword"])){
8202
			if(isset($conf["dbPassword"])){
8203
				
8203
 
8204
				#設置密碼
8204
				#設置密碼
8205
				$conf["db"]["createDatabase"]["dbPassword"]=$conf["dbPassword"];
8205
				$conf["db"]["createDatabase"]["dbPassword"]=$conf["dbPassword"];
8206
				
8206
 
8207
				}#if end
8207
				}#if end
8208
				
8208
 
8209
			#如果 $conf["dbPort"] 存在
8209
			#如果 $conf["dbPort"] 存在
8210
			if(isset($conf["dbPort"])){
8210
			if(isset($conf["dbPort"])){
8211
			
8211
 
8212
				#設置密碼
8212
				#設置密碼
8213
				$conf["db"]["createDatabase"]["dbPort"]=$conf["dbPort"];
8213
				$conf["db"]["createDatabase"]["dbPort"]=$conf["dbPort"];
8214
			
8214
 
8215
				}#if end	
8215
				}#if end
8216
			
8216
 
8217
			$createNewDbResult=db::createDatabase($conf["db"]["createDatabase"]);
8217
			$createNewDbResult=db::createDatabase($conf["db"]["createDatabase"]);
8218
			unset($conf["db"]["createDatabase"]);
8218
			unset($conf["db"]["createDatabase"]);
8219
					
8219
 
8220
			#如果新資料庫建立失敗
8220
			#如果新資料庫建立失敗
8221
			if($createNewDbResult["status"]=="false"){
8221
			if($createNewDbResult["status"]=="false"){
8222
				
8222
 
8223
				#設置錯誤識別
8223
				#設置錯誤識別
8224
				$result["status"]="false";
8224
				$result["status"]="false";
8225
				
8225
 
8226
				#設置錯誤訊息
8226
				#設置錯誤訊息
8227
				$result["error"]=$createNewDbResult;
8227
				$result["error"]=$createNewDbResult;
8228
				
8228
 
8229
				#回傳結果
8229
				#回傳結果
8230
				return $result;
8230
				return $result;
8231
				
8231
 
8232
				}#if end
8232
				}#if end
8233
					
8233
 
8234
			#將舊的資料庫內容完整複製到新的資料庫
8234
			#將舊的資料庫內容完整複製到新的資料庫
8235
			#函式說明:
8235
			#函式說明:
8236
			#呼叫shell執行系統命令,並取得回傳的內容.
8236
			#呼叫shell執行系統命令,並取得回傳的內容.
8237
			#回傳結果:
8237
			#回傳結果:
8238
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
8238
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 8289... Line 8289...
8289
			#備註:
8289
			#備註:
8290
			#不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
8290
			#不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
8291
			#若使用的 command、argu 參數,含有 ~ 則會被視為字串,若有需要其於 shell 中代表的家目錄位置,可用 fileAccess::tildeToPath 來進行轉換.
8291
			#若使用的 command、argu 參數,含有 ~ 則會被視為字串,若有需要其於 shell 中代表的家目錄位置,可用 fileAccess::tildeToPath 來進行轉換.
8292
			$callShell=external::callShell($conf["external::callShell"]);
8292
			$callShell=external::callShell($conf["external::callShell"]);
8293
			unset($conf["external::callShell"]);
8293
			unset($conf["external::callShell"]);
8294
			
8294
 
8295
			#若執行shell失敗
8295
			#若執行shell失敗
8296
			if($callShell["status"]=="false"){
8296
			if($callShell["status"]=="false"){
8297
				
8297
 
8298
				#設置錯誤識別
8298
				#設置錯誤識別
8299
				$result["status"]="false";
8299
				$result["status"]="false";
8300
				
8300
 
8301
				#設置錯誤訊息
8301
				#設置錯誤訊息
8302
				$result["error"]=$callShell;
8302
				$result["error"]=$callShell;
8303
				
8303
 
8304
				#回傳結果
8304
				#回傳結果
8305
				return $result;					
8305
				return $result;
8306
				
8306
 
8307
				}#if end
8307
				}#if end
8308
							
8308
 
8309
			#將舊的資料庫丟棄
8309
			#將舊的資料庫丟棄
8310
			#函式說明:
8310
			#函式說明:
8311
			#移除資料庫,會回傳一個陣列。
8311
			#移除資料庫,會回傳一個陣列。
8312
			#回傳結果:
8312
			#回傳結果:
8313
			#$result["status"],若成功則爲0,失敗則爲1。
8313
			#$result["status"],若成功則爲0,失敗則爲1。
8314
			#$result["error"],錯誤訊息
8314
			#$result["error"],錯誤訊息
8315
			#必填參數:
8315
			#必填參數:
8316
			$conf["db"]["dropDatabase"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8316
			$conf["db"]["dropDatabase"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8317
			$conf["db"]["dropDatabase"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8317
			$conf["db"]["dropDatabase"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8318
			$conf["db"]["dropDatabase"]["dropedDatabaseName"]=$conf["editedDatabaseName"];#爲要移除的資料庫名稱
8318
			$conf["db"]["dropDatabase"]["dropedDatabaseName"]=$conf["editedDatabaseName"];#爲要移除的資料庫名稱
8319
			#可省略參數:		
8319
			#可省略參數:
8320
				
8320
 
8321
			#如果 $conf["dbPassword"] 存在
8321
			#如果 $conf["dbPassword"] 存在
8322
			if(isset($conf["dbPassword"])){
8322
			if(isset($conf["dbPassword"])){
8323
					
8323
 
8324
				#設置密碼
8324
				#設置密碼
8325
				$conf["db"]["dropDatabase"]["dbPassword"]=$conf["dbPassword"];
8325
				$conf["db"]["dropDatabase"]["dbPassword"]=$conf["dbPassword"];
8326
					
8326
 
8327
				}#if end
8327
				}#if end
8328
				
8328
 
8329
			#如果 $conf["dbPort"] 存在
8329
			#如果 $conf["dbPort"] 存在
8330
			if(isset($conf["dbPort"])){
8330
			if(isset($conf["dbPort"])){
8331
			
8331
 
8332
				#設置密碼
8332
				#設置密碼
8333
				$conf["db"]["dropDatabase"]["dbPort"]=$conf["dbPort"];
8333
				$conf["db"]["dropDatabase"]["dbPort"]=$conf["dbPort"];
8334
			
8334
 
8335
				}#if end	
8335
				}#if end
8336
							
8336
 
8337
			$dropDbResult=db::dropDatabase($conf["db"]["dropDatabase"]);
8337
			$dropDbResult=db::dropDatabase($conf["db"]["dropDatabase"]);
8338
			unset($conf["db"]["dropDatabase"]);
8338
			unset($conf["db"]["dropDatabase"]);
8339
				
8339
 
8340
			#如果舊資料庫丟棄失敗
8340
			#如果舊資料庫丟棄失敗
8341
			if($dropDbResult["status"]=="false"){
8341
			if($dropDbResult["status"]=="false"){
8342
					
8342
 
8343
				#設置錯誤識別
8343
				#設置錯誤識別
8344
				$result["status"]="false";
8344
				$result["status"]="false";
8345
					
8345
 
8346
				#設置錯誤訊息
8346
				#設置錯誤訊息
8347
				$result["error"][]="舊名稱資料庫丟棄失敗";
8347
				$result["error"][]="舊名稱資料庫丟棄失敗";
8348
					
8348
 
8349
				#回傳結果
8349
				#回傳結果
8350
				return $result;
8350
				return $result;
8351
					
8351
 
8352
				}#if end				
8352
				}#if end
8353
			
8353
 
8354
			}#if end
8354
			}#if end
8355
		
8355
 
8356
		#執行到這邊代表執行正確
8356
		#執行到這邊代表執行正確
8357
		$result["status"]="true";
8357
		$result["status"]="true";
8358
		
8358
 
8359
		#回傳結果
8359
		#回傳結果
8360
		return $result;
8360
		return $result;
8361
		
8361
 
8362
		}#function editDatabaseName
8362
		}#function editDatabaseName
8363
 
8363
 
8364
	/*
8364
	/*
8365
	#函式說明:
8365
	#函式說明:
8366
	#更改資料表的名稱. 
8366
	#更改資料表的名稱.
8367
	#回傳結果:
8367
	#回傳結果:
8368
	#$result["status"],"true"代表執行成功;若失敗會回傳錯誤訊息.
8368
	#$result["status"],"true"代表執行成功;若失敗會回傳錯誤訊息.
8369
	#$resuly["function"],當前執行的函數名稱.
8369
	#$resuly["function"],當前執行的函數名稱.
8370
	#$result["error"],錯誤訊息.
8370
	#$result["error"],錯誤訊息.
8371
	#$result["sql"],執行的sql字串.
8371
	#$result["sql"],執行的sql字串.
Line 8389... Line 8389...
8389
	#無.
8389
	#無.
8390
	#備註:
8390
	#備註:
8391
	#無.
8391
	#無.
8392
	*/
8392
	*/
8393
	public static function editDataTableName($conf){
8393
	public static function editDataTableName($conf){
8394
		
8394
 
8395
		#初始化要回傳的內容
8395
		#初始化要回傳的內容
8396
		$result=array();
8396
		$result=array();
8397
 
8397
 
8398
		#取得當前執行的函數名稱
8398
		#取得當前執行的函數名稱
8399
		$result["function"]=__FUNCTION__;
8399
		$result["function"]=__FUNCTION__;
8400
 
8400
 
8401
		#如果 $conf 不為陣列
8401
		#如果 $conf 不為陣列
8402
		if(gettype($conf)!="array"){
8402
		if(gettype($conf)!="array"){
8403
			
8403
 
8404
			#設置執行失敗
8404
			#設置執行失敗
8405
			$result["status"]="false";
8405
			$result["status"]="false";
8406
			
8406
 
8407
			#設置執行錯誤訊息
8407
			#設置執行錯誤訊息
8408
			$result["error"][]="\$conf變數須為陣列形態";
8408
			$result["error"][]="\$conf變數須為陣列形態";
8409
 
8409
 
8410
			#如果傳入的參數為 null
8410
			#如果傳入的參數為 null
8411
			if($conf==null){
8411
			if($conf==null){
8412
				
8412
 
8413
				#設置執行錯誤訊息
8413
				#設置執行錯誤訊息
8414
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8414
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8415
				
8415
 
8416
				}#if end
8416
				}#if end
8417
 
8417
 
8418
			#回傳結果
8418
			#回傳結果
8419
			return $result;
8419
			return $result;
8420
			
8420
 
8421
			}#if end
8421
			}#if end
8422
		
8422
 
8423
		#函式說明:
8423
		#函式說明:
8424
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8424
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8425
		#回傳結果:
8425
		#回傳結果:
8426
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
8426
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
8427
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
8427
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
8428
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8428
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8429
		#必填參數:
8429
		#必填參數:
8430
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8430
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8431
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("editedDataBaseName","editedDataTableName","newDataTableName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8431
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("editedDataBaseName","editedDataTableName","newDataTableName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8432
		#可省略參數:
8432
		#可省略參數:
8433
		$conf["variableType"]=array("string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
8433
		$conf["variableType"]=array("string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
8434
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8434
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8435
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8435
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8436
		unset($conf["variableCheck"]["isexistMuti"]);
8436
		unset($conf["variableCheck"]["isexistMuti"]);
8437
		
8437
 
8438
		#如果 $checkResult["passed"]等於"false".
8438
		#如果 $checkResult["passed"]等於"false".
8439
		if($checkResult["passed"]=="false"){
8439
		if($checkResult["passed"]=="false"){
8440
			
8440
 
8441
			#代表參數有錯
8441
			#代表參數有錯
8442
			
8442
 
8443
			#設置錯誤識別
8443
			#設置錯誤識別
8444
			$result["status"]="false";
8444
			$result["status"]="false";
8445
			
8445
 
8446
			#設置錯誤訊息
8446
			#設置錯誤訊息
8447
			$result["error"]=$checkResult;
8447
			$result["error"]=$checkResult;
8448
			
8448
 
8449
			#回傳結果
8449
			#回傳結果
8450
			return $result;
8450
			return $result;
8451
			
8451
 
8452
			}#if end
8452
			}#if end
8453
		
8453
 
8454
		#設定要執行的sql語法
8454
		#設定要執行的sql語法
8455
		$sql="rename table ".$conf["editedDataBaseName"].".".$conf["editedDataTableName"]." to ".$conf["editedDataBaseName"].".".$conf["newDataTableName"].";";
8455
		$sql="rename table ".$conf["editedDataBaseName"].".".$conf["editedDataTableName"]." to ".$conf["editedDataBaseName"].".".$conf["newDataTableName"].";";
8456
			
8456
 
8457
		#函式說明:
8457
		#函式說明:
8458
		#執行mysql指令
8458
		#執行mysql指令
8459
		#回傳結果::
8459
		#回傳結果::
8460
		#$result["status"],"true"為執行成功;"false"為執行失敗。
8460
		#$result["status"],"true"為執行成功;"false"為執行失敗。
8461
		#$result["error"],錯誤訊息的陣列
8461
		#$result["error"],錯誤訊息的陣列
Line 8464... Line 8464...
8464
		#查詢號的解果,需要解析。
8464
		#查詢號的解果,需要解析。
8465
		#必填參數:
8465
		#必填參數:
8466
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8466
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8467
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8467
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8468
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
8468
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
8469
		#可省略參數: 
8469
		#可省略參數:
8470
		
8470
 
8471
		#如果 $conf["dbPassword"] 有設定
8471
		#如果 $conf["dbPassword"] 有設定
8472
		if(isset($conf["dbPassword"])){
8472
		if(isset($conf["dbPassword"])){
8473
			
8473
 
8474
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
8474
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
8475
			
8475
 
8476
			}#if end
8476
			}#if end
8477
			
8477
 
8478
		#如果 $conf["dbPort"] 有設定
8478
		#如果 $conf["dbPort"] 有設定
8479
		if(isset($conf["dbPort"])){
8479
		if(isset($conf["dbPort"])){
8480
			
8480
 
8481
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port.
8481
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port.
8482
			
8482
 
8483
			}#if end			
8483
			}#if end
8484
		
8484
 
8485
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
8485
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
8486
		unset($conf["db"]["execMysqlQuery"]);
8486
		unset($conf["db"]["execMysqlQuery"]);
8487
		
8487
 
8488
		#如果 $db["execMysqlQuery"]["status"] 等於 "false".
8488
		#如果 $db["execMysqlQuery"]["status"] 等於 "false".
8489
		if($db["execMysqlQuery"]["status"]=="false"){
8489
		if($db["execMysqlQuery"]["status"]=="false"){
8490
			
8490
 
8491
			#設置執行錯誤的識別
8491
			#設置執行錯誤的識別
8492
			$result["status"]="false";
8492
			$result["status"]="false";
8493
			
8493
 
8494
			#設置錯誤訊息
8494
			#設置錯誤訊息
8495
			$result["error"]=$db["execMysqlQuery"]["error"];
8495
			$result["error"]=$db["execMysqlQuery"]["error"];
8496
			
8496
 
8497
			#回傳結果
8497
			#回傳結果
8498
			return $result;
8498
			return $result;
8499
			
8499
 
8500
			}#if end
8500
			}#if end
8501
		
8501
 
8502
		#取得執行的sql語法
8502
		#取得執行的sql語法
8503
		$result["sql"]=$db["execMysqlQuery"]["queryString"];
8503
		$result["sql"]=$db["execMysqlQuery"]["queryString"];
8504
		
8504
 
8505
		#執行到這邊代表執行成功
8505
		#執行到這邊代表執行成功
8506
		$result["status"]="true";
8506
		$result["status"]="true";
8507
		
8507
 
8508
		#回傳結果
8508
		#回傳結果
8509
		return $result;
8509
		return $result;
8510
		
8510
 
8511
		}#function editDataTableName end
8511
		}#function editDataTableName end
8512
 
8512
 
8513
	/*
8513
	/*
8514
	#函式說明:
8514
	#函式說明:
8515
	#移除資料庫,會回傳一個陣列。
8515
	#移除資料庫,會回傳一個陣列。
Line 8519... Line 8519...
8519
	#$result["function"],當前執行的函數名稱.
8519
	#$result["function"],當前執行的函數名稱.
8520
	#必填參數:
8520
	#必填參數:
8521
	$conf["dbAddress"]=$dbAddress;#爲mysql-Server的位置
8521
	$conf["dbAddress"]=$dbAddress;#爲mysql-Server的位置
8522
	$conf["dbAccount"]=$dbAccount;#爲用於連入mysql-Server時要使用的帳號
8522
	$conf["dbAccount"]=$dbAccount;#爲用於連入mysql-Server時要使用的帳號
8523
	$conf["dropedDatabaseName"]=$dbName;#爲要移除的資料庫名稱
8523
	$conf["dropedDatabaseName"]=$dbName;#爲要移除的資料庫名稱
8524
	#可省略參數:		
8524
	#可省略參數:
8525
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
8525
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
8526
	#$conf["dbPassword"]=$dbPassword;
8526
	#$conf["dbPassword"]=$dbPassword;
8527
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
8527
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
8528
	#$conf["dbPort"]="3306";
8528
	#$conf["dbPort"]="3306";
8529
	#參考資料:
8529
	#參考資料:
Line 8539... Line 8539...
8539
		#取得當前執行的函數名稱
8539
		#取得當前執行的函數名稱
8540
		$result["function"]=__FUNCTION__;
8540
		$result["function"]=__FUNCTION__;
8541
 
8541
 
8542
		#如果 $conf 不為陣列
8542
		#如果 $conf 不為陣列
8543
		if(gettype($conf)!="array"){
8543
		if(gettype($conf)!="array"){
8544
			
8544
 
8545
			#設置執行失敗
8545
			#設置執行失敗
8546
			$result["status"]="false";
8546
			$result["status"]="false";
8547
			
8547
 
8548
			#設置執行錯誤訊息
8548
			#設置執行錯誤訊息
8549
			$result["error"][]="\$conf變數須為陣列形態";
8549
			$result["error"][]="\$conf變數須為陣列形態";
8550
 
8550
 
8551
			#如果傳入的參數為 null
8551
			#如果傳入的參數為 null
8552
			if($conf==null){
8552
			if($conf==null){
8553
				
8553
 
8554
				#設置執行錯誤訊息
8554
				#設置執行錯誤訊息
8555
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8555
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8556
				
8556
 
8557
				}#if end
8557
				}#if end
8558
 
8558
 
8559
			#回傳結果
8559
			#回傳結果
8560
			return $result;
8560
			return $result;
8561
			
8561
 
8562
			}#if end
8562
			}#if end
8563
 
8563
 
8564
		#函式說明:
8564
		#函式說明:
8565
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8565
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8566
		#回傳結果:
8566
		#回傳結果:
Line 8569... Line 8569...
8569
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8569
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8570
		#必填參數:
8570
		#必填參數:
8571
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8571
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8572
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dropedDatabaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8572
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dropedDatabaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8573
		#可省略參數:
8573
		#可省略參數:
8574
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
8574
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
8575
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8575
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8576
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8576
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8577
		unset($conf["variableCheck"]["isexistMuti"]);
8577
		unset($conf["variableCheck"]["isexistMuti"]);
8578
 
8578
 
8579
		#如果 $checkResult["passed"] 等於 "fasle"
8579
		#如果 $checkResult["passed"] 等於 "fasle"
8580
		if($checkResult["passed"]=="false"){
8580
		if($checkResult["passed"]=="false"){
8581
			
8581
 
8582
			#設置錯誤識別
8582
			#設置錯誤識別
8583
			$result["status"]="false";
8583
			$result["status"]="false";
8584
			
8584
 
8585
			#設置錯誤訊息
8585
			#設置錯誤訊息
8586
			$result["error"]=$checkResult;
8586
			$result["error"]=$checkResult;
8587
			
8587
 
8588
			#回傳結果
8588
			#回傳結果
8589
			return $result;
8589
			return $result;
8590
			
8590
 
8591
			}#if end
8591
			}#if end
8592
 
8592
 
8593
		#檢查要移除的資料庫爲系統資料庫
8593
		#檢查要移除的資料庫爲系統資料庫
8594
		#函式說明:
8594
		#函式說明:
8595
		#檢查一個數值是否與陣列裏面的元素相同
8595
		#檢查一個數值是否與陣列裏面的元素相同
Line 8603... Line 8603...
8603
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
8603
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
8604
		unset($conf["search"]["getEqualVar"]);
8604
		unset($conf["search"]["getEqualVar"]);
8605
 
8605
 
8606
		#如果檢查失敗
8606
		#如果檢查失敗
8607
		if($searchResult["status"]=="false"){
8607
		if($searchResult["status"]=="false"){
8608
			
8608
 
8609
			#設置失敗代碼
8609
			#設置失敗代碼
8610
			$result["status"]="false";
8610
			$result["status"]="false";
8611
			
8611
 
8612
			#設置錯誤訊息
8612
			#設置錯誤訊息
8613
			$result["error"]=$searchResult;
8613
			$result["error"]=$searchResult;
8614
			
8614
 
8615
			#回傳結果
8615
			#回傳結果
8616
			return $result;
8616
			return $result;
8617
			
8617
 
8618
			}#if end
8618
			}#if end
8619
 
8619
 
8620
		#如果要移除的資料庫爲系統資料庫
8620
		#如果要移除的資料庫爲系統資料庫
8621
		if($searchResult["founded"]=="true"){
8621
		if($searchResult["founded"]=="true"){
8622
			
8622
 
8623
			#設置失敗代碼
8623
			#設置失敗代碼
8624
			$result["status"]="false";
8624
			$result["status"]="false";
8625
			
8625
 
8626
			#設置錯誤訊息
8626
			#設置錯誤訊息
8627
			$result["error"]="您不能丟棄系統資料庫";
8627
			$result["error"]="您不能丟棄系統資料庫";
8628
			
8628
 
8629
			#回傳結果
8629
			#回傳結果
8630
			return $result;
8630
			return $result;
8631
			
8631
 
8632
			}#if end
8632
			}#if end
8633
 
8633
 
8634
		#丟棄資料庫的sql語法
8634
		#丟棄資料庫的sql語法
8635
		$sql="DROP DATABASE ".$conf["dropedDatabaseName"];
8635
		$sql="DROP DATABASE ".$conf["dropedDatabaseName"];
8636
 
8636
 
Line 8645... Line 8645...
8645
		#查詢號的解果,需要解析。
8645
		#查詢號的解果,需要解析。
8646
		#必填參數:
8646
		#必填參數:
8647
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8647
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8648
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8648
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8649
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
8649
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
8650
		#可省略參數: 
8650
		#可省略參數:
8651
		
8651
 
8652
		#如果 $conf["dbPassword"] 有設定
8652
		#如果 $conf["dbPassword"] 有設定
8653
		if(isset($conf["dbPassword"])){
8653
		if(isset($conf["dbPassword"])){
8654
			
8654
 
8655
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
8655
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
8656
			
8656
 
8657
			}#if end
8657
			}#if end
8658
			
8658
 
8659
		
8659
 
8660
		#如果 $conf["dbPort"] 有設定
8660
		#如果 $conf["dbPort"] 有設定
8661
		if(isset($conf["dbPort"])){
8661
		if(isset($conf["dbPort"])){
8662
			
8662
 
8663
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表不使用密碼
8663
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表不使用密碼
8664
			
8664
 
8665
			}#if end
8665
			}#if end
8666
					
8666
 
8667
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
8667
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
8668
		unset($conf["db"]["execMysqlQuery"]);
8668
		unset($conf["db"]["execMysqlQuery"]);
8669
 
8669
 
8670
		#如果 $db["execMysqlQuery"]["status"] 等於 "false"
8670
		#如果 $db["execMysqlQuery"]["status"] 等於 "false"
8671
		if($db["execMysqlQuery"]["status"]=="false"){
8671
		if($db["execMysqlQuery"]["status"]=="false"){
8672
			
8672
 
8673
			#設置錯誤識別
8673
			#設置錯誤識別
8674
			$result["status"]="false";
8674
			$result["status"]="false";
8675
			
8675
 
8676
			#設置錯誤訊息
8676
			#設置錯誤訊息
8677
			$result["error"]=$db["execMysqlQuery"];
8677
			$result["error"]=$db["execMysqlQuery"];
8678
			
8678
 
8679
			#回傳結果
8679
			#回傳結果
8680
			return $result;
8680
			return $result;
8681
			
8681
 
8682
			}#if end
8682
			}#if end
8683
 
8683
 
8684
		#執行到這邊代表執行正常
8684
		#執行到這邊代表執行正常
8685
		$result["status"]="true";
8685
		$result["status"]="true";
8686
 
8686
 
Line 8725... Line 8725...
8725
		#原始語法
8725
		#原始語法
8726
		# mysqldump --column-statistics=0 -u account --password=Password -Pport --default-character-set=utf8 --events --routines --single-transaction --skip-lock-tables --quick databaseName > "all.sql"
8726
		# mysqldump --column-statistics=0 -u account --password=Password -Pport --default-character-set=utf8 --events --routines --single-transaction --skip-lock-tables --quick databaseName > "all.sql"
8727
 
8727
 
8728
		#初始化要回傳的變數
8728
		#初始化要回傳的變數
8729
		$result=array();
8729
		$result=array();
8730
		
8730
 
8731
		#紀錄當前執行的函數名稱
8731
		#紀錄當前執行的函數名稱
8732
		$result["function"]=__FUNCTION__;
8732
		$result["function"]=__FUNCTION__;
8733
 
8733
 
8734
		#如果 $conf 不為陣列
8734
		#如果 $conf 不為陣列
8735
		if(gettype($conf)!="array"){
8735
		if(gettype($conf)!="array"){
8736
			
8736
 
8737
			#設置執行失敗
8737
			#設置執行失敗
8738
			$result["status"]="false";
8738
			$result["status"]="false";
8739
			
8739
 
8740
			#設置執行錯誤訊息
8740
			#設置執行錯誤訊息
8741
			$result["error"][]="\$conf變數須為陣列形態";
8741
			$result["error"][]="\$conf變數須為陣列形態";
8742
 
8742
 
8743
			#如果傳入的參數為 null
8743
			#如果傳入的參數為 null
8744
			if($conf==null){
8744
			if($conf==null){
8745
				
8745
 
8746
				#設置執行錯誤訊息
8746
				#設置執行錯誤訊息
8747
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8747
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
8748
				
8748
 
8749
				}#if end
8749
				}#if end
8750
 
8750
 
8751
			#回傳結果
8751
			#回傳結果
8752
			return $result;
8752
			return $result;
8753
			
8753
 
8754
			}#if end
8754
			}#if end
8755
 
8755
 
8756
		#函式說明:
8756
		#函式說明:
8757
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8757
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
8758
		#回傳結果:
8758
		#回傳結果:
Line 8761... Line 8761...
8761
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8761
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
8762
		#必填參數:
8762
		#必填參數:
8763
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8763
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
8764
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","backedDatabaseName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8764
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","backedDatabaseName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
8765
		#可省略參數:
8765
		#可省略參數:
8766
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
8766
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
8767
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8767
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
8768
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8768
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
8769
		unset($conf["variableCheck"]["isexistMuti"]);
8769
		unset($conf["variableCheck"]["isexistMuti"]);
8770
 
8770
 
8771
		#如果檢查失敗
8771
		#如果檢查失敗
8772
		if($checkResult["status"]=="false"){
8772
		if($checkResult["status"]=="false"){
8773
			
8773
 
8774
			#設置錯誤識別
8774
			#設置錯誤識別
8775
			$result["status"]="false";
8775
			$result["status"]="false";
8776
			
8776
 
8777
			#設置錯誤訊息
8777
			#設置錯誤訊息
8778
			$result["error"]=$checkResult;
8778
			$result["error"]=$checkResult;
8779
			
8779
 
8780
			#回傳錯誤訊息
8780
			#回傳錯誤訊息
8781
			return $result;
8781
			return $result;
8782
			
8782
 
8783
			}#if end
8783
			}#if end
8784
 
8784
 
8785
		#如果檢查不通過
8785
		#如果檢查不通過
8786
		if($checkResult["passed"]=="false"){
8786
		if($checkResult["passed"]=="false"){
8787
 
8787
 
8788
			#設置錯誤識別
8788
			#設置錯誤識別
8789
			$result["status"]="false";
8789
			$result["status"]="false";
8790
			
8790
 
8791
			#設置錯誤訊息
8791
			#設置錯誤訊息
8792
			$result["error"]=$checkResult;
8792
			$result["error"]=$checkResult;
8793
			
8793
 
8794
			#回傳錯誤訊息
8794
			#回傳錯誤訊息
8795
			return $result;
8795
			return $result;
8796
 
8796
 
8797
			}#if end
8797
			}#if end
8798
			
8798
 
8799
		#檢查要備份的資料庫是否爲系統資料庫
8799
		#檢查要備份的資料庫是否爲系統資料庫
8800
		#函式說明:
8800
		#函式說明:
8801
		#檢查一個數值是否與陣列裏面的元素相同
8801
		#檢查一個數值是否與陣列裏面的元素相同
8802
		#回傳結果::
8802
		#回傳結果::
8803
		#$result["status"],"true"表示有找到相同的,"false"表示沒有找到相同的。
8803
		#$result["status"],"true"表示有找到相同的,"false"表示沒有找到相同的。
Line 8810... Line 8810...
8810
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
8810
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
8811
		unset($conf["search"]["getEqualVar"]);
8811
		unset($conf["search"]["getEqualVar"]);
8812
 
8812
 
8813
		#如果檢查失敗
8813
		#如果檢查失敗
8814
		if($searchResult["status"]=="false"){
8814
		if($searchResult["status"]=="false"){
8815
			
8815
 
8816
			#設置錯誤識別
8816
			#設置錯誤識別
8817
			$result["status"]="false";
8817
			$result["status"]="false";
8818
			
8818
 
8819
			#設置錯誤訊息
8819
			#設置錯誤訊息
8820
			$result["error"]=$searchResult;
8820
			$result["error"]=$searchResult;
8821
			
8821
 
8822
			#回傳結果
8822
			#回傳結果
8823
			return $result;
8823
			return $result;
8824
			
8824
 
8825
			}#if end
8825
			}#if end
8826
			
8826
 
8827
		#如果要備份的資料庫爲系統資料庫
8827
		#如果要備份的資料庫爲系統資料庫
8828
		if($searchResult["founded"]=="true"){
8828
		if($searchResult["founded"]=="true"){
8829
			
8829
 
8830
			#設置錯誤識別
8830
			#設置錯誤識別
8831
			$result["status"]="false";
8831
			$result["status"]="false";
8832
			
8832
 
8833
			#設置錯誤訊息
8833
			#設置錯誤訊息
8834
			$result["error"]="您不能備份系統資料庫";
8834
			$result["error"]="您不能備份系統資料庫";
8835
			
8835
 
8836
			#回傳結果
8836
			#回傳結果
8837
			return $result;
8837
			return $result;
8838
			
8838
 
8839
			}#if end
8839
			}#if end
8840
 
8840
 
8841
		#初始化連線的密碼
8841
		#初始化連線的密碼
8842
		$dbPassword="";
8842
		$dbPassword="";
8843
	
8843
 
8844
		#如果 $conf["dbPassword"] 有設置
8844
		#如果 $conf["dbPassword"] 有設置
8845
		if(isset($conf["dbPassword"])){
8845
		if(isset($conf["dbPassword"])){
8846
 
8846
 
8847
			#令存密碼
8847
			#令存密碼
8848
			$dbPassword=$conf["dbPassword"];
8848
			$dbPassword=$conf["dbPassword"];
Line 8857... Line 8857...
8857
 
8857
 
8858
			#設爲空值
8858
			#設爲空值
8859
			$conf["dbPassword"]="";
8859
			$conf["dbPassword"]="";
8860
 
8860
 
8861
			}#else end
8861
			}#else end
8862
		
8862
 
8863
		#如果 $conf["storePlace"] 沒有設置
8863
		#如果 $conf["storePlace"] 沒有設置
8864
		if(!isset($conf["storePlace"])){
8864
		if(!isset($conf["storePlace"])){
8865
 
8865
 
8866
			#將其設爲空值
8866
			#將其設爲空值
8867
			$conf["storePlace"]="";
8867
			$conf["storePlace"]="";
8868
 
8868
 
8869
			}#if end
8869
			}#if end
8870
		
8870
 
8871
		#反之有設定且結尾不為 "/"
8871
		#反之有設定且結尾不為 "/"
8872
		else if($conf["storePlace"][strlen($conf["storePlace"])-1]!=="/"){
8872
		else if($conf["storePlace"][strlen($conf["storePlace"])-1]!=="/"){
8873
		
8873
 
8874
			#在其路徑後方加上 /
8874
			#在其路徑後方加上 /
8875
			$conf["storePlace"]=$conf["storePlace"]."/";
8875
			$conf["storePlace"]=$conf["storePlace"]."/";
8876
 
8876
 
8877
			}#if end
8877
			}#if end
8878
 
8878
 
Line 8903... Line 8903...
8903
		#必填的參數
8903
		#必填的參數
8904
		$conf["db::checkDataBaseExists"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8904
		$conf["db::checkDataBaseExists"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
8905
		$conf["db::checkDataBaseExists"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8905
		$conf["db::checkDataBaseExists"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
8906
		$conf["db::checkDataBaseExists"]["checkDataBaseName"]=$conf["backedDatabaseName"];#爲要檢查是否存在的資料庫名稱
8906
		$conf["db::checkDataBaseExists"]["checkDataBaseName"]=$conf["backedDatabaseName"];#爲要檢查是否存在的資料庫名稱
8907
		#可省略參數
8907
		#可省略參數
8908
		
8908
 
8909
		#如果密碼不為""
8909
		#如果密碼不為""
8910
		if($dbPassword!=""){
8910
		if($dbPassword!=""){
8911
			
8911
 
8912
			$conf["db::checkDataBaseExists"]["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
8912
			$conf["db::checkDataBaseExists"]["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
8913
			
8913
 
8914
			}#if end
8914
			}#if end
8915
			
8915
 
8916
		#如果有設置 $conf["dnPort"]
8916
		#如果有設置 $conf["dnPort"]
8917
		if(isset($conf["dbPort"])){
8917
		if(isset($conf["dbPort"])){
8918
		
8918
 
8919
			$conf["db::checkDataBaseExists"]["dbPort"]=$conf["dbPort"];
8919
			$conf["db::checkDataBaseExists"]["dbPort"]=$conf["dbPort"];
8920
		
8920
 
8921
			}#if end
8921
			}#if end
8922
			
8922
 
8923
		$checkDataBaseExists=db::checkDataBaseExists($conf["db::checkDataBaseExists"]);
8923
		$checkDataBaseExists=db::checkDataBaseExists($conf["db::checkDataBaseExists"]);
8924
		unset($conf["db::checkDataBaseExists"]);
8924
		unset($conf["db::checkDataBaseExists"]);
8925
 
8925
 
8926
		#如果檢查資料庫是否存在失敗
8926
		#如果檢查資料庫是否存在失敗
8927
		if($checkDataBaseExists["status"]=="false"){
8927
		if($checkDataBaseExists["status"]=="false"){
8928
			
8928
 
8929
			#設置錯誤識別
8929
			#設置錯誤識別
8930
			$result["status"]="false";
8930
			$result["status"]="false";
8931
			
8931
 
8932
			#設置錯誤訊息
8932
			#設置錯誤訊息
8933
			$result["error"]=$checkDataBaseExists;
8933
			$result["error"]=$checkDataBaseExists;
8934
			
8934
 
8935
			#回傳結果
8935
			#回傳結果
8936
			return $result;
8936
			return $result;
8937
			
8937
 
8938
			}#if end
8938
			}#if end
8939
			
8939
 
8940
		#如果資料庫不存在
8940
		#如果資料庫不存在
8941
		if($checkDataBaseExists["exist"]=="false"){
8941
		if($checkDataBaseExists["exist"]=="false"){
8942
			
8942
 
8943
			#設置錯誤識別
8943
			#設置錯誤識別
8944
			$result["status"]="false";
8944
			$result["status"]="false";
8945
			
8945
 
8946
			#設置錯誤訊息
8946
			#設置錯誤訊息
8947
			$result["error"]=$checkDataBaseExists;
8947
			$result["error"]=$checkDataBaseExists;
8948
			
8948
 
8949
			#回傳結果
8949
			#回傳結果
8950
			return $result;
8950
			return $result;
8951
			
8951
 
8952
			}#if end
8952
			}#if end
8953
 
8953
 
8954
		#若有設置port
8954
		#若有設置port
8955
		if(isset($conf["dbPort"])){
8955
		if(isset($conf["dbPort"])){
8956
		
8956
 
8957
			#指定port
8957
			#指定port
8958
			$port="-P".$conf["dbPort"];
8958
			$port="-P".$conf["dbPort"];
8959
		
8959
 
8960
			}#if end
8960
			}#if end
8961
		
8961
 
8962
		#反之
8962
		#反之
8963
		else{
8963
		else{
8964
			#設置為空
8964
			#設置為空
8965
			$port="";
8965
			$port="";
8966
			
8966
 
8967
			}#else end
8967
			}#else end
8968
 
8968
 
8969
		#透過以下指令判斷是否支援 --column-statistics 參數
8969
		#透過以下指令判斷是否支援 --column-statistics 參數
8970
		#mysqldump --help | grep "\--column-statistics" | wc -l
8970
		#mysqldump --help | grep "\--column-statistics" | wc -l
8971
		#函式說明:
8971
		#函式說明:
Line 9021... Line 9021...
9021
		#exec=>http://php.net/manual/en/function.exec.php
9021
		#exec=>http://php.net/manual/en/function.exec.php
9022
		#escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
9022
		#escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
9023
		#escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
9023
		#escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
9024
		$callShell=external::callShell($conf["external::callShell"]);
9024
		$callShell=external::callShell($conf["external::callShell"]);
9025
		unset($conf["external::callShell"]);
9025
		unset($conf["external::callShell"]);
9026
		
9026
 
9027
		#如果執行shell失敗
9027
		#如果執行shell失敗
9028
		if($callShell["status"]==="false"){
9028
		if($callShell["status"]==="false"){
9029
			
9029
 
9030
			#設置錯誤識別
9030
			#設置錯誤識別
9031
			$result["status"]="false";
9031
			$result["status"]="false";
9032
			
9032
 
9033
			#設置錯誤訊息
9033
			#設置錯誤訊息
9034
			$result["error"]=$callShell;
9034
			$result["error"]=$callShell;
9035
			
9035
 
9036
			#回傳結果
9036
			#回傳結果
9037
			return $result;
9037
			return $result;
9038
			
9038
 
9039
			}#if end
9039
			}#if end
9040
 
9040
 
9041
		#初始化參數
9041
		#初始化參數
9042
		$conf["external::callShell"]["argu"]=array();
9042
		$conf["external::callShell"]["argu"]=array();
9043
 
9043
 
9044
		#如果支援 --column-statistics 參數
9044
		#如果支援 --column-statistics 參數
9045
		if($callShell["output"][0]==="1"){
9045
		if($callShell["output"][0]==="1"){
9046
		
9046
 
9047
			#增加參數
9047
			#增加參數
9048
			$conf["external::callShell"]["argu"][]="--column-statistics=0";
9048
			$conf["external::callShell"]["argu"][]="--column-statistics=0";
9049
		
9049
 
9050
			}#if end
9050
			}#if end
9051
 
9051
 
9052
		#輸出資料庫sql檔案		
9052
		#輸出資料庫sql檔案
9053
		#函式說明:
9053
		#函式說明:
9054
		#呼叫shell執行系統命令,並取得回傳的內容.
9054
		#呼叫shell執行系統命令,並取得回傳的內容.
9055
		#回傳結果:
9055
		#回傳結果:
9056
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
9056
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
9057
		#$result["error"],錯誤訊息陣列.
9057
		#$result["error"],錯誤訊息陣列.
Line 9074... Line 9074...
9074
		$conf["external::callShell"]["argu"][]="-u";
9074
		$conf["external::callShell"]["argu"][]="-u";
9075
		$conf["external::callShell"]["argu"][]=$conf["dbAccount"];
9075
		$conf["external::callShell"]["argu"][]=$conf["dbAccount"];
9076
		$conf["external::callShell"]["argu"][]=$conf["dbPassword"];
9076
		$conf["external::callShell"]["argu"][]=$conf["dbPassword"];
9077
		$conf["external::callShell"]["argu"][]="-h";
9077
		$conf["external::callShell"]["argu"][]="-h";
9078
		$conf["external::callShell"]["argu"][]=$conf["dbAddress"];
9078
		$conf["external::callShell"]["argu"][]=$conf["dbAddress"];
9079
		
9079
 
9080
		#如果有指定 port
9080
		#如果有指定 port
9081
		if($port!==""){
9081
		if($port!==""){
9082
		
9082
 
9083
			#設置port
9083
			#設置port
9084
			$conf["external::callShell"]["argu"][]=$port;
9084
			$conf["external::callShell"]["argu"][]=$port;
9085
		
9085
 
9086
			}#if end
9086
			}#if end
9087
 
9087
 
9088
		$conf["external::callShell"]["argu"][]="--default-character-set=utf8";
9088
		$conf["external::callShell"]["argu"][]="--default-character-set=utf8";
9089
		$conf["external::callShell"]["argu"][]="--events";
9089
		$conf["external::callShell"]["argu"][]="--events";
9090
		$conf["external::callShell"]["argu"][]="--routines";
9090
		$conf["external::callShell"]["argu"][]="--routines";
Line 9123... Line 9123...
9123
		#exec=>http://php.net/manual/en/function.exec.php
9123
		#exec=>http://php.net/manual/en/function.exec.php
9124
		#escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
9124
		#escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
9125
		#escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
9125
		#escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
9126
		$callShell=external::callShell($conf["external::callShell"]);
9126
		$callShell=external::callShell($conf["external::callShell"]);
9127
		unset($conf["external::callShell"]);
9127
		unset($conf["external::callShell"]);
9128
		
9128
 
9129
		#如果執行shell失敗
9129
		#如果執行shell失敗
9130
		if($callShell["status"]==="false"){
9130
		if($callShell["status"]==="false"){
9131
			
9131
 
9132
			#設置錯誤識別
9132
			#設置錯誤識別
9133
			$result["status"]="false";
9133
			$result["status"]="false";
9134
			
9134
 
9135
			#設置錯誤訊息
9135
			#設置錯誤訊息
9136
			$result["error"]=$callShell;
9136
			$result["error"]=$callShell;
9137
			
9137
 
9138
			#回傳結果
9138
			#回傳結果
9139
			return $result;
9139
			return $result;
9140
			
9140
 
9141
			}#if end
9141
			}#if end
9142
 
9142
 
9143
		#設置產生的sql檔案位置
9143
		#設置產生的sql檔案位置
9144
		$result["sqlAddress"]=$conf["storePlace"].$conf["exportFileName"];
9144
		$result["sqlAddress"]=$conf["storePlace"].$conf["exportFileName"];
9145
 
9145
 
9146
		#設置執行成功
9146
		#設置執行成功
9147
		$result["status"]="true";
9147
		$result["status"]="true";
9148
		
9148
 
9149
		#回傳結果
9149
		#回傳結果
9150
		return $result;
9150
		return $result;
9151
 
9151
 
9152
		}#function backupDatabase end
9152
		}#function backupDatabase end
9153
		
9153
 
9154
	/*
9154
	/*
9155
	#函式說明:
9155
	#函式說明:
9156
	#移除表,會回傳一個陣列。
9156
	#移除表,會回傳一個陣列。
9157
	#回傳結果:
9157
	#回傳結果:
9158
	#$result["status"],若成功則爲"true",失敗則爲,"false"
9158
	#$result["status"],若成功則爲"true",失敗則爲,"false"
Line 9165... Line 9165...
9165
	$conf["dbAccount"]=$dbAccount;
9165
	$conf["dbAccount"]=$dbAccount;
9166
	$conf["selectedDatabaseName"],字串,爲要移除的資料表位於哪個資料庫
9166
	$conf["selectedDatabaseName"],字串,爲要移除的資料表位於哪個資料庫
9167
	$conf["selectedDatabaseName"]=$dbName;
9167
	$conf["selectedDatabaseName"]=$dbName;
9168
	$conf["dropedDataTableName"],字串,爲要移除的資料表名稱
9168
	$conf["dropedDataTableName"],字串,爲要移除的資料表名稱
9169
	$conf["dropedDataTableName"]=$tableName;#爲要移除的資料表名稱
9169
	$conf["dropedDataTableName"]=$tableName;#爲要移除的資料表名稱
9170
	#可省略參數:		
9170
	#可省略參數:
9171
	#$conf["dbPassword"],字串.爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9171
	#$conf["dbPassword"],字串.爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9172
	#$conf["dbPassword"]=$dbPassword;
9172
	#$conf["dbPassword"]=$dbPassword;
9173
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
9173
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
9174
	#$conf["dbPort"]="3306";
9174
	#$conf["dbPort"]="3306";
9175
	#參考資料:
9175
	#參考資料:
Line 9185... Line 9185...
9185
		#取得當前執行的函數名稱
9185
		#取得當前執行的函數名稱
9186
		$result["function"]=__FUNCTION__;
9186
		$result["function"]=__FUNCTION__;
9187
 
9187
 
9188
		#如果 $conf 不為陣列
9188
		#如果 $conf 不為陣列
9189
		if(gettype($conf)!="array"){
9189
		if(gettype($conf)!="array"){
9190
			
9190
 
9191
			#設置執行失敗
9191
			#設置執行失敗
9192
			$result["status"]="false";
9192
			$result["status"]="false";
9193
			
9193
 
9194
			#設置執行錯誤訊息
9194
			#設置執行錯誤訊息
9195
			$result["error"][]="\$conf變數須為陣列形態";
9195
			$result["error"][]="\$conf變數須為陣列形態";
9196
 
9196
 
9197
			#如果傳入的參數為 null
9197
			#如果傳入的參數為 null
9198
			if($conf==null){
9198
			if($conf==null){
9199
				
9199
 
9200
				#設置執行錯誤訊息
9200
				#設置執行錯誤訊息
9201
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9201
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9202
				
9202
 
9203
				}#if end
9203
				}#if end
9204
 
9204
 
9205
			#回傳結果
9205
			#回傳結果
9206
			return $result;
9206
			return $result;
9207
			
9207
 
9208
			}#if end
9208
			}#if end
9209
 
9209
 
9210
		#函式說明:
9210
		#函式說明:
9211
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
9211
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
9212
		#回傳結果:
9212
		#回傳結果:
Line 9215... Line 9215...
9215
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
9215
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
9216
		#必填參數:
9216
		#必填參數:
9217
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
9217
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
9218
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDatabaseName","dropedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
9218
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDatabaseName","dropedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
9219
		#可省略參數:
9219
		#可省略參數:
9220
		$conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
9220
		$conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
9221
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
9221
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
9222
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
9222
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
9223
		unset($conf["variableCheck"]["isexistMuti"]);
9223
		unset($conf["variableCheck"]["isexistMuti"]);
9224
 
9224
 
9225
		#如果檢查不正常
9225
		#如果檢查不正常
9226
		if($checkResult["status"]=="false"){
9226
		if($checkResult["status"]=="false"){
9227
			
9227
 
9228
			#設置執行錯誤
9228
			#設置執行錯誤
9229
			$result["status"]="fasle";
9229
			$result["status"]="fasle";
9230
			
9230
 
9231
			#設置錯誤訊息
9231
			#設置錯誤訊息
9232
			$result["error"]=$checkResult;
9232
			$result["error"]=$checkResult;
9233
			
9233
 
9234
			#回傳結果:
9234
			#回傳結果:
9235
			return $result;
9235
			return $result;
9236
			
9236
 
9237
			}#if end
9237
			}#if end
9238
 
9238
 
9239
		#如果檢查不通過
9239
		#如果檢查不通過
9240
		if($checkResult["passed"]=="false"){
9240
		if($checkResult["passed"]=="false"){
9241
			
9241
 
9242
			#設置執行錯誤
9242
			#設置執行錯誤
9243
			$result["status"]="fasle";
9243
			$result["status"]="fasle";
9244
			
9244
 
9245
			#設置錯誤訊息
9245
			#設置錯誤訊息
9246
			$result["error"]=$checkResult;
9246
			$result["error"]=$checkResult;
9247
			
9247
 
9248
			#回傳結果:
9248
			#回傳結果:
9249
			return $result;
9249
			return $result;
9250
			
9250
 
9251
			}#if end
9251
			}#if end
9252
			
9252
 
9253
		#建立移除資料表的sql語言
9253
		#建立移除資料表的sql語言
9254
		$sql="drop table ".$conf["selectedDatabaseName"].".".$conf["dropedDataTableName"].";";
9254
		$sql="drop table ".$conf["selectedDatabaseName"].".".$conf["dropedDataTableName"].";";
9255
			
9255
 
9256
		#函式說明:
9256
		#函式說明:
9257
		#執行mysql查詢的指令
9257
		#執行mysql查詢的指令
9258
		#回傳結果::
9258
		#回傳結果::
9259
		#$result["status"],"true"為執行成功;"false"為執行失敗。
9259
		#$result["status"],"true"為執行成功;"false"為執行失敗。
9260
		#$result["error"],錯誤訊息的陣列
9260
		#$result["error"],錯誤訊息的陣列
9261
		#查詢號的解果,需要解析。
9261
		#查詢號的解果,需要解析。
9262
		#必填參數:
9262
		#必填參數:
9263
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
9263
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
9264
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
9264
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
9265
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
9265
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
9266
		#可省略參數: 
9266
		#可省略參數:
9267
		
9267
 
9268
		#如果有設定密碼
9268
		#如果有設定密碼
9269
		if(isset($conf["dbPassword"])){
9269
		if(isset($conf["dbPassword"])){
9270
		
9270
 
9271
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9271
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9272
		
9272
 
9273
			}#if end
9273
			}#if end
9274
			
9274
 
9275
		#如果有設定 $conf["dbPort"]
9275
		#如果有設定 $conf["dbPort"]
9276
		if(isset($conf["dbPort"])){
9276
		if(isset($conf["dbPort"])){
9277
		
9277
 
9278
			#設置 $conf["dbPort"]
9278
			#設置 $conf["dbPort"]
9279
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
9279
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
9280
		
9280
 
9281
			}#if end
9281
			}#if end
9282
		
9282
 
9283
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
9283
		$queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
9284
		unset($conf["db"]["execMysqlQuery"]);
9284
		unset($conf["db"]["execMysqlQuery"]);
9285
 
9285
 
9286
		#如果移除資料表失敗
9286
		#如果移除資料表失敗
9287
		if($queryResult["status"]=="false"){
9287
		if($queryResult["status"]=="false"){
9288
			
9288
 
9289
			#設置錯誤識別
9289
			#設置錯誤識別
9290
			$result["status"]="false";
9290
			$result["status"]="false";
9291
			
9291
 
9292
			#設置錯誤訊息
9292
			#設置錯誤訊息
9293
			$result["error"]=$queryResult["error"];
9293
			$result["error"]=$queryResult["error"];
9294
			
9294
 
9295
			#回傳結果
9295
			#回傳結果
9296
			return $result;
9296
			return $result;
9297
			
9297
 
9298
			}#if end
9298
			}#if end
9299
 
9299
 
9300
		#設置執行成功的訊息
9300
		#設置執行成功的訊息
9301
		$result["status"]="true";
9301
		$result["status"]="true";
9302
 
9302
 
Line 9311... Line 9311...
9311
	#回傳結果:
9311
	#回傳結果:
9312
	#$result["status"],執行是否正常,"true"為正常,"fasle"為不正常
9312
	#$result["status"],執行是否正常,"true"為正常,"fasle"為不正常
9313
	#$result["error"],爲錯誤訊息
9313
	#$result["error"],爲錯誤訊息
9314
	#$result["function"],當前執行的函數名稱
9314
	#$result["function"],當前執行的函數名稱
9315
	#$result["dbName"] 爲查詢的資料庫名稱陣列,第一筆資料庫名稱爲$result["dbName"][0],第二筆資料庫名稱爲$result["dbName"][1],其餘以此類推。
9315
	#$result["dbName"] 爲查詢的資料庫名稱陣列,第一筆資料庫名稱爲$result["dbName"][0],第二筆資料庫名稱爲$result["dbName"][1],其餘以此類推。
9316
	#$result["dbCounts"] 爲資料庫的總筆數	
9316
	#$result["dbCounts"] 爲資料庫的總筆數
9317
	#必填參數:
9317
	#必填參數:
9318
	$conf["dbAddress"],字串,爲mysql-Server的位置.
9318
	$conf["dbAddress"],字串,爲mysql-Server的位置.
9319
	$conf["dbAddress"]=$dbAddress;
9319
	$conf["dbAddress"]=$dbAddress;
9320
	$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
9320
	$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
9321
	$conf["dbAccount"]=$dbAccount;
9321
	$conf["dbAccount"]=$dbAccount;
Line 9337... Line 9337...
9337
		#取得當前執行的函數名稱
9337
		#取得當前執行的函數名稱
9338
		$result["function"]=__FUNCTION__;
9338
		$result["function"]=__FUNCTION__;
9339
 
9339
 
9340
		#如果 $conf 不為陣列
9340
		#如果 $conf 不為陣列
9341
		if(gettype($conf)!="array"){
9341
		if(gettype($conf)!="array"){
9342
			
9342
 
9343
			#設置執行失敗
9343
			#設置執行失敗
9344
			$result["status"]="false";
9344
			$result["status"]="false";
9345
			
9345
 
9346
			#設置執行錯誤訊息
9346
			#設置執行錯誤訊息
9347
			$result["error"][]="\$conf變數須為陣列形態";
9347
			$result["error"][]="\$conf變數須為陣列形態";
9348
 
9348
 
9349
			#如果傳入的參數為 null
9349
			#如果傳入的參數為 null
9350
			if($conf==null){
9350
			if($conf==null){
9351
				
9351
 
9352
				#設置執行錯誤訊息
9352
				#設置執行錯誤訊息
9353
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9353
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9354
				
9354
 
9355
				}#if end
9355
				}#if end
9356
 
9356
 
9357
			#回傳結果
9357
			#回傳結果
9358
			return $result;
9358
			return $result;
9359
			
9359
 
9360
			}#if end
9360
			}#if end
9361
 
9361
 
9362
		#檢查參數
9362
		#檢查參數
9363
		#函式說明:
9363
		#函式說明:
9364
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
9364
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
Line 9368... Line 9368...
9368
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
9368
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
9369
		#必填參數:
9369
		#必填參數:
9370
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
9370
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
9371
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
9371
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
9372
		#可省略參數:
9372
		#可省略參數:
9373
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
9373
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
9374
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
9374
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
9375
		#備註:
9375
		#備註:
9376
		#功能與checkExistAndType函式相同
9376
		#功能與checkExistAndType函式相同
9377
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
9377
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
9378
		unset($conf["variableCheck"]["isexistMuti"]);
9378
		unset($conf["variableCheck"]["isexistMuti"]);
9379
 
9379
 
9380
		#如果 $checkResult["passed"]等於"fasle"
9380
		#如果 $checkResult["passed"]等於"fasle"
9381
		if($checkResult["passed"]=="fasle"){
9381
		if($checkResult["passed"]=="fasle"){
9382
			
9382
 
9383
			#設置錯誤識別
9383
			#設置錯誤識別
9384
			$result["status"]="fasle";
9384
			$result["status"]="fasle";
9385
			
9385
 
9386
			#設置錯誤訊息
9386
			#設置錯誤訊息
9387
			$result["error"]=$checkResult;
9387
			$result["error"]=$checkResult;
9388
			
9388
 
9389
			#回傳結果
9389
			#回傳結果
9390
			return $result;
9390
			return $result;
9391
			
9391
 
9392
			}#if end 
9392
			}#if end
9393
 
9393
 
9394
		#連線到mysql-server
9394
		#連線到mysql-server
9395
		#函式說明:
9395
		#函式說明:
9396
		#連線到mysql-server,會回傳一個陣列
9396
		#連線到mysql-server,會回傳一個陣列
9397
		#回傳結果:
9397
		#回傳結果:
Line 9400... Line 9400...
9400
		#$result["error"],爲錯誤訊息陣列
9400
		#$result["error"],爲錯誤訊息陣列
9401
		#必填參數:
9401
		#必填參數:
9402
		$conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
9402
		$conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
9403
		$conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
9403
		$conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
9404
		#可省略參數:
9404
		#可省略參數:
9405
		
9405
 
9406
		#如果有設置 $conf["dbPassword"]
9406
		#如果有設置 $conf["dbPassword"]
9407
		if(isset($conf["dbPassword"])){
9407
		if(isset($conf["dbPassword"])){
9408
			
9408
 
9409
			$conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
9409
			$conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
9410
			
9410
 
9411
			}#if end
9411
			}#if end
9412
		
9412
 
9413
		#如果有設置 $conf["dbPort"]
9413
		#如果有設置 $conf["dbPort"]
9414
		if(isset($conf["dbPort"])){
9414
		if(isset($conf["dbPort"])){
9415
		
9415
 
9416
			$conf["db"]["mysqlConnect"]["dbPort"]=$conf["dbPort"];#連線時用的port.
9416
			$conf["db"]["mysqlConnect"]["dbPort"]=$conf["dbPort"];#連線時用的port.
9417
		
9417
 
9418
			}#if end
9418
			}#if end
9419
		
9419
 
9420
		$con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
9420
		$con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
9421
		unset($conf["db"]["mysqlConnect"]);
9421
		unset($conf["db"]["mysqlConnect"]);
9422
	
9422
 
9423
		#如果 $con["status"] 等於 "fasle"
9423
		#如果 $con["status"] 等於 "fasle"
9424
		if($con["status"]=="fasle"){
9424
		if($con["status"]=="fasle"){
9425
			
9425
 
9426
			#設置錯誤識別
9426
			#設置錯誤識別
9427
			$result["status"]="false";
9427
			$result["status"]="false";
9428
			
9428
 
9429
			#設置錯誤訊息
9429
			#設置錯誤訊息
9430
			$result["error"]=$con;
9430
			$result["error"]=$con;
9431
			
9431
 
9432
			#回傳結果
9432
			#回傳結果
9433
			return $result;
9433
			return $result;
9434
			
9434
 
9435
			}#if end
9435
			}#if end
9436
	
9436
 
9437
		#執行列出資料庫列表的SQL語法
9437
		#執行列出資料庫列表的SQL語法
9438
		#函式說明:
9438
		#函式說明:
9439
		#執行mysql指令
9439
		#執行mysql指令
9440
		#回傳結果::
9440
		#回傳結果::
9441
		#$result["status"],"true"為執行成功;"false"為執行失敗。
9441
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 9446... Line 9446...
9446
		#查詢號的解果,需要解析。
9446
		#查詢號的解果,需要解析。
9447
		#必填參數:
9447
		#必填參數:
9448
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
9448
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
9449
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
9449
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
9450
		$conf["db::execMysqlQuery"]["dbSql"]="show databases;";#要執行sql語法
9450
		$conf["db::execMysqlQuery"]["dbSql"]="show databases;";#要執行sql語法
9451
		#可省略參數: 
9451
		#可省略參數:
9452
		
9452
 
9453
		#如果存在 $conf["dbPassword"]
9453
		#如果存在 $conf["dbPassword"]
9454
		if(isset($conf["dbPassword"])){
9454
		if(isset($conf["dbPassword"])){
9455
		
9455
 
9456
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9456
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9457
		
9457
 
9458
			}#if end
9458
			}#if end
9459
			
9459
 
9460
		#如果存在 $conf["dbPort"]
9460
		#如果存在 $conf["dbPort"]
9461
		if(isset($conf["dbPort"])){
9461
		if(isset($conf["dbPort"])){
9462
		
9462
 
9463
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9463
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9464
		
9464
 
9465
			}#if end
9465
			}#if end
9466
		
9466
 
9467
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
9467
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
9468
		unset($conf["db::execMysqlQuery"]);
9468
		unset($conf["db::execMysqlQuery"]);
9469
 
9469
 
9470
		#如果執行SQL語法失敗
9470
		#如果執行SQL語法失敗
9471
		if($execMysqlQuery["status"]=="false"){
9471
		if($execMysqlQuery["status"]=="false"){
9472
			
9472
 
9473
			#設置錯誤識別
9473
			#設置錯誤識別
9474
			$result["status"]="false";
9474
			$result["status"]="false";
9475
			
9475
 
9476
			#設置錯誤訊息
9476
			#設置錯誤訊息
9477
			$result["error"]=$execMysqlQuery;
9477
			$result["error"]=$execMysqlQuery;
9478
			
9478
 
9479
			#回傳結果
9479
			#回傳結果
9480
			return $result;
9480
			return $result;
9481
			
9481
 
9482
			}#if end
9482
			}#if end
9483
 
9483
 
9484
		#設定 $i 的初始值
9484
		#設定 $i 的初始值
9485
		$times=0;
9485
		$times=0;
9486
 
9486
 
9487
		#逐筆解析內容
9487
		#逐筆解析內容
9488
		while($row=mysqli_fetch_assoc($execMysqlQuery["queryResource"])) {
9488
		while($row=mysqli_fetch_assoc($execMysqlQuery["queryResource"])) {
9489
		
9489
 
9490
			#將結果存進 $fetchResult[$times]	    	
9490
			#將結果存進 $fetchResult[$times]
9491
			$fetchResult[$times]= $row['Database'];
9491
			$fetchResult[$times]= $row['Database'];
9492
 
9492
 
9493
			#$times + 1 (計數用)
9493
			#$times + 1 (計數用)
9494
			$times++;
9494
			$times++;
9495
			
9495
 
9496
			}#while end
9496
			}#while end
9497
 
9497
 
9498
		#取得每筆資料內容(資料庫的名稱)
9498
		#取得每筆資料內容(資料庫的名稱)
9499
		$result["dbName"]=$fetchResult;
9499
		$result["dbName"]=$fetchResult;
9500
 
9500
 
9501
		#取得總共的資料筆數
9501
		#取得總共的資料筆數
9502
		$result["dbCounts"]=$times;
9502
		$result["dbCounts"]=$times;
9503
		
9503
 
9504
		#執行到這邊代表執行成功
9504
		#執行到這邊代表執行成功
9505
		$result["status"]="true";
9505
		$result["status"]="true";
9506
		
9506
 
9507
		#回傳查詢的結果 $result
9507
		#回傳查詢的結果 $result
9508
		return $result;
9508
		return $result;
9509
 
9509
 
9510
		}#function getDataBaseList end
9510
		}#function getDataBaseList end
9511
 
9511
 
Line 9538... Line 9538...
9538
	#無.
9538
	#無.
9539
	#備註:
9539
	#備註:
9540
	#原始語法,show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
9540
	#原始語法,show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
9541
	*/
9541
	*/
9542
	public static function getDataTableList($conf){
9542
	public static function getDataTableList($conf){
9543
	
9543
 
9544
		#初始化要回傳的內容
9544
		#初始化要回傳的內容
9545
		$result=array();
9545
		$result=array();
9546
 
9546
 
9547
		#取得當前執行的函數名稱
9547
		#取得當前執行的函數名稱
9548
		$result["function"]=__FUNCTION__;
9548
		$result["function"]=__FUNCTION__;
9549
 
9549
 
9550
		#如果 $conf 不為陣列
9550
		#如果 $conf 不為陣列
9551
		if(gettype($conf)!="array"){
9551
		if(gettype($conf)!="array"){
9552
			
9552
 
9553
			#設置執行失敗
9553
			#設置執行失敗
9554
			$result["status"]="false";
9554
			$result["status"]="false";
9555
			
9555
 
9556
			#設置執行錯誤訊息
9556
			#設置執行錯誤訊息
9557
			$result["error"][]="\$conf變數須為陣列形態";
9557
			$result["error"][]="\$conf變數須為陣列形態";
9558
 
9558
 
9559
			#如果傳入的參數為 null
9559
			#如果傳入的參數為 null
9560
			if($conf==null){
9560
			if($conf==null){
9561
				
9561
 
9562
				#設置執行錯誤訊息
9562
				#設置執行錯誤訊息
9563
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9563
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9564
				
9564
 
9565
				}#if end
9565
				}#if end
9566
 
9566
 
9567
			#回傳結果
9567
			#回傳結果
9568
			return $result;
9568
			return $result;
9569
			
9569
 
9570
			}#if end
9570
			}#if end
9571
	
9571
 
9572
		#函式說明:
9572
		#函式說明:
9573
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
9573
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
9574
		#回傳結果:
9574
		#回傳結果:
9575
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
9575
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
9576
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
9576
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
9577
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
9577
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
9578
		#必填參數:
9578
		#必填參數:
9579
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
9579
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
9580
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
9580
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
9581
		#可省略參數:
9581
		#可省略參數:
9582
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
9582
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
9583
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
9583
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
9584
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
9584
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
9585
		unset($conf["variableCheck"]);
9585
		unset($conf["variableCheck"]);
9586
 
9586
 
9587
		#如果檢查失敗
9587
		#如果檢查失敗
9588
		if($checkResult["status"]=="false"){
9588
		if($checkResult["status"]=="false"){
9589
			
9589
 
9590
			#設置錯誤訊息識別
9590
			#設置錯誤訊息識別
9591
			$result["status"]="fasle";
9591
			$result["status"]="fasle";
9592
			
9592
 
9593
			#設置錯誤訊息
9593
			#設置錯誤訊息
9594
			$result["error"]=$checkResult;
9594
			$result["error"]=$checkResult;
9595
			
9595
 
9596
			#回傳錯誤結果
9596
			#回傳錯誤結果
9597
			return $result;
9597
			return $result;
9598
			
9598
 
9599
			}#if end
9599
			}#if end
9600
 
9600
 
9601
		#如果檢查不通過
9601
		#如果檢查不通過
9602
		if($checkResult["passed"]=="false"){
9602
		if($checkResult["passed"]=="false"){
9603
			
9603
 
9604
			#設置錯誤訊息識別
9604
			#設置錯誤訊息識別
9605
			$result["status"]="fasle";
9605
			$result["status"]="fasle";
9606
			
9606
 
9607
			#設置錯誤訊息
9607
			#設置錯誤訊息
9608
			$result["error"]=$checkResult;
9608
			$result["error"]=$checkResult;
9609
			
9609
 
9610
			#回傳錯誤結果
9610
			#回傳錯誤結果
9611
			return $result;
9611
			return $result;
9612
			
9612
 
9613
			}#if end
9613
			}#if end
9614
			
9614
 
9615
		#要執行的 sql 語句
9615
		#要執行的 sql 語句
9616
		$sql="show tables FROM ".$conf["selectedDataBaseName"].";";
9616
		$sql="show tables FROM ".$conf["selectedDataBaseName"].";";
9617
 
9617
 
9618
		#函式說明:
9618
		#函式說明:
9619
		#執行mysql指令
9619
		#執行mysql指令
Line 9625... Line 9625...
9625
		#查詢號的解果,需要解析。
9625
		#查詢號的解果,需要解析。
9626
		#必填參數:
9626
		#必填參數:
9627
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
9627
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
9628
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
9628
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
9629
		$conf["db.execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
9629
		$conf["db.execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
9630
		#可省略參數: 
9630
		#可省略參數:
9631
		
9631
 
9632
		#如果 $conf["dbPassword"] 有設定
9632
		#如果 $conf["dbPassword"] 有設定
9633
		if(isset($conf["dbPassword"])){
9633
		if(isset($conf["dbPassword"])){
9634
			
9634
 
9635
			#$conf["db.execMysqlQuery"]["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9635
			#$conf["db.execMysqlQuery"]["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9636
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
9636
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
9637
		
9637
 
9638
			}#if end
9638
			}#if end
9639
		
9639
 
9640
		#如果 $conf["dbPort"] 有設定
9640
		#如果 $conf["dbPort"] 有設定
9641
		if(isset($conf["dbPort"])){
9641
		if(isset($conf["dbPort"])){
9642
		
9642
 
9643
			#設置 dbPort
9643
			#設置 dbPort
9644
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];
9644
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];
9645
		
9645
 
9646
			}#if end
9646
			}#if end
9647
		
9647
 
9648
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
9648
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
9649
		unset($conf["db.execMysqlQuery"]);
9649
		unset($conf["db.execMysqlQuery"]);
9650
 
9650
 
9651
		#如果執行sql語法失敗
9651
		#如果執行sql語法失敗
9652
		if($queryResult["status"]=="false"){
9652
		if($queryResult["status"]=="false"){
9653
			
9653
 
9654
			#設置執行不正常
9654
			#設置執行不正常
9655
			$result["status"]="false";
9655
			$result["status"]="false";
9656
			
9656
 
9657
			#設置錯誤訊息
9657
			#設置錯誤訊息
9658
			$result["error"]=$queryResult;
9658
			$result["error"]=$queryResult;
9659
			
9659
 
9660
			#回傳結果
9660
			#回傳結果
9661
			return $result;
9661
			return $result;
9662
			
9662
 
9663
			}#if end
9663
			}#if end
9664
 
9664
 
9665
		#將查詢的結果放進$queryResult裏面
9665
		#將查詢的結果放進$queryResult裏面
9666
		$queryResult=$queryResult["queryResource"];
9666
		$queryResult=$queryResult["queryResource"];
9667
 
9667
 
9668
		#debug
9668
		#debug
9669
		#var_dump($queryResult);
9669
		#var_dump($queryResult);
9670
	
9670
 
9671
		#設定 $times 的初始值
9671
		#設定 $times 的初始值
9672
		$times=0;
9672
		$times=0;
9673
 
9673
 
9674
		#初始化解析的內容儲存的地方
9674
		#初始化解析的內容儲存的地方
9675
		$fetchResult=array();
9675
		$fetchResult=array();
9676
 
9676
 
9677
		#逐筆解析內容
9677
		#逐筆解析內容
9678
		while ($row = mysqli_fetch_assoc($queryResult)) {
9678
		while ($row = mysqli_fetch_assoc($queryResult)) {
9679
		
9679
 
9680
			#將結果存進 $result[$i]		    	
9680
			#將結果存進 $result[$i]
9681
			$fetchResult[$times]= $row["Tables_in_".$conf["selectedDataBaseName"]];
9681
			$fetchResult[$times]= $row["Tables_in_".$conf["selectedDataBaseName"]];
9682
 
9682
 
9683
			#$times + 1 (計數用)
9683
			#$times + 1 (計數用)
9684
			$times++;
9684
			$times++;
9685
 
9685
 
9686
			#debug
9686
			#debug
9687
			#var_dump($row);
9687
			#var_dump($row);
9688
 
9688
 
9689
			}#while end
9689
			}#while end
9690
			
9690
 
9691
		#取得每筆資料內容(資料表的名稱)
9691
		#取得每筆資料內容(資料表的名稱)
9692
		$result["tableName"]=$fetchResult;
9692
		$result["tableName"]=$fetchResult;
9693
 
9693
 
9694
		#取得總共的資料筆數
9694
		#取得總共的資料筆數
9695
		$result["dataCounts"]=$times;
9695
		$result["dataCounts"]=$times;
Line 9697... Line 9697...
9697
		#設置執行成功的識別
9697
		#設置執行成功的識別
9698
		$result["status"]="true";
9698
		$result["status"]="true";
9699
 
9699
 
9700
		#回傳查詢的結果 $result
9700
		#回傳查詢的結果 $result
9701
		return $result;
9701
		return $result;
9702
		
9702
 
9703
		}#function getDataTableList end
9703
		}#function getDataTableList end
9704
 
9704
 
9705
	/*
9705
	/*
9706
	#函式說明:
9706
	#函式說明:
9707
	#取得資料表所有欄位的詳細資訊
9707
	#取得資料表所有欄位的詳細資訊
Line 9754... Line 9754...
9754
	#無.
9754
	#無.
9755
	#備註:
9755
	#備註:
9756
	#查詢的功能有點弱,目前用getTableColumnDetailInfo替代
9756
	#查詢的功能有點弱,目前用getTableColumnDetailInfo替代
9757
	*/
9757
	*/
9758
	public static function getDataTableColumn($conf){
9758
	public static function getDataTableColumn($conf){
9759
		
9759
 
9760
		return db::getTableColumnDetailInfo($conf);
9760
		return db::getTableColumnDetailInfo($conf);
9761
		
9761
 
9762
		}#function getDataTableColumn end
9762
		}#function getDataTableColumn end
9763
	
9763
 
9764
	/*
9764
	/*
9765
	#函式說明:
9765
	#函式說明:
9766
	#取得資料表內特定欄位的資訊
9766
	#取得資料表內特定欄位的資訊
9767
	#回傳的內容:
9767
	#回傳的內容:
9768
	#$result["status"],"true"代表執行成功;"false"代表執行失敗.
9768
	#$result["status"],"true"代表執行成功;"false"代表執行失敗.
Line 9800... Line 9800...
9800
	#無.
9800
	#無.
9801
	#備註:
9801
	#備註:
9802
	#無.
9802
	#無.
9803
	*/
9803
	*/
9804
	public static function getDataTableSpecificColumn(&$conf){
9804
	public static function getDataTableSpecificColumn(&$conf){
9805
		
9805
 
9806
		#初始化要回傳的內容
9806
		#初始化要回傳的內容
9807
		$result=array();
9807
		$result=array();
9808
 
9808
 
9809
		#取得當前執行的函數名稱
9809
		#取得當前執行的函數名稱
9810
		$result["function"]=__FUNCTION__;
9810
		$result["function"]=__FUNCTION__;
9811
 
9811
 
9812
		#如果 $conf 不為陣列
9812
		#如果 $conf 不為陣列
9813
		if(gettype($conf)!="array"){
9813
		if(gettype($conf)!="array"){
9814
			
9814
 
9815
			#設置執行失敗
9815
			#設置執行失敗
9816
			$result["status"]="false";
9816
			$result["status"]="false";
9817
			
9817
 
9818
			#設置執行錯誤訊息
9818
			#設置執行錯誤訊息
9819
			$result["error"][]="\$conf變數須為陣列形態";
9819
			$result["error"][]="\$conf變數須為陣列形態";
9820
 
9820
 
9821
			#如果傳入的參數為 null
9821
			#如果傳入的參數為 null
9822
			if($conf==null){
9822
			if($conf==null){
9823
				
9823
 
9824
				#設置執行錯誤訊息
9824
				#設置執行錯誤訊息
9825
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9825
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
9826
				
9826
 
9827
				}#if end
9827
				}#if end
9828
 
9828
 
9829
			#回傳結果
9829
			#回傳結果
9830
			return $result;
9830
			return $result;
9831
			
9831
 
9832
			}#if end
9832
			}#if end
9833
		
9833
 
9834
		#檢查參數
9834
		#檢查參數
9835
		#函式說明:
9835
		#函式說明:
9836
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
9836
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
9837
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
9837
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
9838
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
9838
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 9847... Line 9847...
9847
		#必填參數:
9847
		#必填參數:
9848
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
9848
		#$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
9849
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
9849
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
9850
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
9850
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
9851
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","dtName","columnName");
9851
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","dtName","columnName");
9852
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
9852
		#$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
9853
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
9853
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
9854
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
9854
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
9855
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
9855
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
9856
		#可省略參數:
9856
		#可省略參數:
9857
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
9857
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
9858
		#$conf["canBeEmptyString"]="false";
9858
		#$conf["canBeEmptyString"]="false";
9859
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
9859
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
9860
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
9860
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
9861
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
9861
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
9862
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
9862
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
9863
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
9863
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
9864
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
9864
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
9865
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
9865
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
9866
		#$conf["arrayCountEqualCheck"][]=array();
9866
		#$conf["arrayCountEqualCheck"][]=array();
9867
		#參考資料:
9867
		#參考資料:
9868
		#array_keys=>http://php.net/manual/en/function.array-keys.php
9868
		#array_keys=>http://php.net/manual/en/function.array-keys.php
9869
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
9869
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
9870
		unset($conf["variableCheck::checkArguments"]);	
9870
		unset($conf["variableCheck::checkArguments"]);
9871
		
9871
 
9872
		#如果檢查失敗 
9872
		#如果檢查失敗
9873
		if($checkResult["status"]=="false"){
9873
		if($checkResult["status"]=="false"){
9874
			
9874
 
9875
			#設置執行失敗
9875
			#設置執行失敗
9876
			$result["status"]="false";
9876
			$result["status"]="false";
9877
			
9877
 
9878
			#設置執行失敗訊息
9878
			#設置執行失敗訊息
9879
			$result["error"]=$checkResult;
9879
			$result["error"]=$checkResult;
9880
			
9880
 
9881
			#回傳結果
9881
			#回傳結果
9882
			return $result;
9882
			return $result;
9883
			
9883
 
9884
			}#if end
9884
			}#if end
9885
		
9885
 
9886
		#如果檢查沒有通過
9886
		#如果檢查沒有通過
9887
		if($checkResult["passed"]=="false"){
9887
		if($checkResult["passed"]=="false"){
9888
			
9888
 
9889
			#設置執行失敗
9889
			#設置執行失敗
9890
			$result["status"]="false";
9890
			$result["status"]="false";
9891
			
9891
 
9892
			#設置執行失敗訊息
9892
			#設置執行失敗訊息
9893
			$result["error"]=$checkResult;
9893
			$result["error"]=$checkResult;
9894
			
9894
 
9895
			#回傳結果
9895
			#回傳結果
9896
			return $result;
9896
			return $result;
9897
			
9897
 
9898
			}#if end
9898
			}#if end
9899
		
9899
 
9900
		#取得所有的欄位資訊
9900
		#取得所有的欄位資訊
9901
		#函式說明:
9901
		#函式說明:
9902
		#取得資料表所有欄位的詳細資訊
9902
		#取得資料表所有欄位的詳細資訊
9903
		#回傳的內容:
9903
		#回傳的內容:
9904
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
9904
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
Line 9935... Line 9935...
9935
		$conf["db::getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
9935
		$conf["db::getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
9936
		$conf["db::getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
9936
		$conf["db::getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
9937
		$conf["db::getTableColumnDetailInfo"]["selectedDataBase"]=$conf["dbName"];#連線到資料庫要選擇的資料庫
9937
		$conf["db::getTableColumnDetailInfo"]["selectedDataBase"]=$conf["dbName"];#連線到資料庫要選擇的資料庫
9938
		$conf["db::getTableColumnDetailInfo"]["selectedDataTable"]=$conf["dtName"];#連線到資料庫要檢視的資料表
9938
		$conf["db::getTableColumnDetailInfo"]["selectedDataTable"]=$conf["dtName"];#連線到資料庫要檢視的資料表
9939
		#可省略參數:
9939
		#可省略參數:
9940
		
9940
 
9941
		#如果有設定連線密碼
9941
		#如果有設定連線密碼
9942
		if(isset($conf["dbPassword"])){
9942
		if(isset($conf["dbPassword"])){
9943
			
9943
 
9944
			$conf["db::getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9944
			$conf["db::getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9945
			
9945
 
9946
			}#if end
9946
			}#if end
9947
			
9947
 
9948
		#如果有設定連線port
9948
		#如果有設定連線port
9949
		if(isset($conf["dbPort"])){
9949
		if(isset($conf["dbPort"])){
9950
			
9950
 
9951
			$conf["db::getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9951
			$conf["db::getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
9952
			
9952
 
9953
			}#if end
9953
			}#if end
9954
				
9954
 
9955
		$queryResult=db::getTableColumnDetailInfo($conf["db::getTableColumnDetailInfo"]);
9955
		$queryResult=db::getTableColumnDetailInfo($conf["db::getTableColumnDetailInfo"]);
9956
		unset($conf["db::getTableColumnDetailInfo"]);
9956
		unset($conf["db::getTableColumnDetailInfo"]);
9957
		
9957
 
9958
		#如果查詢失敗
9958
		#如果查詢失敗
9959
		if($queryResult["status"]=="false"){
9959
		if($queryResult["status"]=="false"){
9960
			
9960
 
9961
			#設置錯誤
9961
			#設置錯誤
9962
			$result["status"]="false";
9962
			$result["status"]="false";
9963
			
9963
 
9964
			#設置錯誤訊息
9964
			#設置錯誤訊息
9965
			$result["error"]=$queryResult;
9965
			$result["error"]=$queryResult;
9966
			
9966
 
9967
			#回傳結果
9967
			#回傳結果
9968
			return $result;
9968
			return $result;
9969
			
9969
 
9970
			}#if end
9970
			}#if end
9971
			
9971
 
9972
		#var_dump($queryResult);
9972
		#var_dump($queryResult);
9973
			
9973
 
9974
		#檢查是否有我們要的欄位存在
9974
		#檢查是否有我們要的欄位存在
9975
		#函式說明:
9975
		#函式說明:
9976
		#檢查一個數值是否與陣列裏面的元素相同
9976
		#檢查一個數值是否與陣列裏面的元素相同
9977
		#回傳結果::
9977
		#回傳結果::
9978
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
9978
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
Line 9984... Line 9984...
9984
		#必填參數:
9984
		#必填參數:
9985
		$conf["search"]["getEqualVar"]["conditionElement"]=$conf["columnName"];#條件元素,要等於的元素內容。
9985
		$conf["search"]["getEqualVar"]["conditionElement"]=$conf["columnName"];#條件元素,要等於的元素內容。
9986
		$conf["search"]["getEqualVar"]["compareElements"]=$queryResult["columnName"];#要比對的陣列變數內容。
9986
		$conf["search"]["getEqualVar"]["compareElements"]=$queryResult["columnName"];#要比對的陣列變數內容。
9987
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
9987
		$searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
9988
		unset($conf["search"]["getEqualVar"]);
9988
		unset($conf["search"]["getEqualVar"]);
9989
	
9989
 
9990
		#如果尋找失敗
9990
		#如果尋找失敗
9991
		if($searchResult["status"]=="false"){
9991
		if($searchResult["status"]=="false"){
9992
			
9992
 
9993
			#設置錯誤
9993
			#設置錯誤
9994
			$result["status"]="false";
9994
			$result["status"]="false";
9995
			
9995
 
9996
			#設置錯誤訊息
9996
			#設置錯誤訊息
9997
			$result["error"]=$searchResult;
9997
			$result["error"]=$searchResult;
9998
			
9998
 
9999
			#回傳結果
9999
			#回傳結果
10000
			return $result;
10000
			return $result;
10001
			
10001
 
10002
			}#if end
10002
			}#if end
10003
	
10003
 
10004
		#如果沒有找到符合的欄位明稱
10004
		#如果沒有找到符合的欄位明稱
10005
		if($searchResult["founded"]=="false"){
10005
		if($searchResult["founded"]=="false"){
10006
			
10006
 
10007
			#設置錯誤
10007
			#設置錯誤
10008
			$result["status"]="false";
10008
			$result["status"]="false";
10009
			
10009
 
10010
			#設置錯誤訊息
10010
			#設置錯誤訊息
10011
			$result["error"]="沒有找到指定的欄位!";
10011
			$result["error"]="沒有找到指定的欄位!";
10012
			
10012
 
10013
			#回傳結果
10013
			#回傳結果
10014
			return $result;
10014
			return $result;
10015
			
10015
 
10016
			}#if end
10016
			}#if end
10017
	
10017
 
10018
		#取得欄位資訊的key
10018
		#取得欄位資訊的key
10019
		$equalVarKey=$searchResult["equalVarName"];
10019
		$equalVarKey=$searchResult["equalVarName"];
10020
		
10020
 
10021
		#取得欄位的名稱
10021
		#取得欄位的名稱
10022
		$result["columnInfo"]["name"]=$queryResult["columnName"][$equalVarKey];
10022
		$result["columnInfo"]["name"]=$queryResult["columnName"][$equalVarKey];
10023
		
10023
 
10024
		#取欄位的儲存型態與長度限制
10024
		#取欄位的儲存型態與長度限制
10025
		$result["columnInfo"]["type"]=$queryResult["columnVarType"][$equalVarKey];
10025
		$result["columnInfo"]["type"]=$queryResult["columnVarType"][$equalVarKey];
10026
		
10026
 
10027
		#檢查欄位儲存型態是否含有「(」與「)」
10027
		#檢查欄位儲存型態是否含有「(」與「)」
10028
		#函式說明:
10028
		#函式說明:
10029
		#檢查一個字串裡面是否有多個關鍵字
10029
		#檢查一個字串裡面是否有多個關鍵字
10030
		#回傳結果::
10030
		#回傳結果::
10031
		#$result["status"],"true"代表執行成功,"false"代表執行失敗。
10031
		#$result["status"],"true"代表執行成功,"false"代表執行失敗。
Line 10036... Line 10036...
10036
		$conf["search"]["findManyKeyWords"]["string"]=$result["columnInfo"]["type"];#要被搜尋的字串內容
10036
		$conf["search"]["findManyKeyWords"]["string"]=$result["columnInfo"]["type"];#要被搜尋的字串內容
10037
		#可省略參數:
10037
		#可省略參數:
10038
		#$conf["search"]["findManyKeyWords"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
10038
		#$conf["search"]["findManyKeyWords"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
10039
		$searchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
10039
		$searchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
10040
		unset($conf["search"]["findManyKeyWords"]);
10040
		unset($conf["search"]["findManyKeyWords"]);
10041
		
10041
 
10042
		#如果 檢查欄位儲存型態是否含有「(」與「)」 失敗
10042
		#如果 檢查欄位儲存型態是否含有「(」與「)」 失敗
10043
		if($searchResult["status"]=="false"){
10043
		if($searchResult["status"]=="false"){
10044
			
10044
 
10045
			#設置錯誤
10045
			#設置錯誤
10046
			$result["status"]="false";
10046
			$result["status"]="false";
10047
			
10047
 
10048
			#設置錯誤訊息
10048
			#設置錯誤訊息
10049
			$result["error"]=$searchResult;
10049
			$result["error"]=$searchResult;
10050
			
10050
 
10051
			#回傳結果
10051
			#回傳結果
10052
			return $result;
10052
			return $result;
10053
			
10053
 
10054
			}#if end
10054
			}#if end
10055
		
10055
 
10056
		#如果欄位儲存型態含有「(」與「)」,則將其從「(」開始分割
10056
		#如果欄位儲存型態含有「(」與「)」,則將其從「(」開始分割
10057
		if($searchResult["founded"]=="true"){
10057
		if($searchResult["founded"]=="true"){
10058
			
10058
 
10059
			#函式說明:
10059
			#函式說明:
10060
			#將固定格式的字串分開,並回傳分開的結果。
10060
			#將固定格式的字串分開,並回傳分開的結果。
10061
			#回傳的參數:
10061
			#回傳的參數:
10062
			#$result["oriStr"],要分割的原始字串內容
10062
			#$result["oriStr"],要分割的原始字串內容
10063
			#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
10063
			#$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
Line 10065... Line 10065...
10065
			#必填參數:
10065
			#必填參數:
10066
			$conf["stringProcess"]["spiltString"]["stringIn"]=$result["columnInfo"]["type"];#要處理的字串。
10066
			$conf["stringProcess"]["spiltString"]["stringIn"]=$result["columnInfo"]["type"];#要處理的字串。
10067
			$conf["stringProcess"]["spiltString"]["spiltSymbol"]="(";#爲以哪個符號作爲分割
10067
			$conf["stringProcess"]["spiltString"]["spiltSymbol"]="(";#爲以哪個符號作爲分割
10068
			$spiltedStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
10068
			$spiltedStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
10069
			unset($conf["stringProcess"]["spiltString"]);
10069
			unset($conf["stringProcess"]["spiltString"]);
10070
			
10070
 
10071
			#如果分割字串失敗
10071
			#如果分割字串失敗
10072
			if($spiltedStr["status"]=="false"){
10072
			if($spiltedStr["status"]=="false"){
10073
				
10073
 
10074
				#設置錯誤
10074
				#設置錯誤
10075
				$result["status"]="false";
10075
				$result["status"]="false";
10076
				
10076
 
10077
				#設置錯誤訊息
10077
				#設置錯誤訊息
10078
				$result["error"]=$spiltedStr;
10078
				$result["error"]=$spiltedStr;
10079
				
10079
 
10080
				#回傳結果
10080
				#回傳結果
10081
				return $result;
10081
				return $result;
10082
								
10082
 
10083
				}#if end
10083
				}#if end
10084
			
10084
 
10085
			#取得欄位型態
10085
			#取得欄位型態
10086
			$result["columnInfo"]["type"]=$spiltedStr["dataArray"][0];
10086
			$result["columnInfo"]["type"]=$spiltedStr["dataArray"][0];
10087
			
10087
 
10088
			}#if end 
10088
			}#if end
10089
		
10089
 
10090
		#取得欄位長度限制
10090
		#取得欄位長度限制
10091
		$result["columnInfo"]["length"]=$queryResult["columnVarLengthLimit"][$conf["columnName"]];
10091
		$result["columnInfo"]["length"]=$queryResult["columnVarLengthLimit"][$conf["columnName"]];
10092
		
10092
 
10093
		#取得欄位是否可以為null
10093
		#取得欄位是否可以為null
10094
		$result["columnInfo"]["null"]=$queryResult["columnNotNull"][$conf["columnName"]];
10094
		$result["columnInfo"]["null"]=$queryResult["columnNotNull"][$conf["columnName"]];
10095
		
10095
 
10096
		#如果該欄位有key的名稱
10096
		#如果該欄位有key的名稱
10097
		if(isset($queryResult["key"][$conf["columnName"]])){
10097
		if(isset($queryResult["key"][$conf["columnName"]])){
10098
			
10098
 
10099
			#該欄位為index key
10099
			#該欄位為index key
10100
			$result["columnInfo"]["keyType"]="index key";
10100
			$result["columnInfo"]["keyType"]="index key";
10101
			
10101
 
10102
			#取得欄位的鍵名稱
10102
			#取得欄位的鍵名稱
10103
			$result["columnInfo"]["key"]=$queryResult["keyConstraintName"];
10103
			$result["columnInfo"]["key"]=$queryResult["keyConstraintName"];
10104
			
10104
 
10105
			}#if end
10105
			}#if end
10106
		
10106
 
10107
		#如果該欄位是foreignKey
10107
		#如果該欄位是foreignKey
10108
		if(isset($queryResult["foreignKey"]["constraintName"][$conf["columnName"]])){
10108
		if(isset($queryResult["foreignKey"]["constraintName"][$conf["columnName"]])){
10109
			
10109
 
10110
			#該欄位為foreign key
10110
			#該欄位為foreign key
10111
			$result["columnInfo"]["keyType"]="foreign key";
10111
			$result["columnInfo"]["keyType"]="foreign key";
10112
			
10112
 
10113
			#取得外鍵的名稱
10113
			#取得外鍵的名稱
10114
			$result["columnInfo"]["foreignKeyConstraintName"]=$queryResult["foreignKey"]["constraintName"][$conf["columnName"]];
10114
			$result["columnInfo"]["foreignKeyConstraintName"]=$queryResult["foreignKey"]["constraintName"][$conf["columnName"]];
10115
			
10115
 
10116
			#取得外鍵參考的資料表
10116
			#取得外鍵參考的資料表
10117
			$result["columnInfo"]["referencesTable"]=$queryResult["foreignKey"]["referencesTable"][$conf["columnName"]];
10117
			$result["columnInfo"]["referencesTable"]=$queryResult["foreignKey"]["referencesTable"][$conf["columnName"]];
10118
			
10118
 
10119
			#取得外按鍵參考的欄位
10119
			#取得外按鍵參考的欄位
10120
			$result["columnInfo"]["referencesColumn"]=$queryResult["foreignKey"]["referencesColumn"][$conf["columnName"]];
10120
			$result["columnInfo"]["referencesColumn"]=$queryResult["foreignKey"]["referencesColumn"][$conf["columnName"]];
10121
			
10121
 
10122
			#當參考的欄位更新時,要怎麼因應
10122
			#當參考的欄位更新時,要怎麼因應
10123
			$result["columnInfo"]["onUpdateAction"]=$queryResult["foreignKey"]["onUpdateAction"][$conf["columnName"]];
10123
			$result["columnInfo"]["onUpdateAction"]=$queryResult["foreignKey"]["onUpdateAction"][$conf["columnName"]];
10124
			
10124
 
10125
			#當參考的欄位資料消失時,要怎麼因應
10125
			#當參考的欄位資料消失時,要怎麼因應
10126
			$result["columnInfo"]["onDeleteAction"]=$queryResult["foreignKey"]["onDeleteAction"][$conf["columnName"]];
10126
			$result["columnInfo"]["onDeleteAction"]=$queryResult["foreignKey"]["onDeleteAction"][$conf["columnName"]];
10127
			
10127
 
10128
			}#if enb
10128
			}#if enb
10129
		
10129
 
10130
		#取得欄位的預設內容
10130
		#取得欄位的預設內容
10131
		$result["columnInfo"]["default"]=$queryResult["columnDefault"][$conf["columnName"]];
10131
		$result["columnInfo"]["default"]=$queryResult["columnDefault"][$conf["columnName"]];
10132
		
10132
 
10133
		#取得欄位的字元集
10133
		#取得欄位的字元集
10134
		$result["columnInfo"]["columnCharacterSet"]=$queryResult["columnCharacterSet"][$conf["columnName"]];
10134
		$result["columnInfo"]["columnCharacterSet"]=$queryResult["columnCharacterSet"][$conf["columnName"]];
10135
		
10135
 
10136
		#取得欄位的校對編碼設定
10136
		#取得欄位的校對編碼設定
10137
		$result["columnInfo"]["columnCollate"]=$queryResult["columnCollate"][$conf["columnName"]];
10137
		$result["columnInfo"]["columnCollate"]=$queryResult["columnCollate"][$conf["columnName"]];
10138
		
10138
 
10139
		#設置執行成功
10139
		#設置執行成功
10140
		$result["status"]="true";
10140
		$result["status"]="true";
10141
		
10141
 
10142
		#回傳結果
10142
		#回傳結果
10143
		return $result;
10143
		return $result;
10144
		
10144
 
10145
		}#function getDataTableSpecificColumn end
10145
		}#function getDataTableSpecificColumn end
10146
 
10146
 
10147
	/*
10147
	/*
10148
	#函式說明:
10148
	#函式說明:
10149
	#檢查資料庫裏的資料表有無指定條件的資料
10149
	#檢查資料庫裏的資料表有無指定條件的資料
10150
	#回傳結果::
10150
	#回傳結果::
10151
	#$result["status"],執行是否成功,成功為"true",失敗為"false"。
10151
	#$result["status"],執行是否成功,成功為"true",失敗為"false"。
10152
	#$result["error"],錯誤訊息	
10152
	#$result["error"],錯誤訊息
10153
	#$result["founded"],是否找到資料,"true"代表有符合的資料;"false"代表沒有符合的資料.		
10153
	#$result["founded"],是否找到資料,"true"代表有符合的資料;"false"代表沒有符合的資料.
10154
	#$result["sql"],執行的sql字串.
10154
	#$result["sql"],執行的sql字串.
10155
	#$result["function"],當前執行的函數名稱.
10155
	#$result["function"],當前執行的函數名稱.
10156
	#必填參數:
10156
	#必填參數:
10157
	#$conf["dbAddress"],字串,爲mysql-Server的位置
10157
	#$conf["dbAddress"],字串,爲mysql-Server的位置
10158
	$conf["dbAddress"]="";
10158
	$conf["dbAddress"]="";
10159
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
10159
	#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
10160
	$conf["dbAccount"]="";	
10160
	$conf["dbAccount"]="";
10161
	#$conf["selectedDataTableName"],字串,欲選擇的資料表名稱
10161
	#$conf["selectedDataTableName"],字串,欲選擇的資料表名稱
10162
	$conf["selectedDataTableName"]="";
10162
	$conf["selectedDataTableName"]="";
10163
	#可省略參數:
10163
	#可省略參數:
10164
	#$conf["selectedDataBaseName"],字串,爲指定的資料庫名稱,欲選擇的資料庫名稱
10164
	#$conf["selectedDataBaseName"],字串,爲指定的資料庫名稱,欲選擇的資料庫名稱
10165
	#$conf["selectedDataBaseName"]="";
10165
	#$conf["selectedDataBaseName"]="";
Line 10175... Line 10175...
10175
	#無.
10175
	#無.
10176
	#備註:
10176
	#備註:
10177
	#無.
10177
	#無.
10178
	*/
10178
	*/
10179
	public static function checkDataExists($conf){
10179
	public static function checkDataExists($conf){
10180
	
10180
 
10181
		#初始化要回傳的內容
10181
		#初始化要回傳的內容
10182
		$result=array();
10182
		$result=array();
10183
 
10183
 
10184
		#取得當前執行的函數名稱
10184
		#取得當前執行的函數名稱
10185
		$result["function"]=__FUNCTION__;
10185
		$result["function"]=__FUNCTION__;
10186
 
10186
 
10187
		#如果 $conf 不為陣列
10187
		#如果 $conf 不為陣列
10188
		if(gettype($conf)!="array"){
10188
		if(gettype($conf)!="array"){
10189
			
10189
 
10190
			#設置執行失敗
10190
			#設置執行失敗
10191
			$result["status"]="false";
10191
			$result["status"]="false";
10192
			
10192
 
10193
			#設置執行錯誤訊息
10193
			#設置執行錯誤訊息
10194
			$result["error"][]="\$conf變數須為陣列形態";
10194
			$result["error"][]="\$conf變數須為陣列形態";
10195
 
10195
 
10196
			#如果傳入的參數為 null
10196
			#如果傳入的參數為 null
10197
			if($conf==null){
10197
			if($conf==null){
10198
				
10198
 
10199
				#設置執行錯誤訊息
10199
				#設置執行錯誤訊息
10200
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10200
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10201
				
10201
 
10202
				}#if end
10202
				}#if end
10203
 
10203
 
10204
			#回傳結果
10204
			#回傳結果
10205
			return $result;
10205
			return $result;
10206
			
10206
 
10207
			}#if end
10207
			}#if end
10208
		
10208
 
10209
		#函式說明:
10209
		#函式說明:
10210
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
10210
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容.
10211
		#回傳結果:
10211
		#回傳結果:
10212
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
10212
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
10213
		#$result["error"],執行不正常結束的錯訊息陣列.
10213
		#$result["error"],執行不正常結束的錯訊息陣列.
Line 10258... Line 10258...
10258
		#array_keys=>http://php.net/manual/en/function.array-keys.php
10258
		#array_keys=>http://php.net/manual/en/function.array-keys.php
10259
		#備註:
10259
		#備註:
10260
		#無.
10260
		#無.
10261
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
10261
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
10262
		unset($conf["variableCheck::checkArguments"]);
10262
		unset($conf["variableCheck::checkArguments"]);
10263
		
10263
 
10264
		#如果檢查失敗
10264
		#如果檢查失敗
10265
		if($checkResult["status"]=="false"){
10265
		if($checkResult["status"]=="false"){
10266
			
10266
 
10267
			#設置錯誤識別
10267
			#設置錯誤識別
10268
			$result["status"]="false";
10268
			$result["status"]="false";
10269
			
10269
 
10270
			#設置錯誤訊息
10270
			#設置錯誤訊息
10271
			$result["error"]=$checkResult;
10271
			$result["error"]=$checkResult;
10272
			
10272
 
10273
			#回傳結果
10273
			#回傳結果
10274
			return $result;
10274
			return $result;
10275
			
10275
 
10276
			}#if end
10276
			}#if end
10277
		
10277
 
10278
		#如果檢查沒有通過
10278
		#如果檢查沒有通過
10279
		if($checkResult["passed"]=="false"){
10279
		if($checkResult["passed"]=="false"){
10280
			
10280
 
10281
			#設置錯誤識別
10281
			#設置錯誤識別
10282
			$result["status"]="false";
10282
			$result["status"]="false";
10283
			
10283
 
10284
			#設置錯誤訊息
10284
			#設置錯誤訊息
10285
			$result["error"]=$checkResult;
10285
			$result["error"]=$checkResult;
10286
			
10286
 
10287
			#回傳結果
10287
			#回傳結果
10288
			return $result;
10288
			return $result;
10289
			
10289
 
10290
			}#if end
10290
			}#if end
10291
 
10291
 
10292
		#如果 $conf["conditionTargetName"] 有設定
10292
		#如果 $conf["conditionTargetName"] 有設定
10293
		if(isset($conf["conditionTargetName"])){
10293
		if(isset($conf["conditionTargetName"])){
10294
 
10294
 
10295
			#如果其形態不爲 array
10295
			#如果其形態不爲 array
10296
			if(gettype($conf["conditionTargetName"])!="array"){
10296
			if(gettype($conf["conditionTargetName"])!="array"){
10297
 
10297
 
10298
				#設置錯誤識別
10298
				#設置錯誤識別
10299
				$result["status"]="false";
10299
				$result["status"]="false";
10300
				
10300
 
10301
				#設置錯誤訊息
10301
				#設置錯誤訊息
10302
				$result["error"]="\$conf[\"conditionTargetName\"]須爲陣列值";
10302
				$result["error"]="\$conf[\"conditionTargetName\"]須爲陣列值";
10303
				
10303
 
10304
				#回傳結果
10304
				#回傳結果
10305
				return $result;
10305
				return $result;
10306
 
10306
 
10307
				}#if end
10307
				}#if end
10308
 
10308
 
Line 10314... Line 10314...
10314
			#如果其形態不爲 array
10314
			#如果其形態不爲 array
10315
			if(gettype($conf["conditionTargetValue"])!="array"){
10315
			if(gettype($conf["conditionTargetValue"])!="array"){
10316
 
10316
 
10317
				#設置錯誤識別
10317
				#設置錯誤識別
10318
				$result["status"]="false";
10318
				$result["status"]="false";
10319
				
10319
 
10320
				#設置錯誤訊息
10320
				#設置錯誤訊息
10321
				$result["error"]="\$conf[\"conditionTargetValue\"]須爲陣列值";
10321
				$result["error"]="\$conf[\"conditionTargetValue\"]須爲陣列值";
10322
				
10322
 
10323
				#回傳結果
10323
				#回傳結果
10324
				return $result;
10324
				return $result;
10325
 
10325
 
10326
				}#if end
10326
				}#if end
10327
 
10327
 
Line 10342... Line 10342...
10342
		$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
10342
		$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
10343
		$conf["db"]["fastGetDbData"]["dbName"]=$conf["selectedDataBaseName"];#爲要存取的資料庫名稱
10343
		$conf["db"]["fastGetDbData"]["dbName"]=$conf["selectedDataBaseName"];#爲要存取的資料庫名稱
10344
		$conf["db"]["fastGetDbData"]["tableName"]=$conf["selectedDataTableName"];#爲要存取的資料表名稱
10344
		$conf["db"]["fastGetDbData"]["tableName"]=$conf["selectedDataTableName"];#爲要存取的資料表名稱
10345
		$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["conditionTargetName"];#你想要的欄位!
10345
		$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["conditionTargetName"];#你想要的欄位!
10346
		#可省略參數:
10346
		#可省略參數:
10347
		
10347
 
10348
		#如果 $conf["dbPassword"] 有設置
10348
		#如果 $conf["dbPassword"] 有設置
10349
		if(isset($conf["dbPassword"])){
10349
		if(isset($conf["dbPassword"])){
10350
			
10350
 
10351
			$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
10351
			$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
10352
			
10352
 
10353
			}#if end
10353
			}#if end
10354
			
10354
 
10355
		#如果 $conf["dbPort"] 有設置
10355
		#如果 $conf["dbPort"] 有設置
10356
		if(isset($conf["dbPort"])){
10356
		if(isset($conf["dbPort"])){
10357
			
10357
 
10358
			$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
10358
			$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
10359
			
10359
 
10360
			}#if end
10360
			}#if end
10361
					
10361
 
10362
		$conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["conditionTargetName"];#用於判斷語句的欄位項目陣列。
10362
		$conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["conditionTargetName"];#用於判斷語句的欄位項目陣列。
10363
		$conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["conditionTargetValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
10363
		$conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["conditionTargetValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
10364
		#$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
10364
		#$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
10365
		#$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
10365
		#$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
10366
		#$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
10366
		#$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
Line 10372... Line 10372...
10372
		$dataResult=db::fastGetDbData($conf["db"]["fastGetDbData"]);
10372
		$dataResult=db::fastGetDbData($conf["db"]["fastGetDbData"]);
10373
		unset($conf["db"]["fastGetDbData"]);
10373
		unset($conf["db"]["fastGetDbData"]);
10374
 
10374
 
10375
		#如果查詢資料失敗
10375
		#如果查詢資料失敗
10376
		if($dataResult["status"]=="false"){
10376
		if($dataResult["status"]=="false"){
10377
			
10377
 
10378
			#設置錯誤識別
10378
			#設置錯誤識別
10379
			$result["status"]="false";
10379
			$result["status"]="false";
10380
			
10380
 
10381
			#設置錯誤訊息
10381
			#設置錯誤訊息
10382
			$result["error"]=$dataResult;
10382
			$result["error"]=$dataResult;
10383
			
10383
 
10384
			#回傳結果
10384
			#回傳結果
10385
			return $result;
10385
			return $result;
10386
			
10386
 
10387
			}#if end
10387
			}#if end
10388
 
10388
 
10389
		#取得執行的sql字串
10389
		#取得執行的sql字串
10390
		$result["sql"]=$dataResult["sql"];
10390
		$result["sql"]=$dataResult["sql"];
10391
 
10391
 
10392
		#如果 $dataResult["status"] 等於"false"
10392
		#如果 $dataResult["status"] 等於"false"
10393
		if($dataResult["status"]=="false"){
10393
		if($dataResult["status"]=="false"){
10394
			
10394
 
10395
			#設置錯誤識別
10395
			#設置錯誤識別
10396
			$result["status"]="false";
10396
			$result["status"]="false";
10397
			
10397
 
10398
			#設置錯誤訊息
10398
			#設置錯誤訊息
10399
			$result["error"]=$dataResult;
10399
			$result["error"]=$dataResult;
10400
			
10400
 
10401
			#回傳結果
10401
			#回傳結果
10402
			return $result;
10402
			return $result;
10403
			
10403
 
10404
			}#if end
10404
			}#if end
10405
			
10405
 
10406
		#如果$dataResult["dataCount"]沒設定,就表示沒找到相符的資料
10406
		#如果$dataResult["dataCount"]沒設定,就表示沒找到相符的資料
10407
		if(!isset($dataResult["dataCount"])){
10407
		if(!isset($dataResult["dataCount"])){
10408
			
10408
 
10409
			#設置錯誤識別
10409
			#設置錯誤識別
10410
			$result["status"]="true";
10410
			$result["status"]="true";
10411
			
10411
 
10412
			#設置沒有找到符合資料
10412
			#設置沒有找到符合資料
10413
			$result["founded"]="false";
10413
			$result["founded"]="false";
10414
			
10414
 
10415
			#回傳結果
10415
			#回傳結果
10416
			return $result;
10416
			return $result;
10417
			
10417
 
10418
			}#if end
10418
			}#if end
10419
			
10419
 
10420
		#如果符合的資料等於0
10420
		#如果符合的資料等於0
10421
		if($dataResult["dataCount"]==0){
10421
		if($dataResult["dataCount"]==0){
10422
			
10422
 
10423
			#設置錯誤識別
10423
			#設置錯誤識別
10424
			$result["status"]="true";
10424
			$result["status"]="true";
10425
			
10425
 
10426
			#設置沒有找到符合資料
10426
			#設置沒有找到符合資料
10427
			$result["founded"]="false";
10427
			$result["founded"]="false";
10428
			
10428
 
10429
			#回傳結果
10429
			#回傳結果
10430
			return $result;
10430
			return $result;
10431
			
10431
 
10432
			}#if end
10432
			}#if end
10433
 
10433
 
10434
		#執行到這邊代表執行成功
10434
		#執行到這邊代表執行成功
10435
		$result["status"]="true";
10435
		$result["status"]="true";
10436
 
10436
 
Line 10461... Line 10461...
10461
	#$conf["selectedDataBaseName"],字串,爲指定的資料庫名稱
10461
	#$conf["selectedDataBaseName"],字串,爲指定的資料庫名稱
10462
	$conf["selectedDataBaseName"]="";
10462
	$conf["selectedDataBaseName"]="";
10463
	#$conf["selectedDataTableName"],字串,為要檢查是否存在的資料表名稱
10463
	#$conf["selectedDataTableName"],字串,為要檢查是否存在的資料表名稱
10464
	$conf["selectedDataTableName"]="";
10464
	$conf["selectedDataTableName"]="";
10465
	#可省略參數
10465
	#可省略參數
10466
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼 
10466
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
10467
	#$conf["dbPassword"]=$dbPassword;
10467
	#$conf["dbPassword"]=$dbPassword;
10468
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
10468
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
10469
	#$conf["dbPort"]="";
10469
	#$conf["dbPort"]="";
10470
	#參考資料:
10470
	#參考資料:
10471
	#無.
10471
	#無.
10472
	#備註:
10472
	#備註:
10473
	#無.
10473
	#無.
10474
	*/
10474
	*/
10475
	public static function checkDataTableExists($conf){
10475
	public static function checkDataTableExists($conf){
10476
		
10476
 
10477
		#初始化要回傳的變數
10477
		#初始化要回傳的變數
10478
		$result=array();
10478
		$result=array();
10479
		
10479
 
10480
		#取得當前執行的函數名稱
10480
		#取得當前執行的函數名稱
10481
		$result["function"]=__FUNCTION__;
10481
		$result["function"]=__FUNCTION__;
10482
		
10482
 
10483
		#如果 $conf 不為陣列
10483
		#如果 $conf 不為陣列
10484
		if(gettype($conf)!="array"){
10484
		if(gettype($conf)!="array"){
10485
			
10485
 
10486
			#設置執行失敗
10486
			#設置執行失敗
10487
			$result["status"]="false";
10487
			$result["status"]="false";
10488
			
10488
 
10489
			#設置執行錯誤訊息
10489
			#設置執行錯誤訊息
10490
			$result["error"][]="\$conf變數須為陣列形態";
10490
			$result["error"][]="\$conf變數須為陣列形態";
10491
 
10491
 
10492
			#如果傳入的參數為 null
10492
			#如果傳入的參數為 null
10493
			if($conf==null){
10493
			if($conf==null){
10494
				
10494
 
10495
				#設置執行錯誤訊息
10495
				#設置執行錯誤訊息
10496
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10496
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10497
				
10497
 
10498
				}#if end
10498
				}#if end
10499
 
10499
 
10500
			#回傳結果
10500
			#回傳結果
10501
			return $result;
10501
			return $result;
10502
			
10502
 
10503
			}#if end
10503
			}#if end
10504
	
10504
 
10505
		#取得參數
10505
		#取得參數
10506
		$result["argu"]=$conf;
10506
		$result["argu"]=$conf;
10507
		
10507
 
10508
		#函式說明:
10508
		#函式說明:
10509
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
10509
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
10510
		#回傳結果:
10510
		#回傳結果:
10511
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
10511
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
10512
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
10512
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
10513
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
10513
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
10514
		#必填參數:
10514
		#必填參數:
10515
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
10515
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
10516
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
10516
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
10517
		#可省略參數:
10517
		#可省略參數:
10518
		$conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
10518
		$conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
10519
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
10519
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
10520
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
10520
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
10521
		unset($conf["variableCheck"]["isexistMuti"]);
10521
		unset($conf["variableCheck"]["isexistMuti"]);
10522
		
10522
 
10523
		#var_dump($checkResult);
10523
		#var_dump($checkResult);
10524
		
10524
 
10525
		#如果檢查不通過
10525
		#如果檢查不通過
10526
		if($checkResult["passed"]=="false"){
10526
		if($checkResult["passed"]=="false"){
10527
			
10527
 
10528
			#設置執行錯誤的識別
10528
			#設置執行錯誤的識別
10529
			$result["status"]="false";
10529
			$result["status"]="false";
10530
			
10530
 
10531
			#設置錯誤訊息
10531
			#設置錯誤訊息
10532
			$result["error"]=$checkResult;
10532
			$result["error"]=$checkResult;
10533
			
10533
 
10534
			#回傳結果
10534
			#回傳結果
10535
			return $result;
10535
			return $result;
10536
							
10536
 
10537
			}#if end
10537
			}#if end
10538
			
10538
 
10539
		#查詢特定資料庫裡的資料表列表,會回傳查詢的結果
10539
		#查詢特定資料庫裡的資料表列表,會回傳查詢的結果
10540
		#$result["status"],若成功則爲0,失敗則爲1。
10540
		#$result["status"],若成功則爲0,失敗則爲1。
10541
		#$result["error"],錯誤訊息陣列.
10541
		#$result["error"],錯誤訊息陣列.
10542
		#$result["tableName"] 爲查詢的資料庫名稱陣列,
10542
		#$result["tableName"] 爲查詢的資料庫名稱陣列,
10543
			#第一筆資料庫名稱爲$result["tableName"][0],
10543
			#第一筆資料庫名稱爲$result["tableName"][0],
Line 10547... Line 10547...
10547
		#必填參數:
10547
		#必填參數:
10548
		$conf["db"]["getDataTableList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
10548
		$conf["db"]["getDataTableList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
10549
		$conf["db"]["getDataTableList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
10549
		$conf["db"]["getDataTableList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
10550
		$conf["db"]["getDataTableList"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲指定的資料庫名稱
10550
		$conf["db"]["getDataTableList"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲指定的資料庫名稱
10551
		#可省略參數:
10551
		#可省略參數:
10552
		
10552
 
10553
		#如果 $conf["dbPassword"] 有設定
10553
		#如果 $conf["dbPassword"] 有設定
10554
		if(isset($conf["dbPassword"])){
10554
		if(isset($conf["dbPassword"])){
10555
			
10555
 
10556
			#設定連線時要用的密碼
10556
			#設定連線時要用的密碼
10557
			$conf["db"]["getDataTableList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
10557
			$conf["db"]["getDataTableList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
10558
			
10558
 
10559
			}#if end
10559
			}#if end
10560
				
10560
 
10561
		#如果 $conf["dbPort"] 有設定
10561
		#如果 $conf["dbPort"] 有設定
10562
		if(isset($conf["dbPort"])){
10562
		if(isset($conf["dbPort"])){
10563
			
10563
 
10564
			#設定連線時要用的密碼
10564
			#設定連線時要用的密碼
10565
			$conf["db"]["getDataTableList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
10565
			$conf["db"]["getDataTableList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
10566
			
10566
 
10567
			}#if end		
10567
			}#if end
10568
					
10568
 
10569
		#原始語法:
10569
		#原始語法:
10570
		#show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
10570
		#show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
10571
		$dataTableList=db::getDataTableList($conf["db"]["getDataTableList"]);
10571
		$dataTableList=db::getDataTableList($conf["db"]["getDataTableList"]);
10572
		unset($conf["db"]["getDataTableList"]);
10572
		unset($conf["db"]["getDataTableList"]);
10573
				
10573
 
10574
		#如果調閱資料表清單出錯
10574
		#如果調閱資料表清單出錯
10575
		if($dataTableList["status"]=="false"){
10575
		if($dataTableList["status"]=="false"){
10576
			
10576
 
10577
			#設置錯誤識別
10577
			#設置錯誤識別
10578
			$result["status"]="false";
10578
			$result["status"]="false";
10579
			
10579
 
10580
			#設置錯誤訊息
10580
			#設置錯誤訊息
10581
			$result["error"]=$dataTableList;
10581
			$result["error"]=$dataTableList;
10582
			
10582
 
10583
			#回傳結果
10583
			#回傳結果
10584
			return $result;
10584
			return $result;
10585
			
10585
 
10586
			}#if end
10586
			}#if end
10587
		
10587
 
10588
		#如果裡面沒有任何1個資料表
10588
		#如果裡面沒有任何1個資料表
10589
		if($dataTableList["dataCounts"]==0){
10589
		if($dataTableList["dataCounts"]==0){
10590
			
10590
 
10591
			#設置執行成功的識別
10591
			#設置執行成功的識別
10592
			$result["status"]="true";
10592
			$result["status"]="true";
10593
			
10593
 
10594
			#設置有找到相同的
10594
			#設置有找到相同的
10595
			$result["founded"]="false";
10595
			$result["founded"]="false";
10596
			
10596
 
10597
			#回傳結果
10597
			#回傳結果
10598
			return $result;
10598
			return $result;
10599
			
10599
 
10600
			}#if end
10600
			}#if end
10601
		
10601
 
10602
		#函式說明:
10602
		#函式說明:
10603
		#檢查一個數值是否與陣列裏面的元素相同
10603
		#檢查一個數值是否與陣列裏面的元素相同
10604
		#回傳結果::
10604
		#回傳結果::
10605
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
10605
		#$result["status"],"true"表示執行正確,"false"表示執行錯誤.
10606
		#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
10606
		#$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
Line 10615... Line 10615...
10615
		$checkResult=search::getEqualVar($conf["search"]["getEqualVar"]);
10615
		$checkResult=search::getEqualVar($conf["search"]["getEqualVar"]);
10616
		unset($conf["search"]["getEqualVar"]);
10616
		unset($conf["search"]["getEqualVar"]);
10617
 
10617
 
10618
		#如果有找到相同的元素
10618
		#如果有找到相同的元素
10619
		if($checkResult["founded"]==="true"){
10619
		if($checkResult["founded"]==="true"){
10620
			
10620
 
10621
			#設置執行成功的識別
10621
			#設置執行成功的識別
10622
			$result["status"]="true";
10622
			$result["status"]="true";
10623
			
10623
 
10624
			#設置有找到相同的
10624
			#設置有找到相同的
10625
			$result["founded"]="true";
10625
			$result["founded"]="true";
10626
			
10626
 
10627
			#回傳結果
10627
			#回傳結果
10628
			return $result;
10628
			return $result;
10629
			
10629
 
10630
			}#if end
10630
			}#if end
10631
			
10631
 
10632
		#如果沒有找到相同的元素
10632
		#如果沒有找到相同的元素
10633
		if($checkResult["founded"]==="false"){
10633
		if($checkResult["founded"]==="false"){
10634
 
10634
 
10635
			#設置執行成功的識別
10635
			#設置執行成功的識別
10636
			$result["status"]="true";
10636
			$result["status"]="true";
10637
			
10637
 
10638
			#設置有找到相同的
10638
			#設置有找到相同的
10639
			$result["founded"]="false";
10639
			$result["founded"]="false";
10640
			
10640
 
10641
			#回傳結果
10641
			#回傳結果
10642
			return $result;
10642
			return $result;
10643
			
10643
 
10644
			}#if end
10644
			}#if end
10645
		
10645
 
10646
		#不應該執行到這邊
10646
		#不應該執行到這邊
10647
		
10647
 
10648
		#設置執行失敗
10648
		#設置執行失敗
10649
		$result["status"]="false";
10649
		$result["status"]="false";
10650
		
10650
 
10651
		#設置執行錯誤
10651
		#設置執行錯誤
10652
		$result["error"]="不應該出現的例外狀況";
10652
		$result["error"]="不應該出現的例外狀況";
10653
		
10653
 
10654
		#回傳結果
10654
		#回傳結果
10655
		return $result;
10655
		return $result;
10656
		
10656
 
10657
		}#funcrion checkDataTableExists end
10657
		}#funcrion checkDataTableExists end
10658
 
10658
 
10659
	/*
10659
	/*
10660
	#函式說明:
10660
	#函式說明:
10661
	#檢查資料表的欄位是否存在
10661
	#檢查資料表的欄位是否存在
Line 10667... Line 10667...
10667
	#$result["warning"],警告訊息陣列
10667
	#$result["warning"],警告訊息陣列
10668
	#$result["passed"],是否通過檢查,"true"代表通過;"false"代表不通過.
10668
	#$result["passed"],是否通過檢查,"true"代表通過;"false"代表不通過.
10669
	#其餘的結果代表參數不正確
10669
	#其餘的結果代表參數不正確
10670
	#必填參數:
10670
	#必填參數:
10671
	#$conf["dbAddr"],字串,爲mysql-Server的位置
10671
	#$conf["dbAddr"],字串,爲mysql-Server的位置
10672
	$conf["dbAddr"]=$dbAddress; 
10672
	$conf["dbAddr"]=$dbAddress;
10673
	#$conf["dbAcct"],字串,爲用於連入mysql-Server時要使用的帳號
10673
	#$conf["dbAcct"],字串,爲用於連入mysql-Server時要使用的帳號
10674
	$conf["dbAcct"]=$dbAccount;
10674
	$conf["dbAcct"]=$dbAccount;
10675
	#$conf["dbName"],字串,爲指定的資料庫名稱
10675
	#$conf["dbName"],字串,爲指定的資料庫名稱
10676
	$conf["dbName"]="";
10676
	$conf["dbName"]="";
10677
	#$conf["dtName"],字串,為要檢查是否存在的資料表名稱
10677
	#$conf["dtName"],字串,為要檢查是否存在的資料表名稱
10678
	$conf["dtName"]="";
10678
	$conf["dtName"]="";
10679
	#$conf["col"],字串陣列,要檢查的欄位名稱.
10679
	#$conf["col"],字串陣列,要檢查的欄位名稱.
10680
	$conf["col"]=array();
10680
	$conf["col"]=array();
10681
	#可省略參數
10681
	#可省略參數
10682
	#$conf["dbPass"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼 
10682
	#$conf["dbPass"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
10683
	#$conf["dbPass"]=$dbPassword;
10683
	#$conf["dbPass"]=$dbPassword;
10684
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
10684
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
10685
	#$conf["dbPort"]="";
10685
	#$conf["dbPort"]="";
10686
	#參考資料:
10686
	#參考資料:
10687
	#無.
10687
	#無.
10688
	#備註:
10688
	#備註:
10689
	#無.
10689
	#無.
10690
	*/
10690
	*/
10691
	public static function checkTableColExists(&$conf=array()){
10691
	public static function checkTableColExists(&$conf=array()){
10692
		
10692
 
10693
		#初始化要回傳的結果
10693
		#初始化要回傳的結果
10694
		$result=array();
10694
		$result=array();
10695
 
10695
 
10696
		#取得當前執行的函數名稱
10696
		#取得當前執行的函數名稱
10697
		$result["function"]=__FUNCTION__;
10697
		$result["function"]=__FUNCTION__;
10698
 
10698
 
10699
		#如果沒有參數
10699
		#如果沒有參數
10700
		if(func_num_args()==0){
10700
		if(func_num_args()==0){
10701
			
10701
 
10702
			#設置執行失敗
10702
			#設置執行失敗
10703
			$result["status"]="false";
10703
			$result["status"]="false";
10704
			
10704
 
10705
			#設置執行錯誤訊息
10705
			#設置執行錯誤訊息
10706
			$result["error"]="函數".$result["function"]."需要參數";
10706
			$result["error"]="函數".$result["function"]."需要參數";
10707
			
10707
 
10708
			#回傳結果
10708
			#回傳結果
10709
			return $result;
10709
			return $result;
10710
			
10710
 
10711
			}#if end
10711
			}#if end
10712
		
10712
 
10713
		#取得參數
10713
		#取得參數
10714
		$result["argu"]=$conf;
10714
		$result["argu"]=$conf;
10715
 
10715
 
10716
		#如果 $conf 不為陣列
10716
		#如果 $conf 不為陣列
10717
		if(gettype($conf)!=="array"){
10717
		if(gettype($conf)!=="array"){
10718
			
10718
 
10719
			#設置執行失敗
10719
			#設置執行失敗
10720
			$result["status"]="false";
10720
			$result["status"]="false";
10721
			
10721
 
10722
			#設置執行錯誤訊息
10722
			#設置執行錯誤訊息
10723
			$result["error"][]="\$conf變數須為陣列形態";
10723
			$result["error"][]="\$conf變數須為陣列形態";
10724
			
10724
 
10725
			#如果傳入的參數為 null
10725
			#如果傳入的參數為 null
10726
			if($conf===null){
10726
			if($conf===null){
10727
				
10727
 
10728
				#設置執行錯誤訊息
10728
				#設置執行錯誤訊息
10729
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10729
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10730
				
10730
 
10731
				}#if end
10731
				}#if end
10732
 
10732
 
10733
			#回傳結果
10733
			#回傳結果
10734
			return $result;
10734
			return $result;
10735
			
10735
 
10736
			}#if end
10736
			}#if end
10737
		
10737
 
10738
		#函式說明:
10738
		#函式說明:
10739
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
10739
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
10740
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
10740
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
10741
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
10741
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
10742
		#$result["function"],當前執行的函式名稱.
10742
		#$result["function"],當前執行的函式名稱.
Line 10748... Line 10748...
10748
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
10748
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
10749
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
10749
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
10750
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
10750
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
10751
		#必填參數:
10751
		#必填參數:
10752
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
10752
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
10753
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;	
10753
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
10754
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
10754
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
10755
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
10755
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
10756
		#可以省略的參數:
10756
		#可以省略的參數:
10757
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
10757
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
10758
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbName","dbAcct","dtName","col");
10758
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbName","dbAcct","dtName","col");
Line 10766... Line 10766...
10766
		#$conf["canBeEmpty"]=array();
10766
		#$conf["canBeEmpty"]=array();
10767
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
10767
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
10768
		#$conf["skipableVariableCanNotBeEmpty"]=array();
10768
		#$conf["skipableVariableCanNotBeEmpty"]=array();
10769
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
10769
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
10770
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass","dbPort");
10770
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass","dbPort");
10771
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
10771
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
10772
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
10772
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
10773
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
10773
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
10774
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
10774
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
10775
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
10775
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
10776
		#$conf["disallowAllSkipableVarIsEmpty"]="";
10776
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 10780... Line 10780...
10780
		#$conf["arrayCountEqualCheck"][]=array();
10780
		#$conf["arrayCountEqualCheck"][]=array();
10781
		#參考資料:
10781
		#參考資料:
10782
		#array_keys=>http://php.net/manual/en/function.array-keys.php
10782
		#array_keys=>http://php.net/manual/en/function.array-keys.php
10783
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
10783
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
10784
		unset($conf["variableCheck::checkArguments"]);
10784
		unset($conf["variableCheck::checkArguments"]);
10785
		
10785
 
10786
		#如果檢查失敗
10786
		#如果檢查失敗
10787
		if($checkArguments["status"]==="false"){
10787
		if($checkArguments["status"]==="false"){
10788
			
10788
 
10789
			#設置執行失敗
10789
			#設置執行失敗
10790
			$result["status"]="false";
10790
			$result["status"]="false";
10791
			
10791
 
10792
			#設置錯誤訊息
10792
			#設置錯誤訊息
10793
			$result["error"]=$checkArguments["error"];
10793
			$result["error"]=$checkArguments["error"];
10794
			
10794
 
10795
			#回傳結果
10795
			#回傳結果
10796
			return $result;
10796
			return $result;
10797
			
10797
 
10798
			}#if  end
10798
			}#if  end
10799
			
10799
 
10800
		#如果檢查不通過
10800
		#如果檢查不通過
10801
		if($checkArguments["passed"]==="false"){
10801
		if($checkArguments["passed"]==="false"){
10802
			
10802
 
10803
			#設置執行失敗
10803
			#設置執行失敗
10804
			$result["status"]="false";
10804
			$result["status"]="false";
10805
			
10805
 
10806
			#設置錯誤訊息
10806
			#設置錯誤訊息
10807
			$result["error"]=$checkArguments["error"];
10807
			$result["error"]=$checkArguments["error"];
10808
			
10808
 
10809
			#回傳結果
10809
			#回傳結果
10810
			return $result;
10810
			return $result;
10811
			
10811
 
10812
			}#if  end
10812
			}#if  end
10813
			
10813
 
10814
		#函式說明:
10814
		#函式說明:
10815
		#取得資料表所有欄位的詳細資訊
10815
		#取得資料表所有欄位的詳細資訊
10816
		#回傳的內容:
10816
		#回傳的內容:
10817
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
10817
		#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
10818
		#$result["error"],錯誤訊息陣列
10818
		#$result["error"],錯誤訊息陣列
Line 10849... Line 10849...
10849
		$conf["db::getDataTableColumn"]["dbAccount"]=$conf["dbAcct"];#連線到資料庫要用的帳號
10849
		$conf["db::getDataTableColumn"]["dbAccount"]=$conf["dbAcct"];#連線到資料庫要用的帳號
10850
		$conf["db::getDataTableColumn"]["selectedDataBase"]=$conf["dbName"];#連線到資料庫要選擇的資料庫
10850
		$conf["db::getDataTableColumn"]["selectedDataBase"]=$conf["dbName"];#連線到資料庫要選擇的資料庫
10851
		$conf["db::getDataTableColumn"]["selectedDataTable"]=$conf["dtName"];#連線到資料庫要檢視的資料表
10851
		$conf["db::getDataTableColumn"]["selectedDataTable"]=$conf["dtName"];#連線到資料庫要檢視的資料表
10852
		#可省略參數:
10852
		#可省略參數:
10853
		if(isset($conf["dbPass"])){
10853
		if(isset($conf["dbPass"])){
10854
			
10854
 
10855
			#$conf["dbPassword"]=$dbPassword;#連線到資料庫要用的密碼
10855
			#$conf["dbPassword"]=$dbPassword;#連線到資料庫要用的密碼
10856
			$conf["db::getDataTableColumn"]["dbPassword"]=$conf["dbPass"];
10856
			$conf["db::getDataTableColumn"]["dbPassword"]=$conf["dbPass"];
10857
			
10857
 
10858
			}#if end
10858
			}#if end
10859
			
10859
 
10860
		#如果有設置 $conf["dbPort"]
10860
		#如果有設置 $conf["dbPort"]
10861
		if(isset($conf["dbPort"])){
10861
		if(isset($conf["dbPort"])){
10862
			
10862
 
10863
			#$conf["dbPort"]=$dbPort;#連線到資料庫要用的port
10863
			#$conf["dbPort"]=$dbPort;#連線到資料庫要用的port
10864
			$conf["db::getDataTableColumn"]["dbPort"]=$conf["dbPass"];
10864
			$conf["db::getDataTableColumn"]["dbPort"]=$conf["dbPass"];
10865
			
10865
 
10866
			}#if end
10866
			}#if end
10867
			
10867
 
10868
		#備註:
10868
		#備註:
10869
		#查詢的功能有點弱,目前用getTableColumnDetailInfo替代
10869
		#查詢的功能有點弱,目前用getTableColumnDetailInfo替代
10870
		$getDataTableColumn=db::getDataTableColumn($conf["db::getDataTableColumn"]);
10870
		$getDataTableColumn=db::getDataTableColumn($conf["db::getDataTableColumn"]);
10871
		unset($conf["db::getDataTableColumn"]);
10871
		unset($conf["db::getDataTableColumn"]);
10872
				
10872
 
10873
		#如果查詢失敗
10873
		#如果查詢失敗
10874
		if($getDataTableColumn["status"]==="false"){
10874
		if($getDataTableColumn["status"]==="false"){
10875
			
10875
 
10876
			#設置執行失敗
10876
			#設置執行失敗
10877
			$result["status"]="false";
10877
			$result["status"]="false";
10878
			
10878
 
10879
			#設置錯誤訊息
10879
			#設置錯誤訊息
10880
			$result["error"]=$getDataTableColumn["error"];
10880
			$result["error"]=$getDataTableColumn["error"];
10881
			
10881
 
10882
			#回傳結果
10882
			#回傳結果
10883
			return $result;
10883
			return $result;
10884
			
10884
 
10885
			}#if end
10885
			}#if end
10886
		
10886
 
10887
		#初始化通過檢查
10887
		#初始化通過檢查
10888
		$result["passed"]="true";
10888
		$result["passed"]="true";
10889
		
10889
 
10890
		#針對每個要檢查的欄位
10890
		#針對每個要檢查的欄位
10891
		foreach($conf["col"] as $colName){
10891
		foreach($conf["col"] as $colName){
10892
			
10892
 
10893
			#如果欄位 $colName 不存在
10893
			#如果欄位 $colName 不存在
10894
			if(!in_array($colName,$getDataTableColumn["columnName"])){
10894
			if(!in_array($colName,$getDataTableColumn["columnName"])){
10895
				
10895
 
10896
				#設置欄位不存在的警告訊息
10896
				#設置欄位不存在的警告訊息
10897
				$result["warning"][]="欄位 ".$colName." 不存在";
10897
				$result["warning"][]="欄位 ".$colName." 不存在";
10898
				
10898
 
10899
				#設置未通過檢查
10899
				#設置未通過檢查
10900
				$result["passed"]="false";
10900
				$result["passed"]="false";
10901
				
10901
 
10902
				}#if end
10902
				}#if end
10903
			
10903
 
10904
			}#foreach end
10904
			}#foreach end
10905
		
10905
 
10906
		#設置執行正常
10906
		#設置執行正常
10907
		$result["status"]="true";
10907
		$result["status"]="true";
10908
			
10908
 
10909
		#回傳結果
10909
		#回傳結果
10910
		return $result;
10910
		return $result;
10911
		
10911
 
10912
		}#function checkTableColExists end
10912
		}#function checkTableColExists end
10913
 
10913
 
10914
	/*
10914
	/*
10915
	#函式說明:
10915
	#函式說明:
10916
	#檢查該資料庫是否存在,結果會回傳一個陣列。
10916
	#檢查該資料庫是否存在,結果會回傳一個陣列。
Line 10933... Line 10933...
10933
	#$conf["dbPort"]="";
10933
	#$conf["dbPort"]="";
10934
	#參考資料:
10934
	#參考資料:
10935
	#無.
10935
	#無.
10936
	#備註:
10936
	#備註:
10937
	#無.
10937
	#無.
10938
	*/	
10938
	*/
10939
	public static function checkDataBaseExists($conf){
10939
	public static function checkDataBaseExists($conf){
10940
 
10940
 
10941
		#初始化要回傳的變數
10941
		#初始化要回傳的變數
10942
		$result=array();
10942
		$result=array();
10943
 
10943
 
10944
		#紀錄當前執行的函數名稱
10944
		#紀錄當前執行的函數名稱
10945
		$result["function"]=__FUNCTION__;
10945
		$result["function"]=__FUNCTION__;
10946
 
10946
 
10947
		#如果 $conf 不為陣列
10947
		#如果 $conf 不為陣列
10948
		if(gettype($conf)!="array"){
10948
		if(gettype($conf)!="array"){
10949
			
10949
 
10950
			#設置執行失敗
10950
			#設置執行失敗
10951
			$result["status"]="false";
10951
			$result["status"]="false";
10952
			
10952
 
10953
			#設置執行錯誤訊息
10953
			#設置執行錯誤訊息
10954
			$result["error"][]="\$conf變數須為陣列形態";
10954
			$result["error"][]="\$conf變數須為陣列形態";
10955
 
10955
 
10956
			#如果傳入的參數為 null
10956
			#如果傳入的參數為 null
10957
			if($conf==null){
10957
			if($conf==null){
10958
				
10958
 
10959
				#設置執行錯誤訊息
10959
				#設置執行錯誤訊息
10960
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10960
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
10961
				
10961
 
10962
				}#if end
10962
				}#if end
10963
 
10963
 
10964
			#回傳結果
10964
			#回傳結果
10965
			return $result;
10965
			return $result;
10966
			
10966
 
10967
			}#if end
10967
			}#if end
10968
 
10968
 
10969
		#檢查參數
10969
		#檢查參數
10970
		#函式說明:
10970
		#函式說明:
10971
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
10971
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
Line 10975... Line 10975...
10975
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
10975
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
10976
		#必填參數:
10976
		#必填參數:
10977
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
10977
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
10978
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","checkDataBaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
10978
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","checkDataBaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
10979
		#可省略參數:
10979
		#可省略參數:
10980
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
10980
		#$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
10981
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
10981
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
10982
		#備註:
10982
		#備註:
10983
		#功能與checkExistAndType函式相同
10983
		#功能與checkExistAndType函式相同
10984
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
10984
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
10985
		unset($conf["variableCheck"]["isexistMuti"]);
10985
		unset($conf["variableCheck"]["isexistMuti"]);
10986
			
10986
 
10987
		#如果 $checkResult["status"] 等於 "false"
10987
		#如果 $checkResult["status"] 等於 "false"
10988
		if($checkResult["status"]=="false"){
10988
		if($checkResult["status"]=="false"){
10989
			
10989
 
10990
			#設置執行失敗
10990
			#設置執行失敗
10991
			$result["status"]="false";
10991
			$result["status"]="false";
10992
			
10992
 
10993
			#設置執行錯誤
10993
			#設置執行錯誤
10994
			$result["error"]=$checkResult;
10994
			$result["error"]=$checkResult;
10995
			
10995
 
10996
			#回傳結果
10996
			#回傳結果
10997
			return $result;
10997
			return $result;
10998
			
10998
 
10999
			}#if end	
10999
			}#if end
11000
			
11000
 
11001
		#如果 $checkResult["passed"] 等於 "false"
11001
		#如果 $checkResult["passed"] 等於 "false"
11002
		if($checkResult["passed"]=="false"){
11002
		if($checkResult["passed"]=="false"){
11003
			
11003
 
11004
			#設置執行失敗
11004
			#設置執行失敗
11005
			$result["status"]="false";
11005
			$result["status"]="false";
11006
			
11006
 
11007
			#設置執行錯誤
11007
			#設置執行錯誤
11008
			$result["error"]=$checkResult;
11008
			$result["error"]=$checkResult;
11009
			
11009
 
11010
			#回傳結果
11010
			#回傳結果
11011
			return $result;
11011
			return $result;
11012
			
11012
 
11013
			}#if end
11013
			}#if end
11014
			
11014
 
11015
		#取得資料庫列表的語法
11015
		#取得資料庫列表的語法
11016
		#查詢所有的資料庫列表,會回傳查詢的結果
11016
		#查詢所有的資料庫列表,會回傳查詢的結果
11017
		#$result["status"],執行是否正常,"true"為正常,"fasle"為不正常
11017
		#$result["status"],執行是否正常,"true"為正常,"fasle"為不正常
11018
		#$result["error"],爲錯誤訊息
11018
		#$result["error"],爲錯誤訊息
11019
		#$result["connectInformation"],爲回傳的mysql連線資訊。
11019
		#$result["connectInformation"],爲回傳的mysql連線資訊。
11020
		#$result["dbName"] 爲查詢的資料庫名稱陣列,第一筆資料庫名稱爲$result["dbName"][0],第二筆資料庫名稱爲$result["dbName"][1],其餘以此類推。
11020
		#$result["dbName"] 爲查詢的資料庫名稱陣列,第一筆資料庫名稱爲$result["dbName"][0],第二筆資料庫名稱爲$result["dbName"][1],其餘以此類推。
11021
		#$result["dbCounts"] 爲資料庫的總筆數	
11021
		#$result["dbCounts"] 爲資料庫的總筆數
11022
		#必填參數:
11022
		#必填參數:
11023
		$conf["db"]["getDataBaseList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
11023
		$conf["db"]["getDataBaseList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
11024
		$conf["db"]["getDataBaseList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
11024
		$conf["db"]["getDataBaseList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
11025
		#可省略參數:
11025
		#可省略參數:
11026
		
11026
 
11027
		#如果 $conf["dbPassword"] 有設定
11027
		#如果 $conf["dbPassword"] 有設定
11028
		if(isset($conf["dbPassword"])){
11028
		if(isset($conf["dbPassword"])){
11029
			
11029
 
11030
			$conf["db"]["getDataBaseList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11030
			$conf["db"]["getDataBaseList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11031
			
11031
 
11032
			}#if end
11032
			}#if end
11033
			
11033
 
11034
		#如果 $conf["dbPort"] 有設定
11034
		#如果 $conf["dbPort"] 有設定
11035
		if(isset($conf["dbPort"])){
11035
		if(isset($conf["dbPort"])){
11036
			
11036
 
11037
			$conf["db"]["getDataBaseList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306.
11037
			$conf["db"]["getDataBaseList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306.
11038
			
11038
 
11039
			}#if end
11039
			}#if end
11040
		
11040
 
11041
		$queryResult=db::getDataBaseList($conf["db"]["getDataBaseList"]);
11041
		$queryResult=db::getDataBaseList($conf["db"]["getDataBaseList"]);
11042
		unset($conf["db"]["getDataBaseList"]);
11042
		unset($conf["db"]["getDataBaseList"]);
11043
		
11043
 
11044
		#如果 $queryResult["status"] 等於 "fasle"
11044
		#如果 $queryResult["status"] 等於 "fasle"
11045
		if($queryResult["status"]=="false"){
11045
		if($queryResult["status"]=="false"){
11046
			
11046
 
11047
			#設置錯誤識別
11047
			#設置錯誤識別
11048
			$result["status"]="false";
11048
			$result["status"]="false";
11049
			
11049
 
11050
			#設置錯誤訊息
11050
			#設置錯誤訊息
11051
			$result["error"]=$queryResult;
11051
			$result["error"]=$queryResult;
11052
			
11052
 
11053
			#回傳結果
11053
			#回傳結果
11054
			return $result;
11054
			return $result;
11055
			
11055
 
11056
			}#if end
11056
			}#if end
11057
		
11057
 
11058
		#有幾個資料庫就檢查該名稱有沒有重複
11058
		#有幾個資料庫就檢查該名稱有沒有重複
11059
		for($i=0;$i<$queryResult["dbCounts"];$i++){
11059
		for($i=0;$i<$queryResult["dbCounts"];$i++){
11060
 
11060
 
11061
			#檢查名稱是否相同			
11061
			#檢查名稱是否相同
11062
			if($queryResult["dbName"][$i]==$conf["checkDataBaseName"]){
11062
			if($queryResult["dbName"][$i]==$conf["checkDataBaseName"]){
11063
			
11063
 
11064
				#相同名稱代表資料庫重複
11064
				#相同名稱代表資料庫重複
11065
				$result["exist"]="true";
11065
				$result["exist"]="true";
11066
				
11066
 
11067
				#跳出迴圈
11067
				#跳出迴圈
11068
				break;
11068
				break;
11069
				
11069
 
11070
				}#判斷式結束
11070
				}#判斷式結束
11071
 
11071
 
11072
			}#迴圈結束
11072
			}#迴圈結束
11073
 
11073
 
11074
		#如果 $result["exist"] 沒有設定
11074
		#如果 $result["exist"] 沒有設定
11075
		if(!isset($result["exist"])){
11075
		if(!isset($result["exist"])){
11076
			
11076
 
11077
			#代表都沒有相同的名稱就代表沒有重複
11077
			#代表都沒有相同的名稱就代表沒有重複
11078
			$result["exist"]="false";
11078
			$result["exist"]="false";
11079
			
11079
 
11080
			}#if end
11080
			}#if end
11081
		
11081
 
11082
		#執行到這邊代表執行正常
11082
		#執行到這邊代表執行正常
11083
		$result["status"]="true";
11083
		$result["status"]="true";
11084
		
11084
 
11085
		#回傳結果
11085
		#回傳結果
11086
		return $result;	
11086
		return $result;
11087
		
11087
 
11088
		}#function checkDataBaseExists end
11088
		}#function checkDataBaseExists end
11089
 
11089
 
11090
	/*
11090
	/*
11091
	#函式說明:
11091
	#函式說明:
11092
	#尋找特定資料庫裏特定資料表裏面特定欄位有無可用整數編號,可以指定數字的起點與終點,此函式會回傳可用的編號。
11092
	#尋找特定資料庫裏特定資料表裏面特定欄位有無可用整數編號,可以指定數字的起點與終點,此函式會回傳可用的編號。
11093
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
11093
	#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
11094
	#$result["error"],錯誤訊息陣列 
11094
	#$result["error"],錯誤訊息陣列
11095
	#$result["function"],當前執行的函數.
11095
	#$result["function"],當前執行的函數.
11096
	#$result["founded"],爲搜尋可以用的數字是否成功,"true"表示成功,"false"表示失敗.
11096
	#$result["founded"],爲搜尋可以用的數字是否成功,"true"表示成功,"false"表示失敗.
11097
	#$result["usableNumber"],爲可用的整數。
11097
	#$result["usableNumber"],爲可用的整數。
11098
	#$result["sql"],執行的sql語法.
11098
	#$result["sql"],執行的sql語法.
11099
	#必填參數:
11099
	#必填參數:
Line 11133... Line 11133...
11133
		#取得當前執行的函數名稱
11133
		#取得當前執行的函數名稱
11134
		$result["function"]=__FUNCTION__;
11134
		$result["function"]=__FUNCTION__;
11135
 
11135
 
11136
		#如果 $conf 不為陣列
11136
		#如果 $conf 不為陣列
11137
		if(gettype($conf)!="array"){
11137
		if(gettype($conf)!="array"){
11138
			
11138
 
11139
			#設置執行失敗
11139
			#設置執行失敗
11140
			$result["status"]="false";
11140
			$result["status"]="false";
11141
			
11141
 
11142
			#設置執行錯誤訊息
11142
			#設置執行錯誤訊息
11143
			$result["error"][]="\$conf變數須為陣列形態";
11143
			$result["error"][]="\$conf變數須為陣列形態";
11144
 
11144
 
11145
			#如果傳入的參數為 null
11145
			#如果傳入的參數為 null
11146
			if($conf==null){
11146
			if($conf==null){
11147
				
11147
 
11148
				#設置執行錯誤訊息
11148
				#設置執行錯誤訊息
11149
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
11149
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
11150
				
11150
 
11151
				}#if end
11151
				}#if end
11152
 
11152
 
11153
			#回傳結果
11153
			#回傳結果
11154
			return $result;
11154
			return $result;
11155
			
11155
 
11156
			}#if end
11156
			}#if end
11157
 
11157
 
11158
		#可用號碼的預設值,用int型態儲存.
11158
		#可用號碼的預設值,用int型態儲存.
11159
		(int)$userableNumber=0;
11159
		(int)$userableNumber=0;
11160
 
11160
 
Line 11167... Line 11167...
11167
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
11167
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
11168
		#必填參數:
11168
		#必填參數:
11169
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
11169
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
11170
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","checkDataTableName","conditionTargetName","startPoint","endPoint");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
11170
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","checkDataTableName","conditionTargetName","startPoint","endPoint");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
11171
		#可省略參數:
11171
		#可省略參數:
11172
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
11172
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
11173
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
11173
		#$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
11174
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
11174
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
11175
		unset($conf["variableCheck"]["isexistMuti"]);
11175
		unset($conf["variableCheck"]["isexistMuti"]);
11176
		
11176
 
11177
		#如果 $checkResult["status"] 等於 "false"
11177
		#如果 $checkResult["status"] 等於 "false"
11178
		if($checkResult["status"]=="false"){
11178
		if($checkResult["status"]=="false"){
11179
			
11179
 
11180
			#設置錯誤識別
11180
			#設置錯誤識別
11181
			$result["status"]="false";
11181
			$result["status"]="false";
11182
			
11182
 
11183
			#設置錯誤訊息
11183
			#設置錯誤訊息
11184
			$result["error"]=$checkResult;
11184
			$result["error"]=$checkResult;
11185
			
11185
 
11186
			#回傳結果
11186
			#回傳結果
11187
			return $result;
11187
			return $result;
11188
			
11188
 
11189
			}#if end
11189
			}#if end
11190
			
11190
 
11191
		#如果 $checkResult["passed"] 等於 "false"
11191
		#如果 $checkResult["passed"] 等於 "false"
11192
		if($checkResult["passed"]=="false"){
11192
		if($checkResult["passed"]=="false"){
11193
			
11193
 
11194
			#設置錯誤識別
11194
			#設置錯誤識別
11195
			$result["status"]="false";
11195
			$result["status"]="false";
11196
			
11196
 
11197
			#設置錯誤訊息
11197
			#設置錯誤訊息
11198
			$result["error"]=$checkResult;
11198
			$result["error"]=$checkResult;
11199
			
11199
 
11200
			#回傳結果
11200
			#回傳結果
11201
			return $result;
11201
			return $result;
11202
			
11202
 
11203
			}#if end
11203
			}#if end
11204
 
11204
 
11205
		#從$startPoint開始到$endPoint結束,供執行 $endPoint-$startPoint 次。
11205
		#從$startPoint開始到$endPoint結束,供執行 $endPoint-$startPoint 次。
11206
		for($i=$conf["startPoint"];$i<=$conf["endPoint"];$i++){
11206
		for($i=$conf["startPoint"];$i<=$conf["endPoint"];$i++){
11207
 
11207
 
Line 11225... Line 11225...
11225
			$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
11225
			$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
11226
			$conf["db"]["fastGetDbData"]["dbName"]=$conf["selectedDataBaseName"];#爲要存取的資料庫名稱
11226
			$conf["db"]["fastGetDbData"]["dbName"]=$conf["selectedDataBaseName"];#爲要存取的資料庫名稱
11227
			$conf["db"]["fastGetDbData"]["tableName"]=$conf["checkDataTableName"];#爲要存取的資料表名稱
11227
			$conf["db"]["fastGetDbData"]["tableName"]=$conf["checkDataTableName"];#爲要存取的資料表名稱
11228
			$conf["db"]["fastGetDbData"]["columnYouWant"]=array($conf["conditionTargetName"]);#你想要的欄位!
11228
			$conf["db"]["fastGetDbData"]["columnYouWant"]=array($conf["conditionTargetName"]);#你想要的欄位!
11229
			#可省略參數:
11229
			#可省略參數:
11230
			
11230
 
11231
			#如果 $conf["dbPassword"] 有設置
11231
			#如果 $conf["dbPassword"] 有設置
11232
			if(isset($conf["dbPassword"])){
11232
			if(isset($conf["dbPassword"])){
11233
				
11233
 
11234
				$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
11234
				$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
11235
				
11235
 
11236
				}#if end
11236
				}#if end
11237
			
11237
 
11238
			#如果 $conf["dbPort"] 有設置
11238
			#如果 $conf["dbPort"] 有設置
11239
			if(isset($conf["dbPort"])){
11239
			if(isset($conf["dbPort"])){
11240
				
11240
 
11241
				$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
11241
				$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
11242
				
11242
 
11243
				}#if end
11243
				}#if end
11244
			
11244
 
11245
			#要檢查可用數字的欄位為塞選的欄位
11245
			#要檢查可用數字的欄位為塞選的欄位
11246
			$conf["db"]["fastGetDbData"]["WhereColumnName"][]=$conf["conditionTargetName"];
11246
			$conf["db"]["fastGetDbData"]["WhereColumnName"][]=$conf["conditionTargetName"];
11247
			
11247
 
11248
			#如果 $conf["otherConditionTargetName"] 有設置
11248
			#如果 $conf["otherConditionTargetName"] 有設置
11249
			if(isset($conf["otherConditionTargetName"])){
11249
			if(isset($conf["otherConditionTargetName"])){
11250
				
11250
 
11251
				#針對 $conf["otherConditionTargetName"] 的每個元素 
11251
				#針對 $conf["otherConditionTargetName"] 的每個元素
11252
				foreach($conf["otherConditionTargetName"] as $columnName){
11252
				foreach($conf["otherConditionTargetName"] as $columnName){
11253
					
11253
 
11254
					$conf["db"]["fastGetDbData"]["WhereColumnName"][]=$columnName;#用於判斷語句的欄位項目陣列.
11254
					$conf["db"]["fastGetDbData"]["WhereColumnName"][]=$columnName;#用於判斷語句的欄位項目陣列.
11255
					
11255
 
11256
					}#foreach end
11256
					}#foreach end
11257
				
11257
 
11258
				}#if end
11258
				}#if end
11259
			
11259
 
11260
			#要檢查可用數字的欄位數值為塞選的欄位對應數值
11260
			#要檢查可用數字的欄位數值為塞選的欄位對應數值
11261
			$conf["db"]["fastGetDbData"]["WhereColumnValue"][]=$userableNumber;
11261
			$conf["db"]["fastGetDbData"]["WhereColumnValue"][]=$userableNumber;
11262
				
11262
 
11263
			#如果 $conf["otherConditionTargetValue"] 有設置
11263
			#如果 $conf["otherConditionTargetValue"] 有設置
11264
			if(isset($conf["otherConditionTargetValue"])){
11264
			if(isset($conf["otherConditionTargetValue"])){
11265
			
11265
 
11266
				#針對每個 $conf["otherConditionTargetValue"] 元素
11266
				#針對每個 $conf["otherConditionTargetValue"] 元素
11267
				foreach($conf["otherConditionTargetValue"] as $columnValue){
11267
				foreach($conf["otherConditionTargetValue"] as $columnValue){
11268
					
11268
 
11269
					$conf["db"]["fastGetDbData"]["WhereColumnValue"][]=$columnValue;#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容.
11269
					$conf["db"]["fastGetDbData"]["WhereColumnValue"][]=$columnValue;#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容.
11270
					
11270
 
11271
					}#foreach end
11271
					}#foreach end
11272
					
11272
 
11273
				}#if end
11273
				}#if end
11274
						
11274
 
11275
			#$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
11275
			#$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
11276
			#$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
11276
			#$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
11277
			#$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
11277
			#$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
11278
			#$conf["db"]["fastGetDbData"]["orderItem"]="";#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
11278
			#$conf["db"]["fastGetDbData"]["orderItem"]="";#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
11279
			#$conf["db"]["fastGetDbData"]["ascORdesc"]="";#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
11279
			#$conf["db"]["fastGetDbData"]["ascORdesc"]="";#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
11280
			#$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
11280
			#$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
11281
			#$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
11281
			#$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
11282
			#$conf["db"]["fastGetDbData"]["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
11282
			#$conf["db"]["fastGetDbData"]["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
11283
			$db["fastGetDbData"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
11283
			$db["fastGetDbData"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
11284
			unset($conf["db"]["fastGetDbData"]);
11284
			unset($conf["db"]["fastGetDbData"]);
11285
			
11285
 
11286
			#如果取得資料失敗
11286
			#如果取得資料失敗
11287
			if($db["fastGetDbData"]["status"]=="false"){
11287
			if($db["fastGetDbData"]["status"]=="false"){
11288
				
11288
 
11289
				#設置錯誤識別
11289
				#設置錯誤識別
11290
				$result["status"]="false";
11290
				$result["status"]="false";
11291
				
11291
 
11292
				#設置錯誤訊息
11292
				#設置錯誤訊息
11293
				$result["error"]=$db["fastGetDbData"];
11293
				$result["error"]=$db["fastGetDbData"];
11294
				
11294
 
11295
				#回傳結果
11295
				#回傳結果
11296
				return $result;
11296
				return $result;
11297
				
11297
 
11298
				}#if end
11298
				}#if end
11299
 
11299
 
11300
			#如果該條件下沒有符合的資料
11300
			#如果該條件下沒有符合的資料
11301
			if($db["fastGetDbData"]["dataCount"]==0){
11301
			if($db["fastGetDbData"]["dataCount"]==0){
11302
				
11302
 
11303
				#取得可用的編號
11303
				#取得可用的編號
11304
				$result["usableNumber"]=$i;
11304
				$result["usableNumber"]=$i;
11305
 
11305
 
11306
				#設置有找到符合的數字
11306
				#設置有找到符合的數字
11307
				$result["founded"]="true";
11307
				$result["founded"]="true";
11308
 
11308
 
11309
				#跳出迴圈
11309
				#跳出迴圈
11310
				break;
11310
				break;
11311
				
11311
 
11312
				}#if end
11312
				}#if end
11313
			
11313
 
11314
			#反之該條件下有符合的資料
11314
			#反之該條件下有符合的資料
11315
			else{
11315
			else{
11316
			
11316
 
11317
				#設置沒有找到符合的數字
11317
				#設置沒有找到符合的數字
11318
				$result["founded"]="false";
11318
				$result["founded"]="false";
11319
 
11319
 
11320
				}#else end
11320
				}#else end
11321
 
11321
 
Line 11346... Line 11346...
11346
	$conf["dbAccount"]=$dbAccount;
11346
	$conf["dbAccount"]=$dbAccount;
11347
	#$conf["selectedDataBaseName"],字串,要選取的資料庫名稱。
11347
	#$conf["selectedDataBaseName"],字串,要選取的資料庫名稱。
11348
	$conf["selectedDataBaseName"]=$dbName;
11348
	$conf["selectedDataBaseName"]=$dbName;
11349
	#$conf["selectedDataTableName"],字串,爲欲選擇的資料表名稱。
11349
	#$conf["selectedDataTableName"],字串,爲欲選擇的資料表名稱。
11350
	$conf["selectedDataTableName"]="";
11350
	$conf["selectedDataTableName"]="";
11351
	#可省略參數:	
11351
	#可省略參數:
11352
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
11352
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
11353
	#$conf["dbPassword"]=$dbPassword;
11353
	#$conf["dbPassword"]=$dbPassword;
11354
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
11354
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
11355
	#$conf["dbPort"]="";
11355
	#$conf["dbPort"]="";
11356
	#$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
11356
	#$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
Line 11384... Line 11384...
11384
	*/
11384
	*/
11385
	public static function dataTableSelect(&$conf){
11385
	public static function dataTableSelect(&$conf){
11386
 
11386
 
11387
		#初始化要回傳的變數
11387
		#初始化要回傳的變數
11388
		$result=array();
11388
		$result=array();
11389
		
11389
 
11390
		#取得當前執行的函數名稱
11390
		#取得當前執行的函數名稱
11391
		$result["function"]=__FUNCTION__;
11391
		$result["function"]=__FUNCTION__;
11392
		
11392
 
11393
		#如果 $conf 不為陣列
11393
		#如果 $conf 不為陣列
11394
		if(gettype($conf)!="array"){
11394
		if(gettype($conf)!="array"){
11395
			
11395
 
11396
			#設置執行失敗
11396
			#設置執行失敗
11397
			$result["status"]="false";
11397
			$result["status"]="false";
11398
			
11398
 
11399
			#設置執行錯誤訊息
11399
			#設置執行錯誤訊息
11400
			$result["error"][]="\$conf變數須為陣列形態";
11400
			$result["error"][]="\$conf變數須為陣列形態";
11401
 
11401
 
11402
			#如果傳入的參數為 null
11402
			#如果傳入的參數為 null
11403
			if($conf==null){
11403
			if($conf==null){
11404
				
11404
 
11405
				#設置執行錯誤訊息
11405
				#設置執行錯誤訊息
11406
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
11406
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
11407
				
11407
 
11408
				}#if end
11408
				}#if end
11409
 
11409
 
11410
			#回傳結果
11410
			#回傳結果
11411
			return $result;
11411
			return $result;
11412
			
11412
 
11413
			}#if end
11413
			}#if end
11414
		
11414
 
11415
		#檢查參數
11415
		#檢查參數
11416
		#函式說明:
11416
		#函式說明:
11417
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
11417
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
11418
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
11418
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
11419
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
11419
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 11428... Line 11428...
11428
		#必填參數:
11428
		#必填參數:
11429
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
11429
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
11430
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
11430
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
11431
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
11431
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
11432
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");
11432
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");
11433
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
11433
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
11434
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
11434
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
11435
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
11435
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
11436
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
11436
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
11437
		#可省略參數:
11437
		#可省略參數:
11438
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
11438
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
11439
		#$conf["canBeEmptyString"]="false";
11439
		#$conf["canBeEmptyString"]="false";
11440
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
11440
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
11441
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnCombine","WhereColumnName","WhereColumnOperator","WhereColumnValue","WhereColumnAndOr","orderItem","ascORdesc","numberStart","number","groupBy","whereIn","whereNotIn");
11441
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnCombine","WhereColumnName","WhereColumnOperator","WhereColumnValue","WhereColumnAndOr","orderItem","ascORdesc","numberStart","number","groupBy","whereIn","whereNotIn");
11442
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
11442
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
11443
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array","array","array","array","string","string","string","string","array","array","array");
11443
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array","array","array","array","string","string","string","string","array","array","array");
11444
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
11444
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
11445
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,"0",null,null,null,null);
11445
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,"0",null,null,null,null);
11446
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
11446
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
11447
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnName","WhereColumnValue");
11447
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnName","WhereColumnValue");
11448
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnValue","WhereColumnOperator");
11448
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnValue","WhereColumnOperator");
11449
		#參考資料:
11449
		#參考資料:
11450
		#array_keys=>http://php.net/manual/en/function.array-keys.php
11450
		#array_keys=>http://php.net/manual/en/function.array-keys.php
11451
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
11451
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
11452
		unset($conf["variableCheck::checkArguments"]);
11452
		unset($conf["variableCheck::checkArguments"]);
11453
		
11453
 
11454
		#如果檢查失敗
11454
		#如果檢查失敗
11455
		if($checkResult["status"]==="false"){
11455
		if($checkResult["status"]==="false"){
11456
			
11456
 
11457
			#設置執行失敗的訊息
11457
			#設置執行失敗的訊息
11458
			$result["status"]="false";
11458
			$result["status"]="false";
11459
			
11459
 
11460
			#設置錯誤訊息
11460
			#設置錯誤訊息
11461
			$result["error"]=$checkResult;
11461
			$result["error"]=$checkResult;
11462
			
11462
 
11463
			#回傳結果
11463
			#回傳結果
11464
			return $result;
11464
			return $result;
11465
			
11465
 
11466
			}#if end
11466
			}#if end
11467
		
11467
 
11468
		#如果檢查不通過
11468
		#如果檢查不通過
11469
		if($checkResult["passed"]==="false"){
11469
		if($checkResult["passed"]==="false"){
11470
			
11470
 
11471
			#設置執行失敗的訊息
11471
			#設置執行失敗的訊息
11472
			$result["status"]="false";
11472
			$result["status"]="false";
11473
			
11473
 
11474
			#設置錯誤訊息
11474
			#設置錯誤訊息
11475
			$result["error"]=$checkResult;
11475
			$result["error"]=$checkResult;
11476
			
11476
 
11477
			#回傳結果
11477
			#回傳結果
11478
			return $result;
11478
			return $result;
11479
			
11479
 
11480
			}#if end
11480
			}#if end
11481
		
11481
 
11482
		#連線到資料庫
11482
		#連線到資料庫
11483
		#函式說明:
11483
		#函式說明:
11484
		#連線到資料庫,結果會回傳一個陣列
11484
		#連線到資料庫,結果會回傳一個陣列
11485
		#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
11485
		#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
11486
		#$result["connectInformation"],爲回傳的mysql連線資訊.
11486
		#$result["connectInformation"],爲回傳的mysql連線資訊.
Line 11490... Line 11490...
11490
		$conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
11490
		$conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
11491
		$conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
11491
		$conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
11492
		#$conf["dbName"],字串,爲要連的資料庫名稱
11492
		#$conf["dbName"],字串,爲要連的資料庫名稱
11493
		$conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
11493
		$conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
11494
		#可省略參數:
11494
		#可省略參數:
11495
		
11495
 
11496
		#如果 $conf["dbPassword"] 有設定
11496
		#如果 $conf["dbPassword"] 有設定
11497
		if(isset($conf["dbPassword"])){
11497
		if(isset($conf["dbPassword"])){
11498
			
11498
 
11499
			$conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11499
			$conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11500
			
11500
 
11501
			}#if end
11501
			}#if end
11502
			
11502
 
11503
		#如果 $conf["dbPort"] 有設定
11503
		#如果 $conf["dbPort"] 有設定
11504
		if(isset($conf["dbPort"])){
11504
		if(isset($conf["dbPort"])){
11505
			
11505
 
11506
			$conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11506
			$conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11507
			
11507
 
11508
			}#if end
11508
			}#if end
11509
	
11509
 
11510
		$con=db::dbConnect($conf["db"]["dbConnect"]);
11510
		$con=db::dbConnect($conf["db"]["dbConnect"]);
11511
		unset($conf["db"]);
11511
		unset($conf["db"]);
11512
 
11512
 
11513
		#如果連線到資料庫失敗
11513
		#如果連線到資料庫失敗
11514
		if($con["status"]==="false"){
11514
		if($con["status"]==="false"){
11515
			
11515
 
11516
			#設置執行失敗
11516
			#設置執行失敗
11517
			$result["status"]="false";
11517
			$result["status"]="false";
11518
			
11518
 
11519
			#設置執行錯誤訊息
11519
			#設置執行錯誤訊息
11520
			$result["error"]=$con;
11520
			$result["error"]=$con;
11521
			
11521
 
11522
			#回傳結果
11522
			#回傳結果
11523
			return $result;
11523
			return $result;
11524
			
11524
 
11525
			}#if end
11525
			}#if end
11526
			
11526
 
11527
		#var_dump($con);	
11527
		#var_dump($con);
11528
			
11528
 
11529
		#取得mysqli物件
11529
		#取得mysqli物件
11530
		$mysqli=$con["connectInformation"];
11530
		$mysqli=$con["connectInformation"];
11531
		
11531
 
11532
		#如果 $conf["WhereColumnAndOr"] 沒有設定,但是有指定判斷條件的欄位
11532
		#如果 $conf["WhereColumnAndOr"] 沒有設定,但是有指定判斷條件的欄位
11533
		if(!isset($conf["WhereColumnAndOr"])  && isset($conf["WhereColumnName"])){
11533
		if(!isset($conf["WhereColumnAndOr"])  && isset($conf["WhereColumnName"])){
11534
 
11534
 
11535
			#則$conf["WhereColumnAndOr"]爲有 count($conf["WhereColumnName"])-1 個 "AND" 的字串陣列
11535
			#則$conf["WhereColumnAndOr"]爲有 count($conf["WhereColumnName"])-1 個 "AND" 的字串陣列
11536
			for($i=0;$i<(count($conf["WhereColumnName"])-1);$i++){
11536
			for($i=0;$i<(count($conf["WhereColumnName"])-1);$i++){
11537
 
11537
 
11538
				$conf["WhereColumnAndOr"][$i]="AND";
11538
				$conf["WhereColumnAndOr"][$i]="AND";
11539
 
11539
 
11540
				}#for end
11540
				}#for end
11541
	
11541
 
11542
			}#if end
11542
			}#if end
11543
 
11543
 
11544
		#如果 $conf["WhereColumnCombine"] 沒有設定,但是有指定判斷條件的欄位
11544
		#如果 $conf["WhereColumnCombine"] 沒有設定,但是有指定判斷條件的欄位
11545
		if(!isset($conf["WhereColumnCombine"])  && isset($conf["WhereColumnName"])){
11545
		if(!isset($conf["WhereColumnCombine"])  && isset($conf["WhereColumnName"])){
11546
 
11546
 
Line 11548... Line 11548...
11548
			for($i=0;$i<count($conf["WhereColumnName"]);$i++){
11548
			for($i=0;$i<count($conf["WhereColumnName"]);$i++){
11549
 
11549
 
11550
				$conf["WhereColumnCombine"][$i]="";
11550
				$conf["WhereColumnCombine"][$i]="";
11551
 
11551
 
11552
				}#for end
11552
				}#for end
11553
		
11553
 
11554
			}#if end
11554
			}#if end
11555
 
11555
 
11556
		#如果 $conf["WhereColumnOperator"] 沒有設定,但是有設定判斷條件的欄位
11556
		#如果 $conf["WhereColumnOperator"] 沒有設定,但是有設定判斷條件的欄位
11557
		if(!isset($conf["WhereColumnOperator"]) && isset($conf["WhereColumnName"])){
11557
		if(!isset($conf["WhereColumnOperator"]) && isset($conf["WhereColumnName"])){
11558
 
11558
 
Line 11565... Line 11565...
11565
 
11565
 
11566
			}#if end
11566
			}#if end
11567
 
11567
 
11568
		#如果 $conf"ascORdesc"] 沒有設定,則不指定遞增或遞減排序
11568
		#如果 $conf"ascORdesc"] 沒有設定,則不指定遞增或遞減排序
11569
		if(!isset($conf["ascORdesc"])){
11569
		if(!isset($conf["ascORdesc"])){
11570
	
11570
 
11571
			#排序變數爲空字串
11571
			#排序變數爲空字串
11572
			$conf["ascORdesc"]="";
11572
			$conf["ascORdesc"]="";
11573
 
11573
 
11574
			}#if end
11574
			}#if end
11575
 
11575
 
Line 11577... Line 11577...
11577
		if(!isset($conf["number"])){
11577
		if(!isset($conf["number"])){
11578
 
11578
 
11579
			#限定筆數爲空字串
11579
			#限定筆數爲空字串
11580
			$queryStringLimit = "";
11580
			$queryStringLimit = "";
11581
 
11581
 
11582
			}#if end 
11582
			}#if end
11583
 
11583
 
11584
		#如果 $conf["number"] 不爲空,則限定要取出幾筆
11584
		#如果 $conf["number"] 不爲空,則限定要取出幾筆
11585
		else{
11585
		else{
11586
			
11586
 
11587
			#如果 $conf["numberStart"] 有設定
11587
			#如果 $conf["numberStart"] 有設定
11588
			if(isset($conf["numberStart"])){
11588
			if(isset($conf["numberStart"])){
11589
				
11589
 
11590
				$queryStringLimit  = " LIMIT ".$conf["numberStart"]." , ".$conf["number"]." ";
11590
				$queryStringLimit  = " LIMIT ".$conf["numberStart"]." , ".$conf["number"]." ";
11591
				
11591
 
11592
				}#if end
11592
				}#if end
11593
				
11593
 
11594
			#反之 $conf["numberStart"] 沒有設定
11594
			#反之 $conf["numberStart"] 沒有設定
11595
			else{
11595
			else{
11596
			
11596
 
11597
				$queryStringLimit  = " LIMIT 0 , ".$conf["number"]." ";
11597
				$queryStringLimit  = " LIMIT 0 , ".$conf["number"]." ";
11598
 
11598
 
11599
				}#else end
11599
				}#else end
11600
 
11600
 
11601
			}#else end
11601
			}#else end
11602
 
11602
 
11603
		#如果存在 $conf["orderItem"] 
11603
		#如果存在 $conf["orderItem"]
11604
		if(isset($conf["orderItem"])){
11604
		if(isset($conf["orderItem"])){
11605
 
11605
 
11606
			#如果排序的依據是 rand() 或 RAND()
11606
			#如果排序的依據是 rand() 或 RAND()
11607
			if($conf["orderItem"] == "rand()" || $conf["orderItem"] == "RAND()"){
11607
			if($conf["orderItem"] == "rand()" || $conf["orderItem"] == "RAND()"){
11608
	
11608
 
11609
				# 依 $order 為排序依據,進行 隨機 排序
11609
				# 依 $order 為排序依據,進行 隨機 排序
11610
				$queryStringOrder  = " ORDER BY ".$conf["orderItem"]." ".$conf["ascORdesc"]." "; 			
11610
				$queryStringOrder  = " ORDER BY ".$conf["orderItem"]." ".$conf["ascORdesc"]." ";
11611
 
11611
 
11612
				}#if end
11612
				}#if end
11613
 
11613
 
11614
			#反之 $order 為排序依據
11614
			#反之 $order 為排序依據
11615
			else{
11615
			else{
11616
				
11616
 
11617
				#爲 acs 或 desc, 依 $order 為排序依據,進行 asc OR desc 排序
11617
				#爲 acs 或 desc, 依 $order 為排序依據,進行 asc OR desc 排序
11618
				$queryStringOrder  = " ORDER BY ".$conf["orderItem"]." ".$conf["ascORdesc"]." "; 
11618
				$queryStringOrder  = " ORDER BY ".$conf["orderItem"]." ".$conf["ascORdesc"]." ";
11619
 
11619
 
11620
				}#else end
11620
				}#else end
11621
 
11621
 
11622
			}#if end
11622
			}#if end
11623
			
11623
 
11624
		#反之 不存在
11624
		#反之 不存在
11625
		else{
11625
		else{
11626
			
11626
 
11627
			#預設為不指定
11627
			#預設為不指定
11628
			$queryStringOrder="";
11628
			$queryStringOrder="";
11629
			
11629
 
11630
			}#else end
11630
			}#else end
11631
 
11631
 
11632
		#如果有設定 $conf["WhereColumnName"] 參數
11632
		#如果有設定 $conf["WhereColumnName"] 參數
11633
		if(isset($conf["WhereColumnName"])){
11633
		if(isset($conf["WhereColumnName"])){
11634
 
11634
 
Line 11640... Line 11640...
11640
 
11640
 
11641
				#如果是左掛號
11641
				#如果是左掛號
11642
				if($conf["WhereColumnCombine"][$i]=="("){
11642
				if($conf["WhereColumnCombine"][$i]=="("){
11643
 
11643
 
11644
					$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnCombine"][$i]." ";
11644
					$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnCombine"][$i]." ";
11645
					
11645
 
11646
					}#if end
11646
					}#if end
11647
 
11647
 
11648
				#如果欄位數值不是字串,也不是NULL
11648
				#如果欄位數值不是字串,也不是NULL
11649
				if(gettype($conf["WhereColumnValue"][$i])!=="string" && $conf["WhereColumnValue"][$i]!==NULL){
11649
				if(gettype($conf["WhereColumnValue"][$i])!=="string" && $conf["WhereColumnValue"][$i]!==NULL){
11650
				
11650
 
11651
					#設置執行失敗
11651
					#設置執行失敗
11652
					$result["status"]="false";
11652
					$result["status"]="false";
11653
				
11653
 
11654
					#設置執行錯誤
11654
					#設置執行錯誤
11655
					$result["error"][]="WhereColumnValue 參數須為陣列字串";
11655
					$result["error"][]="WhereColumnValue 參數須為陣列字串";
11656
				
11656
 
11657
					#回傳結果
11657
					#回傳結果
11658
					return $result;
11658
					return $result;
11659
				
11659
 
11660
					}#if end
11660
					}#if end
11661
 
11661
 
11662
				#結合各個條件語句
11662
				#結合各個條件語句
11663
				$conf["whereCondition"]=$conf["whereCondition"]." `".$conf["WhereColumnName"][$i]."` ";
11663
				$conf["whereCondition"]=$conf["whereCondition"]." `".$conf["WhereColumnName"][$i]."` ";
11664
				$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnOperator"][$i]." ";
11664
				$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnOperator"][$i]." ";
11665
				$conf["whereCondition"]=$conf["whereCondition"]." '".mysqli_real_escape_string($mysqli,$conf["WhereColumnValue"][$i])."' ";
11665
				$conf["whereCondition"]=$conf["whereCondition"]." '".mysqli_real_escape_string($mysqli,$conf["WhereColumnValue"][$i])."' ";
11666
				
11666
 
11667
				#如果右掛號
11667
				#如果右掛號
11668
				if($conf["WhereColumnCombine"][$i]==")"){
11668
				if($conf["WhereColumnCombine"][$i]==")"){
11669
 
11669
 
11670
					$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnCombine"][$i]." ";
11670
					$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnCombine"][$i]." ";
11671
					
11671
 
11672
					}#if end
11672
					}#if end
11673
 
11673
 
11674
				#如果不是最後一筆項目,就放置AND or OR
11674
				#如果不是最後一筆項目,就放置AND or OR
11675
				if($i<count($conf["WhereColumnName"])-1){
11675
				if($i<count($conf["WhereColumnName"])-1){
11676
 
11676
 
11677
					$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnAndOr"][$i]." ";
11677
					$conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnAndOr"][$i]." ";
11678
					
-
 
11679
					}#if end	
-
 
11680
 
11678
 
-
 
11679
					}#if end
-
 
11680
 
11681
				}#for end					
11681
				}#for end
11682
			
11682
 
11683
			}#if end
11683
			}#if end
11684
 
11684
 
11685
		#反之,套件變數設爲空字串
11685
		#反之,套件變數設爲空字串
11686
		else{
11686
		else{
11687
 
11687
 
11688
			$conf["whereCondition"]="";
11688
			$conf["whereCondition"]="";
11689
 
11689
 
11690
			}#else end
11690
			}#else end
11691
		
11691
 
11692
		#初始化 where in 語句
11692
		#初始化 where in 語句
11693
		$whereIn=" ";
11693
		$whereIn=" ";
11694
 
11694
 
11695
		#如果 $conf["whereIn"] 存在
11695
		#如果 $conf["whereIn"] 存在
11696
		if(isset($conf["whereIn"])){
11696
		if(isset($conf["whereIn"])){
11697
						
11697
 
11698
			#如果 $conf["whereCondition"] 等於 空
11698
			#如果 $conf["whereCondition"] 等於 空
11699
			if($conf["whereCondition"]!==""){
11699
			if($conf["whereCondition"]!==""){
11700
				
11700
 
11701
				#先加上串接的 AND
11701
				#先加上串接的 AND
11702
				$whereIn=$whereIn."AND ";
11702
				$whereIn=$whereIn."AND ";
11703
				
11703
 
11704
				}#if end
11704
				}#if end
11705
				
11705
 
11706
			#反之為第一個where條件
11706
			#反之為第一個where條件
11707
			else{
11707
			else{
11708
				
11708
 
11709
				#設置where開頭
11709
				#設置where開頭
11710
				$whereIn=$whereIn."where ";
11710
				$whereIn=$whereIn."where ";
11711
				
11711
 
11712
				}#else end
11712
				}#else end
11713
			
11713
 
11714
			#針對每個要用 in 條件判斷的語句
11714
			#針對每個要用 in 條件判斷的語句
11715
			for($i=0;$i<count($conf["whereIn"]);$i++){
11715
			for($i=0;$i<count($conf["whereIn"]);$i++){
11716
				
11716
 
11717
				#取得要判斷的欄位
11717
				#取得要判斷的欄位
11718
				$col=$conf["whereIn"][$i][0];
11718
				$col=$conf["whereIn"][$i][0];
11719
				
11719
 
11720
				#加上 in 的開頭語句
11720
				#加上 in 的開頭語句
11721
				$whereIn=$whereIn."`".$col."` in(";
11721
				$whereIn=$whereIn."`".$col."` in(";
11722
				
11722
 
11723
				#針對每個 in 的值
11723
				#針對每個 in 的值
11724
				for($j=0;$j<count($conf["whereIn"][$i][1]);$j++){
11724
				for($j=0;$j<count($conf["whereIn"][$i][1]);$j++){
11725
					
11725
 
11726
					#串接條件
11726
					#串接條件
11727
					$whereIn=$whereIn."'".mysqli_real_escape_string($mysqli,$conf["whereIn"][$i][1][$j])."'";
11727
					$whereIn=$whereIn."'".mysqli_real_escape_string($mysqli,$conf["whereIn"][$i][1][$j])."'";
11728
					
11728
 
11729
					#如果不是最後一個條件
11729
					#如果不是最後一個條件
11730
					if($j!==count($conf["whereIn"][$i][1])-1){
11730
					if($j!==count($conf["whereIn"][$i][1])-1){
11731
						
11731
 
11732
						#後面還有條件
11732
						#後面還有條件
11733
						$whereIn=$whereIn.",";
11733
						$whereIn=$whereIn.",";
11734
						
11734
 
11735
						}#if end
11735
						}#if end
11736
						
11736
 
11737
					#反之是最後一個條件
11737
					#反之是最後一個條件
11738
					else{
11738
					else{
11739
						
11739
 
11740
						#後面沒有條件
11740
						#後面沒有條件
11741
						$whereIn=$whereIn.")";
11741
						$whereIn=$whereIn.")";
11742
						
11742
 
11743
						}#else end
11743
						}#else end
11744
					
11744
 
11745
					}#for end
11745
					}#for end
11746
				
11746
 
11747
				}#for end
11747
				}#for end
11748
				
11748
 
11749
			#如果沒有in的條件
11749
			#如果沒有in的條件
11750
			if($whereIn===" AND `".$col."` in(" OR $whereIn===" AND " OR $whereIn===" " OR $whereIn===" where "){
11750
			if($whereIn===" AND `".$col."` in(" OR $whereIn===" AND " OR $whereIn===" " OR $whereIn===" where "){
11751
				
11751
 
11752
				#設為 ""
11752
				#設為 ""
11753
				$whereIn="";
11753
				$whereIn="";
11754
				
11754
 
11755
				}#if end
11755
				}#if end
11756
			
11756
 
11757
			}#if end
11757
			}#if end
11758
		
11758
 
11759
		#串接 where in 語句
11759
		#串接 where in 語句
11760
		$conf["whereCondition"]=$conf["whereCondition"].$whereIn;
11760
		$conf["whereCondition"]=$conf["whereCondition"].$whereIn;
11761
			
11761
 
11762
		#初始化 where not in 語句
11762
		#初始化 where not in 語句
11763
		$whereNotIn=" ";	
11763
		$whereNotIn=" ";
11764
			
11764
 
11765
		#如果 $conf["whereNotIn"] 存在
11765
		#如果 $conf["whereNotIn"] 存在
11766
		if(isset($conf["whereNotIn"])){
11766
		if(isset($conf["whereNotIn"])){
11767
			
11767
 
11768
			#如果 $conf["whereCondition"] 等於 空
11768
			#如果 $conf["whereCondition"] 等於 空
11769
			if(str_replace(" ","",$conf["whereCondition"])!==""){
11769
			if(str_replace(" ","",$conf["whereCondition"])!==""){
11770
				
11770
 
11771
				#先加上串接的 AND
11771
				#先加上串接的 AND
11772
				$whereNotIn=$whereNotIn."AND ";
11772
				$whereNotIn=$whereNotIn."AND ";
11773
				
11773
 
11774
				}#if end
11774
				}#if end
11775
				
11775
 
11776
			#反之為第一個where條件
11776
			#反之為第一個where條件
11777
			else{
11777
			else{
11778
				
11778
 
11779
				#設置where開頭
11779
				#設置where開頭
11780
				$whereNotIn=$whereNotIn."where ";
11780
				$whereNotIn=$whereNotIn."where ";
11781
				
11781
 
11782
				}#else end
11782
				}#else end
11783
			
11783
 
11784
			#針對每個要用 in 條件判斷的語句
11784
			#針對每個要用 in 條件判斷的語句
11785
			for($i=0;$i<count($conf["whereNotIn"]);$i++){
11785
			for($i=0;$i<count($conf["whereNotIn"]);$i++){
11786
				
11786
 
11787
				#取得要判斷的欄位
11787
				#取得要判斷的欄位
11788
				$col=$conf["whereNotIn"][$i][0];
11788
				$col=$conf["whereNotIn"][$i][0];
11789
				
11789
 
11790
				#加上 in 的開頭語句
11790
				#加上 in 的開頭語句
11791
				$whereNotIn=$whereNotIn."`".$col."` not in(";
11791
				$whereNotIn=$whereNotIn."`".$col."` not in(";
11792
				
11792
 
11793
				#針對每個 in 的值
11793
				#針對每個 in 的值
11794
				for($j=0;$j<count($conf["whereNotIn"][$i][1]);$j++){
11794
				for($j=0;$j<count($conf["whereNotIn"][$i][1]);$j++){
11795
					
11795
 
11796
					#串接條件
11796
					#串接條件
11797
					$whereNotIn=$whereNotIn."'".mysqli_real_escape_string($mysqli,$conf["whereNotIn"][$i][1][$j])."'";
11797
					$whereNotIn=$whereNotIn."'".mysqli_real_escape_string($mysqli,$conf["whereNotIn"][$i][1][$j])."'";
11798
					
11798
 
11799
					#如果不是最後一個條件
11799
					#如果不是最後一個條件
11800
					if($j!==count($conf["whereNotIn"][$i][1])-1){
11800
					if($j!==count($conf["whereNotIn"][$i][1])-1){
11801
						
11801
 
11802
						#後面還有條件
11802
						#後面還有條件
11803
						$whereNotIn=$whereNotIn.",";
11803
						$whereNotIn=$whereNotIn.",";
11804
						
11804
 
11805
						}#if end
11805
						}#if end
11806
						
11806
 
11807
					#反之是最後一個條件
11807
					#反之是最後一個條件
11808
					else{
11808
					else{
11809
						
11809
 
11810
						#後面沒有條件
11810
						#後面沒有條件
11811
						$whereNotIn=$whereNotIn.")";
11811
						$whereNotIn=$whereNotIn.")";
11812
						
11812
 
11813
						}#else end
11813
						}#else end
11814
					
11814
 
11815
					}#for end
11815
					}#for end
11816
				
11816
 
11817
				}#for end
11817
				}#for end
11818
				
11818
 
11819
			#如果沒有in的條件
11819
			#如果沒有in的條件
11820
			if($whereNotIn===" AND `".$col."` not in(" OR $whereNotIn===" AND " OR $whereNotIn===" " OR $whereNotIn===" where "){
11820
			if($whereNotIn===" AND `".$col."` not in(" OR $whereNotIn===" AND " OR $whereNotIn===" " OR $whereNotIn===" where "){
11821
				
11821
 
11822
				#設為 ""
11822
				#設為 ""
11823
				$whereNotIn="";
11823
				$whereNotIn="";
11824
				
11824
 
11825
				}#if end
11825
				}#if end
11826
			
11826
 
11827
			}#if end
11827
			}#if end
11828
 
11828
 
11829
		#串接 where not in 語句
11829
		#串接 where not in 語句
11830
		$conf["whereCondition"]=$conf["whereCondition"].$whereNotIn;
11830
		$conf["whereCondition"]=$conf["whereCondition"].$whereNotIn;
11831
 
11831
 
Line 11835... Line 11835...
11835
			#初始化分類語句的字串
11835
			#初始化分類語句的字串
11836
			$groupByQueryStr="GROUP BY ";
11836
			$groupByQueryStr="GROUP BY ";
11837
 
11837
 
11838
			#設定要以哪些欄位爲分組的依據
11838
			#設定要以哪些欄位爲分組的依據
11839
			for($i=0;$i<count($conf["groupBy"]);$i++){
11839
			for($i=0;$i<count($conf["groupBy"]);$i++){
11840
				
11840
 
11841
				#如果不是最後一筆
11841
				#如果不是最後一筆
11842
				if($i!=count($conf["groupBy"])-1){
11842
				if($i!=count($conf["groupBy"])-1){
11843
				
11843
 
11844
					#語法裡面含有 , 代表還有其他欄位
11844
					#語法裡面含有 , 代表還有其他欄位
11845
					$groupByQueryStr=$groupByQueryStr." `".$conf["groupBy"][$i]."` , ";
11845
					$groupByQueryStr=$groupByQueryStr." `".$conf["groupBy"][$i]."` , ";
11846
				
11846
 
11847
					}#if end
11847
					}#if end
11848
				
11848
 
11849
				#反之是最後一筆資料
11849
				#反之是最後一筆資料
11850
				else{
11850
				else{
11851
					
11851
 
11852
					#語法結尾沒有 , 代表沒有其他欄位
11852
					#語法結尾沒有 , 代表沒有其他欄位
11853
					$groupByQueryStr=$groupByQueryStr." `".$conf["groupBy"][$i]."` ";
11853
					$groupByQueryStr=$groupByQueryStr." `".$conf["groupBy"][$i]."` ";
11854
					
11854
 
11855
					}#else end
11855
					}#else end
11856
				
11856
 
11857
				}#for end
11857
				}#for end
11858
				
11858
 
11859
			#取得分組的語法
11859
			#取得分組的語法
11860
			$conf["groupBy"]=$groupByQueryStr;
11860
			$conf["groupBy"]=$groupByQueryStr;
11861
				
11861
 
11862
			}#if end
11862
			}#if end
11863
 
11863
 
11864
		#如果 $conf["groupBy"] 沒有設定
11864
		#如果 $conf["groupBy"] 沒有設定
11865
		else{
11865
		else{
11866
 
11866
 
11867
			#則將其設爲空值
11867
			#則將其設爲空值
11868
			$conf["groupBy"]="";
11868
			$conf["groupBy"]="";
11869
	
11869
 
11870
			}#else end
11870
			}#else end
11871
			
11871
 
11872
		#要執行的sql語法
11872
		#要執行的sql語法
11873
		$result["sql"]=$queryStringFinal="SELECT * FROM `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` ".$conf["whereCondition"]." ".$conf["groupBy"]." ".$queryStringOrder.$queryStringLimit;
11873
		$result["sql"]=$queryStringFinal="SELECT * FROM `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` ".$conf["whereCondition"]." ".$conf["groupBy"]." ".$queryStringOrder.$queryStringLimit;
11874
 
11874
 
11875
		#執行 SQL 語法
11875
		#執行 SQL 語法
11876
		#函式說明:
11876
		#函式說明:
Line 11885... Line 11885...
11885
		#必填參數:
11885
		#必填參數:
11886
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
11886
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
11887
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
11887
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
11888
		$conf["db::execMysqlQuery"]["dbSql"]=$queryStringFinal;#要執行sql語法
11888
		$conf["db::execMysqlQuery"]["dbSql"]=$queryStringFinal;#要執行sql語法
11889
		#可省略參數:
11889
		#可省略參數:
11890
		
11890
 
11891
		#如果 $conf["dbPassword"] 有設定
11891
		#如果 $conf["dbPassword"] 有設定
11892
		if(isset($conf["dbPassword"])){
11892
		if(isset($conf["dbPassword"])){
11893
			
11893
 
11894
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11894
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
11895
			
11895
 
11896
			}#if end
11896
			}#if end
11897
			
11897
 
11898
		#如果 $conf["dbPort"] 有設定
11898
		#如果 $conf["dbPort"] 有設定
11899
		if(isset($conf["dbPort"])){
11899
		if(isset($conf["dbPort"])){
11900
			
11900
 
11901
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306.
11901
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306.
11902
			
11902
 
11903
			}#if end
11903
			}#if end
11904
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
11904
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
11905
		$conf["db::execMysqlQuery"]["dbLink"]=$mysqli;			
11905
		$conf["db::execMysqlQuery"]["dbLink"]=$mysqli;
11906
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
11906
		$execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
11907
		unset($conf["db::execMysqlQuery"]);
11907
		unset($conf["db::execMysqlQuery"]);
11908
		
11908
 
11909
		#如果執行錯誤
11909
		#如果執行錯誤
11910
		if($execMysqlQuery["status"]=="false"){
11910
		if($execMysqlQuery["status"]=="false"){
11911
			
11911
 
11912
			#設置執行錯誤的識別
11912
			#設置執行錯誤的識別
11913
			$result["status"]="false";
11913
			$result["status"]="false";
11914
			
11914
 
11915
			#設置錯誤訊息
11915
			#設置錯誤訊息
11916
			$result["error"]=$execMysqlQuery;
11916
			$result["error"]=$execMysqlQuery;
11917
			
11917
 
11918
			#回傳錯誤訊息
11918
			#回傳錯誤訊息
11919
			return $result;
11919
			return $result;
11920
			
11920
 
11921
			}#if end
11921
			}#if end
11922
 
11922
 
11923
		#取得查詢後的結果
11923
		#取得查詢後的結果
11924
		$result["sqlQueryResult"]=$execMysqlQuery["queryResource"];
11924
		$result["sqlQueryResult"]=$execMysqlQuery["queryResource"];
11925
 
11925
 
Line 11927... Line 11927...
11927
		$result["dataCount"]=mysqli_num_rows($execMysqlQuery["queryResource"]);
11927
		$result["dataCount"]=mysqli_num_rows($execMysqlQuery["queryResource"]);
11928
 
11928
 
11929
		#執行到這邊代表執行成功
11929
		#執行到這邊代表執行成功
11930
		$result["status"]="true";
11930
		$result["status"]="true";
11931
 
11931
 
11932
		#回傳查詢的結果;	
11932
		#回傳查詢的結果;
11933
		return $result;	
11933
		return $result;
11934
 
11934
 
11935
		}#end dataTableSelect
11935
		}#end dataTableSelect
11936
 
11936
 
11937
	/*
11937
	/*
11938
	#函式說明:
11938
	#函式說明:
Line 11974... Line 11974...
11974
		#取得當前執行的函數名稱
11974
		#取得當前執行的函數名稱
11975
		$result["function"]=__FUNCTION__;
11975
		$result["function"]=__FUNCTION__;
11976
 
11976
 
11977
		#如果 $conf 不為陣列
11977
		#如果 $conf 不為陣列
11978
		if(gettype($conf)!="array"){
11978
		if(gettype($conf)!="array"){
11979
			
11979
 
11980
			#設置執行失敗
11980
			#設置執行失敗
11981
			$result["status"]="false";
11981
			$result["status"]="false";
11982
			
11982
 
11983
			#設置執行錯誤訊息
11983
			#設置執行錯誤訊息
11984
			$result["error"][]="\$conf變數須為陣列形態";
11984
			$result["error"][]="\$conf變數須為陣列形態";
11985
 
11985
 
11986
			#如果傳入的參數為 null
11986
			#如果傳入的參數為 null
11987
			if($conf==null){
11987
			if($conf==null){
11988
				
11988
 
11989
				#設置執行錯誤訊息
11989
				#設置執行錯誤訊息
11990
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
11990
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
11991
				
11991
 
11992
				}#if end
11992
				}#if end
11993
 
11993
 
11994
			#回傳結果
11994
			#回傳結果
11995
			return $result;
11995
			return $result;
11996
			
11996
 
11997
			}#if end
11997
			}#if end
11998
 
11998
 
11999
		#檢查參數
11999
		#檢查參數
12000
		#函式說明:
12000
		#函式說明:
12001
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
12001
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 12012... Line 12012...
12012
		#必填參數:
12012
		#必填參數:
12013
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
12013
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
12014
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
12014
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
12015
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
12015
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
12016
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("sqlQueryResult","tableValueName");
12016
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("sqlQueryResult","tableValueName");
12017
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
12017
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
12018
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("object","array");
12018
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("object","array");
12019
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
12019
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
12020
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
12020
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
12021
		#可省略參數:
12021
		#可省略參數:
12022
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
12022
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
12023
		#$conf["canBeEmptyString"]="false";
12023
		#$conf["canBeEmptyString"]="false";
12024
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
12024
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
12025
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","valueName","dbAddress","dbAccount");
12025
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","valueName","dbAddress","dbAccount");
12026
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
12026
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
12027
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","string","string");
12027
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","string","string");
12028
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
12028
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
12029
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,"\$conf[\"tableValueName\"]",null,null);
12029
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,"\$conf[\"tableValueName\"]",null,null);
12030
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
12030
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
12031
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("valueName","tableValueName");
12031
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("valueName","tableValueName");
12032
		#參考資料:
12032
		#參考資料:
12033
		#array_keys=>http://php.net/manual/en/function.array-keys.php
12033
		#array_keys=>http://php.net/manual/en/function.array-keys.php
12034
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
12034
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
12035
		unset($conf["variableCheck::checkArguments"]);
12035
		unset($conf["variableCheck::checkArguments"]);
12036
		
12036
 
12037
		#如果檢查失敗
12037
		#如果檢查失敗
12038
		if($checkResult["status"]=="false"){
12038
		if($checkResult["status"]=="false"){
12039
			
12039
 
12040
			#設置執行失敗的訊息
12040
			#設置執行失敗的訊息
12041
			$result["status"]="false";
12041
			$result["status"]="false";
12042
			
12042
 
12043
			#設置錯誤訊息
12043
			#設置錯誤訊息
12044
			$result["error"]=$checkResult;
12044
			$result["error"]=$checkResult;
12045
			
12045
 
12046
			#回傳結果
12046
			#回傳結果
12047
			return $result;
12047
			return $result;
12048
			
12048
 
12049
			}#if end
12049
			}#if end
12050
		
12050
 
12051
		#如果檢查不通過
12051
		#如果檢查不通過
12052
		if($checkResult["passed"]=="false"){
12052
		if($checkResult["passed"]=="false"){
12053
			
12053
 
12054
			#設置執行失敗的訊息
12054
			#設置執行失敗的訊息
12055
			$result["status"]="false";
12055
			$result["status"]="false";
12056
			
12056
 
12057
			#設置錯誤訊息
12057
			#設置錯誤訊息
12058
			$result["error"]=$checkResult;
12058
			$result["error"]=$checkResult;
12059
			
12059
 
12060
			#回傳結果
12060
			#回傳結果
12061
			return $result;
12061
			return $result;
12062
			
12062
 
12063
			}#if end
12063
			}#if end
12064
	
12064
 
12065
		#給予初始值表示從0筆開始統計
12065
		#給予初始值表示從0筆開始統計
12066
		$dataSetNum=0;
12066
		$dataSetNum=0;
12067
 
12067
 
12068
		#取得資料表的欄位數量
12068
		#取得資料表的欄位數量
12069
		$columnCounts=count($conf["tableValueName"]);
12069
		$columnCounts=count($conf["tableValueName"]);
Line 12074... Line 12074...
12074
		#初始化儲存取得的欄位名稱陣列
12074
		#初始化儲存取得的欄位名稱陣列
12075
		$result["dataColumnName"]=array();
12075
		$result["dataColumnName"]=array();
12076
 
12076
 
12077
		#如果剛好只有一個元素
12077
		#如果剛好只有一個元素
12078
		if($columnCounts==1){
12078
		if($columnCounts==1){
12079
			
12079
 
12080
			#如果第一個元素為 "*"
12080
			#如果第一個元素為 "*"
12081
			if($conf["tableValueName"][0]=="*"){
12081
			if($conf["tableValueName"][0]=="*"){
12082
				
12082
 
12083
				#則代表要全部欄位均匯出.
12083
				#則代表要全部欄位均匯出.
12084
				$exportAll="true";
12084
				$exportAll="true";
12085
				
12085
 
12086
				#初始化計數的變數
12086
				#初始化計數的變數
12087
				$dataSetNum=0;
12087
				$dataSetNum=0;
12088
				
12088
 
12089
				#將讀取到的資料一次只讀取一列
12089
				#將讀取到的資料一次只讀取一列
12090
				while($row = mysqli_fetch_array($conf["sqlQueryResult"])){
12090
				while($row = mysqli_fetch_array($conf["sqlQueryResult"])){
12091
				
12091
 
12092
					#筆數加1
12092
					#筆數加1
12093
					$dataSetNum++;
12093
					$dataSetNum++;
12094
				
12094
 
12095
					#針對每個欄位
12095
					#針對每個欄位
12096
					foreach($row as $columnName => $columnValue){
12096
					foreach($row as $columnName => $columnValue){
12097
						
12097
 
12098
						#取得欄位的內容並用欄位名稱作為key
12098
						#取得欄位的內容並用欄位名稱作為key
12099
						$result["dataContent"][$columnName][]=$columnValue;
12099
						$result["dataContent"][$columnName][]=$columnValue;
12100
						
12100
 
12101
						#如果 $dataSetNum 等於 1
12101
						#如果 $dataSetNum 等於 1
12102
						#亦即第一筆資料
12102
						#亦即第一筆資料
12103
						if($dataSetNum==1 && gettype($columnName)!="integer"){
12103
						if($dataSetNum==1 && gettype($columnName)!="integer"){
12104
 
12104
 
12105
							#取得每個欄位名稱
12105
							#取得每個欄位名稱
12106
							$result["dataColumnName"][]=$columnName;
12106
							$result["dataColumnName"][]=$columnName;
12107
 
12107
 
12108
							}#if end
12108
							}#if end
12109
 
12109
 
12110
						}#foreach end
12110
						}#foreach end
12111
				
12111
 
12112
					}#while end
12112
					}#while end
12113
					
12113
 
12114
				#將資料筆數放進 $result["dataCount"] 裏面
12114
				#將資料筆數放進 $result["dataCount"] 裏面
12115
				$result["dataCount"]=$dataSetNum;
12115
				$result["dataCount"]=$dataSetNum;
12116
				
12116
 
12117
				}#if end
12117
				}#if end
12118
			
12118
 
12119
			}#if end
12119
			}#if end
12120
 
12120
 
12121
		#如果 $exportAll 等於 "fasle" 則代表要根據需求匯出指定的欄位.
12121
		#如果 $exportAll 等於 "fasle" 則代表要根據需求匯出指定的欄位.
12122
		if($exportAll=="false"){
12122
		if($exportAll=="false"){
12123
 
12123
 
12124
			#如果 $conf["valueName"] 沒有設置
12124
			#如果 $conf["valueName"] 沒有設置
12125
			if(!isset($conf["valueName"])){
12125
			if(!isset($conf["valueName"])){
12126
				
12126
 
12127
				#預設為 $conf["tableValueName"]
12127
				#預設為 $conf["tableValueName"]
12128
				$conf["valueName"]=$conf["tableValueName"];
12128
				$conf["valueName"]=$conf["tableValueName"];
12129
				
12129
 
12130
				}#if end
12130
				}#if end
12131
				
12131
 
12132
			#取得每個欄位名稱
12132
			#取得每個欄位名稱
12133
			$result["dataColumnName"]=$conf["tableValueName"];
12133
			$result["dataColumnName"]=$conf["tableValueName"];
12134
					
12134
 
12135
			#將讀取到的資料一次只讀取一列
12135
			#將讀取到的資料一次只讀取一列
12136
			while($row = mysqli_fetch_array($conf["sqlQueryResult"])){
12136
			while($row = mysqli_fetch_array($conf["sqlQueryResult"])){
12137
 
12137
 
12138
				#$i筆項列資料,則運行$i次。
12138
				#$i筆項列資料,則運行$i次。
12139
				for($i=0;$i<$columnCounts;$i++){
12139
				for($i=0;$i<$columnCounts;$i++){
12140
 
12140
 
12141
					#如果欄位不存在
12141
					#如果欄位不存在
12142
					if(!isset($row[$conf["tableValueName"][$i]])){
12142
					if(!isset($row[$conf["tableValueName"][$i]])){
12143
						
12143
 
12144
						#將解析的資料內容用空字串替代放進$result["dataContent"]變數裏面
12144
						#將解析的資料內容用空字串替代放進$result["dataContent"]變數裏面
12145
						$result["dataContent"][$conf["valueName"][$i]][$dataSetNum] = "";
12145
						$result["dataContent"][$conf["valueName"][$i]][$dataSetNum] = "";
12146
						
12146
 
12147
						}#if end
12147
						}#if end
12148
 
12148
 
12149
					#將解析的資料內容結果放進$result["dataContent"]變數裏面
12149
					#將解析的資料內容結果放進$result["dataContent"]變數裏面
12150
					$result["dataContent"][$conf["valueName"][$i]][$dataSetNum] = $row[$conf["tableValueName"][$i]];	
12150
					$result["dataContent"][$conf["valueName"][$i]][$dataSetNum] = $row[$conf["tableValueName"][$i]];
12151
					
12151
 
12152
					}#for end
12152
					}#for end
12153
 
12153
 
12154
				#資料筆數編號加1
12154
				#資料筆數編號加1
12155
				$dataSetNum++;	
12155
				$dataSetNum++;
12156
 
12156
 
12157
				}#while end
12157
				}#while end
12158
				
12158
 
12159
			#將資料筆數放進 $result["dataCount"] 裏面
12159
			#將資料筆數放進 $result["dataCount"] 裏面
12160
			$result["dataCount"]=$dataSetNum;
12160
			$result["dataCount"]=$dataSetNum;
12161
				
12161
 
12162
			}#if end
12162
			}#if end
12163
 
12163
 
12164
		#執行道這邊代表執行成功
12164
		#執行道這邊代表執行成功
12165
		$result["status"]="true";
12165
		$result["status"]="true";
12166
 
12166
 
Line 12229... Line 12229...
12229
	#無.
12229
	#無.
12230
	#備註:
12230
	#備註:
12231
	#無.
12231
	#無.
12232
	*/
12232
	*/
12233
	public static function fastGetDbData(&$conf){
12233
	public static function fastGetDbData(&$conf){
12234
		
12234
 
12235
		#初始化要回傳的內容
12235
		#初始化要回傳的內容
12236
		$result=array();
12236
		$result=array();
12237
 
12237
 
12238
		#取得當前執行的函數名稱
12238
		#取得當前執行的函數名稱
12239
		$result["function"]=__FUNCTION__;
12239
		$result["function"]=__FUNCTION__;
12240
 
12240
 
12241
		#如果 $conf 不為陣列
12241
		#如果 $conf 不為陣列
12242
		if(gettype($conf)!="array"){
12242
		if(gettype($conf)!="array"){
12243
			
12243
 
12244
			#設置執行失敗
12244
			#設置執行失敗
12245
			$result["status"]="false";
12245
			$result["status"]="false";
12246
			
12246
 
12247
			#設置執行錯誤訊息
12247
			#設置執行錯誤訊息
12248
			$result["error"][]="\$conf變數須為陣列形態";
12248
			$result["error"][]="\$conf變數須為陣列形態";
12249
 
12249
 
12250
			#如果傳入的參數為 null
12250
			#如果傳入的參數為 null
12251
			if($conf==null){
12251
			if($conf==null){
12252
				
12252
 
12253
				#設置執行錯誤訊息
12253
				#設置執行錯誤訊息
12254
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
12254
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
12255
				
12255
 
12256
				}#if end
12256
				}#if end
12257
 
12257
 
12258
			#回傳結果
12258
			#回傳結果
12259
			return $result;
12259
			return $result;
12260
			
12260
 
12261
			}#if end
12261
			}#if end
12262
		
12262
 
12263
		#取得使用的
12263
		#取得使用的
12264
		$result["argu"]=$conf;
12264
		$result["argu"]=$conf;
12265
		
12265
 
12266
		#檢查參數
12266
		#檢查參數
12267
		#函式說明:
12267
		#函式說明:
12268
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
12268
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
12269
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
12269
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
12270
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
12270
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 12279... Line 12279...
12279
		#必填參數:
12279
		#必填參數:
12280
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
12280
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
12281
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
12281
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
12282
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
12282
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
12283
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","tableName","columnYouWant");
12283
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","tableName","columnYouWant");
12284
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
12284
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
12285
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array");
12285
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array");
12286
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
12286
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
12287
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
12287
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
12288
		#可省略參數:
12288
		#可省略參數:
12289
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
12289
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
12290
		#$conf["canBeEmptyString"]="false";
12290
		#$conf["canBeEmptyString"]="false";
12291
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
12291
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
12292
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnName","WhereColumnValue","WhereColumnCombine","WhereColumnOperator","WhereColumnAndOr","orderItem","ascORdesc","numberStart","numLimit","groupBy","whereIn","whereNotIn");
12292
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnName","WhereColumnValue","WhereColumnCombine","WhereColumnOperator","WhereColumnAndOr","orderItem","ascORdesc","numberStart","numLimit","groupBy","whereIn","whereNotIn");
12293
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
12293
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
12294
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array","array","array","array","string","string","string","string","array","array","array");
12294
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array","array","array","array","string","string","string","string","array","array","array");
12295
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
12295
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
12296
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,"0",null,null,null,null);
12296
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,"0",null,null,null,null);
12297
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
12297
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
12298
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnName","WhereColumnValue");
12298
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnName","WhereColumnValue");
12299
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnValue","WhereColumnOperator");
12299
		$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnValue","WhereColumnOperator");
12300
		#參考資料:
12300
		#參考資料:
12301
		#array_keys=>http://php.net/manual/en/function.array-keys.php
12301
		#array_keys=>http://php.net/manual/en/function.array-keys.php
12302
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
12302
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
12303
		unset($conf["variableCheck::checkArguments"]);
12303
		unset($conf["variableCheck::checkArguments"]);
12304
		
12304
 
12305
		#如果檢查失敗
12305
		#如果檢查失敗
12306
		if($checkResult["status"]=="false"){
12306
		if($checkResult["status"]=="false"){
12307
			
12307
 
12308
			#設置執行失敗的訊息
12308
			#設置執行失敗的訊息
12309
			$result["status"]="false";
12309
			$result["status"]="false";
12310
			
12310
 
12311
			#設置錯誤訊息
12311
			#設置錯誤訊息
12312
			$result["error"]=$checkResult;
12312
			$result["error"]=$checkResult;
12313
			
12313
 
12314
			#回傳結果
12314
			#回傳結果
12315
			return $result;
12315
			return $result;
12316
			
12316
 
12317
			}#if end
12317
			}#if end
12318
		
12318
 
12319
		#如果檢查不通過
12319
		#如果檢查不通過
12320
		if($checkResult["passed"]=="false"){
12320
		if($checkResult["passed"]=="false"){
12321
			
12321
 
12322
			#設置執行失敗的訊息
12322
			#設置執行失敗的訊息
12323
			$result["status"]="false";
12323
			$result["status"]="false";
12324
			
12324
 
12325
			#設置錯誤訊息
12325
			#設置錯誤訊息
12326
			$result["error"]=$checkResult;
12326
			$result["error"]=$checkResult;
12327
			
12327
 
12328
			#回傳結果
12328
			#回傳結果
12329
			return $result;
12329
			return $result;
12330
			
12330
 
12331
			}#if end
12331
			}#if end
12332
 
12332
 
12333
		#初始化要檢查的欄位
12333
		#初始化要檢查的欄位
12334
		$colToCheck=array();
12334
		$colToCheck=array();
12335
 
12335
 
12336
		#如果有指定要的欄位
12336
		#如果有指定要的欄位
12337
		if($conf["columnYouWant"]!==array("*")){
12337
		if($conf["columnYouWant"]!==array("*")){
12338
			
12338
 
12339
			#針對每個欄位
12339
			#針對每個欄位
12340
			foreach($conf["columnYouWant"] as $col){
12340
			foreach($conf["columnYouWant"] as $col){
12341
				
12341
 
12342
				#取得欄位名稱
12342
				#取得欄位名稱
12343
				$colToCheck[]=$col;
12343
				$colToCheck[]=$col;
12344
				
12344
 
12345
				}#foreach end
12345
				}#foreach end
12346
			
12346
 
12347
			}#if end
12347
			}#if end
12348
			
12348
 
12349
		#如果有設置
12349
		#如果有設置
12350
		if(isset($conf["WhereColumnName"])){
12350
		if(isset($conf["WhereColumnName"])){
12351
			
12351
 
12352
			#針對每個欄位
12352
			#針對每個欄位
12353
			foreach($conf["WhereColumnName"] as $col){
12353
			foreach($conf["WhereColumnName"] as $col){
12354
				
12354
 
12355
				#取得欄位名稱
12355
				#取得欄位名稱
12356
				$colToCheck[]=$col;
12356
				$colToCheck[]=$col;
12357
				
12357
 
12358
				}#foreach end
12358
				}#foreach end
12359
			
12359
 
12360
			}#if end
12360
			}#if end
12361
		
12361
 
12362
		#如果有設置 $conf["whereIn"]
12362
		#如果有設置 $conf["whereIn"]
12363
		if(isset($conf["whereIn"])){
12363
		if(isset($conf["whereIn"])){
12364
			
12364
 
12365
			#針對每個 where in 條件
12365
			#針對每個 where in 條件
12366
			for($i=0;$i<count($conf["whereIn"]);$i++){
12366
			for($i=0;$i<count($conf["whereIn"]);$i++){
12367
				
12367
 
12368
				#取得欄位名稱
12368
				#取得欄位名稱
12369
				$colToCheck[]=$conf["whereIn"][$i][0];
12369
				$colToCheck[]=$conf["whereIn"][$i][0];
12370
				
12370
 
12371
				}#for end
12371
				}#for end
12372
			
12372
 
12373
			}#if end
12373
			}#if end
12374
			
12374
 
12375
		#如果要檢查的欄位不是空陣列
12375
		#如果要檢查的欄位不是空陣列
12376
		if($colToCheck!==array()){
12376
		if($colToCheck!==array()){
12377
			
12377
 
12378
			#檢查需要判斷資料表欄位是否存在
12378
			#檢查需要判斷資料表欄位是否存在
12379
			#函式說明:
12379
			#函式說明:
12380
			#檢查資料表的欄位是否存在
12380
			#檢查資料表的欄位是否存在
12381
			#回傳結果::
12381
			#回傳結果::
12382
			#設置執行錯誤的識別
12382
			#設置執行錯誤的識別
Line 12386... Line 12386...
12386
			#$result["warning"],警告訊息陣列
12386
			#$result["warning"],警告訊息陣列
12387
			#$result["passed"],是否通過檢查,"true"代表通過;"false"代表不通過.
12387
			#$result["passed"],是否通過檢查,"true"代表通過;"false"代表不通過.
12388
			#其餘的結果代表參數不正確
12388
			#其餘的結果代表參數不正確
12389
			#必填參數:
12389
			#必填參數:
12390
			#$conf["dbAddr"],字串,爲mysql-Server的位置
12390
			#$conf["dbAddr"],字串,爲mysql-Server的位置
12391
			$conf["db::checkTableColExists"]["dbAddr"]=$conf["dbAddress"]; 
12391
			$conf["db::checkTableColExists"]["dbAddr"]=$conf["dbAddress"];
12392
			#$conf["dbAcct"],字串,爲用於連入mysql-Server時要使用的帳號
12392
			#$conf["dbAcct"],字串,爲用於連入mysql-Server時要使用的帳號
12393
			$conf["db::checkTableColExists"]["dbAcct"]=$conf["dbAccount"];
12393
			$conf["db::checkTableColExists"]["dbAcct"]=$conf["dbAccount"];
12394
			#$conf["dbName"],字串,爲指定的資料庫名稱
12394
			#$conf["dbName"],字串,爲指定的資料庫名稱
12395
			$conf["db::checkTableColExists"]["dbName"]=$conf["dbName"];
12395
			$conf["db::checkTableColExists"]["dbName"]=$conf["dbName"];
12396
			#$conf["dtName"],字串,為要檢查是否存在的資料表名稱
12396
			#$conf["dtName"],字串,為要檢查是否存在的資料表名稱
12397
			$conf["db::checkTableColExists"]["dtName"]=$conf["tableName"];
12397
			$conf["db::checkTableColExists"]["dtName"]=$conf["tableName"];
12398
			#$conf["col"],字串陣列,要檢查的欄位名稱.
12398
			#$conf["col"],字串陣列,要檢查的欄位名稱.
12399
			$conf["db::checkTableColExists"]["col"]=array_unique($colToCheck);
12399
			$conf["db::checkTableColExists"]["col"]=array_unique($colToCheck);
12400
			#可省略參數
12400
			#可省略參數
12401
			
12401
 
12402
			#如果有設置 $conf["dbPassword"]
12402
			#如果有設置 $conf["dbPassword"]
12403
			if(isset($conf["dbPassword"])){
12403
			if(isset($conf["dbPassword"])){
12404
				
12404
 
12405
				#$conf["dbPass"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼 
12405
				#$conf["dbPass"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
12406
				$conf["db::checkTableColExists"]["dbPass"]=$conf["dbPassword"];
12406
				$conf["db::checkTableColExists"]["dbPass"]=$conf["dbPassword"];
12407
				
12407
 
12408
				}#if end
12408
				}#if end
12409
				
12409
 
12410
			#如果有設置 $conf["dbPort"]
12410
			#如果有設置 $conf["dbPort"]
12411
			if(isset($conf["dbPort"])){
12411
			if(isset($conf["dbPort"])){
12412
				
12412
 
12413
				#$conf["dbPort"],爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的port 3306 
12413
				#$conf["dbPort"],爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的port 3306
12414
				$conf["db::checkTableColExists"]["dbPort"]=$conf["dbPort"];
12414
				$conf["db::checkTableColExists"]["dbPort"]=$conf["dbPort"];
12415
				
12415
 
12416
				}#if end
12416
				}#if end
12417
			
12417
 
12418
			$checkTableColExists=db::checkTableColExists($conf["db::checkTableColExists"]);
12418
			$checkTableColExists=db::checkTableColExists($conf["db::checkTableColExists"]);
12419
			unset($conf["db::checkTableColExists"]);
12419
			unset($conf["db::checkTableColExists"]);
12420
			
12420
 
12421
			#如果檢查失敗
12421
			#如果檢查失敗
12422
			if($checkTableColExists["status"]==="false"){
12422
			if($checkTableColExists["status"]==="false"){
12423
				
12423
 
12424
				#設置執行失敗
12424
				#設置執行失敗
12425
				$result["status"]="false";
12425
				$result["status"]="false";
12426
				
12426
 
12427
				#設置執行錯誤訊息
12427
				#設置執行錯誤訊息
12428
				$result["error"]=$checkTableColExists;
12428
				$result["error"]=$checkTableColExists;
12429
				
12429
 
12430
				#回傳結果
12430
				#回傳結果
12431
				return $result;
12431
				return $result;
12432
				
12432
 
12433
				}#if end
12433
				}#if end
12434
				
12434
 
12435
			#如果檢查不通過
12435
			#如果檢查不通過
12436
			if($checkTableColExists["passed"]==="false"){
12436
			if($checkTableColExists["passed"]==="false"){
12437
				
12437
 
12438
				#設置執行失敗
12438
				#設置執行失敗
12439
				$result["status"]="false";
12439
				$result["status"]="false";
12440
				
12440
 
12441
				#設置執行錯誤訊息
12441
				#設置執行錯誤訊息
12442
				$result["error"]=$checkTableColExists;
12442
				$result["error"]=$checkTableColExists;
12443
				
12443
 
12444
				#回傳結果
12444
				#回傳結果
12445
				return $result;
12445
				return $result;
12446
				
12446
 
12447
				}#if end
12447
				}#if end
12448
			
12448
 
12449
			}#if end
12449
			}#if end
12450
		
12450
 
12451
		#函式說明:
12451
		#函式說明:
12452
		#dataTableSelectCustom的改良版
12452
		#dataTableSelectCustom的改良版
12453
		#回傳的參數:
12453
		#回傳的參數:
12454
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
12454
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
12455
		#$result["error"],錯誤訊息陣列。
12455
		#$result["error"],錯誤訊息陣列。
Line 12461... Line 12461...
12461
		$conf["db"]["dataTableSelectCustomV2"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
12461
		$conf["db"]["dataTableSelectCustomV2"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
12462
		$conf["db"]["dataTableSelectCustomV2"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
12462
		$conf["db"]["dataTableSelectCustomV2"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
12463
		$conf["db"]["dataTableSelectCustomV2"]["selectedDataBaseName"]=$conf["dbName"];#要選取的資料庫名稱	。
12463
		$conf["db"]["dataTableSelectCustomV2"]["selectedDataBaseName"]=$conf["dbName"];#要選取的資料庫名稱	。
12464
		$conf["db"]["dataTableSelectCustomV2"]["selectedDataTableName"]=$conf["tableName"];#爲欲選擇的資料表名稱。
12464
		$conf["db"]["dataTableSelectCustomV2"]["selectedDataTableName"]=$conf["tableName"];#爲欲選擇的資料表名稱。
12465
		#可省略參數:
12465
		#可省略參數:
12466
	
12466
 
12467
		#如果存在 $conf["dbPassword"]
12467
		#如果存在 $conf["dbPassword"]
12468
		if(isset($conf["dbPassword"])){
12468
		if(isset($conf["dbPassword"])){
12469
		
12469
 
12470
			#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
12470
			#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
12471
			$conf["db"]["dataTableSelectCustomV2"]["dbPassword"]=$conf["dbPassword"];
12471
			$conf["db"]["dataTableSelectCustomV2"]["dbPassword"]=$conf["dbPassword"];
12472
		
12472
 
12473
			}#if end
12473
			}#if end
12474
			
12474
 
12475
		#如果存在 $conf["dbPort"]
12475
		#如果存在 $conf["dbPort"]
12476
		if(isset($conf["dbPort"])){
12476
		if(isset($conf["dbPort"])){
12477
		
12477
 
12478
			#爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port
12478
			#爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port
12479
			$conf["db"]["dataTableSelectCustomV2"]["dbPort"]=$conf["dbPort"];
12479
			$conf["db"]["dataTableSelectCustomV2"]["dbPort"]=$conf["dbPort"];
12480
		
12480
 
12481
			}#if end
12481
			}#if end
12482
		
12482
 
12483
		#如果存在 $conf["WhereColumnCombine"]
12483
		#如果存在 $conf["WhereColumnCombine"]
12484
		if(isset($conf["WhereColumnCombine"])){
12484
		if(isset($conf["WhereColumnCombine"])){
12485
		
12485
 
12486
			#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
12486
			#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
12487
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnCombine"]=$conf["WhereColumnCombine"];
12487
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnCombine"]=$conf["WhereColumnCombine"];
12488
		
12488
 
12489
			}#if end
12489
			}#if end
12490
		
12490
 
12491
		#如果 $conf["WhereColumnName"] 存在
12491
		#如果 $conf["WhereColumnName"] 存在
12492
		if(isset($conf["WhereColumnName"])){
12492
		if(isset($conf["WhereColumnName"])){
12493
			
12493
 
12494
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
12494
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
12495
			
12495
 
12496
			}#if end	
12496
			}#if end
12497
			
12497
 
12498
		#如果存在 $conf["WhereColumnOperator"]
12498
		#如果存在 $conf["WhereColumnOperator"]
12499
		if(isset($conf["WhereColumnOperator"])){
12499
		if(isset($conf["WhereColumnOperator"])){
12500
		
12500
 
12501
			#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
12501
			#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
12502
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnOperator"]=$conf["WhereColumnOperator"];
12502
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnOperator"]=$conf["WhereColumnOperator"];
12503
		
12503
 
12504
			}#if end
12504
			}#if end
12505
		
12505
 
12506
		#如果 $conf["WhereColumnValue"] 有設置
12506
		#如果 $conf["WhereColumnValue"] 有設置
12507
		if(isset($conf["WhereColumnValue"])){
12507
		if(isset($conf["WhereColumnValue"])){
12508
		
12508
 
12509
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
12509
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
12510
		
12510
 
12511
			}#if end
12511
			}#if end
12512
		
12512
 
12513
		#如果 $conf["WhereColumnAndOr"] 存在
12513
		#如果 $conf["WhereColumnAndOr"] 存在
12514
		if(isset($conf["WhereColumnAndOr"])){
12514
		if(isset($conf["WhereColumnAndOr"])){
12515
			
12515
 
12516
			#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
12516
			#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
12517
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnAndOr"]=$conf["WhereColumnAndOr"];
12517
			$conf["db"]["dataTableSelectCustomV2"]["WhereColumnAndOr"]=$conf["WhereColumnAndOr"];
12518
			
12518
 
12519
			}#if end
12519
			}#if end
12520
			
12520
 
12521
		#如果 $conf["orderItem"] 存在
12521
		#如果 $conf["orderItem"] 存在
12522
		if(isset($conf["orderItem"])){
12522
		if(isset($conf["orderItem"])){
12523
			
12523
 
12524
			#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
12524
			#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
12525
			$conf["db"]["dataTableSelectCustomV2"]["orderItem"]=$conf["orderItem"];
12525
			$conf["db"]["dataTableSelectCustomV2"]["orderItem"]=$conf["orderItem"];
12526
			
12526
 
12527
			}#if end
12527
			}#if end
12528
		
12528
 
12529
		#如果 $conf["ascORdesc"] 存在
12529
		#如果 $conf["ascORdesc"] 存在
12530
		if(isset($conf["ascORdesc"])){
12530
		if(isset($conf["ascORdesc"])){
12531
			
12531
 
12532
			#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
12532
			#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
12533
			$conf["db"]["dataTableSelectCustomV2"]["ascORdesc"]=$conf["ascORdesc"];
12533
			$conf["db"]["dataTableSelectCustomV2"]["ascORdesc"]=$conf["ascORdesc"];
12534
			
12534
 
12535
			}#if end
12535
			}#if end
12536
		
12536
 
12537
		#如果 $conf["numberStart"] 存在
12537
		#如果 $conf["numberStart"] 存在
12538
		if(isset($conf["numberStart"])){
12538
		if(isset($conf["numberStart"])){
12539
			
12539
 
12540
			$conf["db"]["dataTableSelectCustomV2"]["numberStart"]=$conf["numberStart"];
12540
			$conf["db"]["dataTableSelectCustomV2"]["numberStart"]=$conf["numberStart"];
12541
			
12541
 
12542
			}#if end
12542
			}#if end
12543
		
12543
 
12544
		#如果 $conf["numLimit"] 存在
12544
		#如果 $conf["numLimit"] 存在
12545
		if(isset($conf["numLimit"])){
12545
		if(isset($conf["numLimit"])){
12546
			
12546
 
12547
			#為要取幾筆資料,可以省略,省略則表示不限制數目。
12547
			#為要取幾筆資料,可以省略,省略則表示不限制數目。
12548
			$conf["db"]["dataTableSelectCustomV2"]["number"]=$conf["numLimit"];
12548
			$conf["db"]["dataTableSelectCustomV2"]["number"]=$conf["numLimit"];
12549
			
12549
 
12550
			}#if end
12550
			}#if end
12551
		
12551
 
12552
		#如果 $conf["groupBy"] 存在
12552
		#如果 $conf["groupBy"] 存在
12553
		if(isset($conf["groupBy"])){
12553
		if(isset($conf["groupBy"])){
12554
			
12554
 
12555
			#爲要以那個欄爲作爲分羣的依據(該欄位相同的數值僅會取出一筆)。
12555
			#爲要以那個欄爲作爲分羣的依據(該欄位相同的數值僅會取出一筆)。
12556
			$conf["db"]["dataTableSelectCustomV2"]["groupBy"]=$conf["groupBy"];
12556
			$conf["db"]["dataTableSelectCustomV2"]["groupBy"]=$conf["groupBy"];
12557
			
12557
 
12558
			}#if end
12558
			}#if end
12559
			
12559
 
12560
		#如果 $conf["whereIn"] 存在
12560
		#如果 $conf["whereIn"] 存在
12561
		if(isset($conf["whereIn"])){
12561
		if(isset($conf["whereIn"])){
12562
					
12562
 
12563
			#where in 條件		
12563
			#where in 條件
12564
			$conf["db"]["dataTableSelectCustomV2"]["whereIn"]=$conf["whereIn"];
12564
			$conf["db"]["dataTableSelectCustomV2"]["whereIn"]=$conf["whereIn"];
12565
			
12565
 
12566
			}#if end
12566
			}#if end
12567
			
12567
 
12568
		#如果 $conf["whereNotIn"] 存在
12568
		#如果 $conf["whereNotIn"] 存在
12569
		if(isset($conf["whereNotIn"])){
12569
		if(isset($conf["whereNotIn"])){
12570
			
12570
 
12571
			#where not in 條件
12571
			#where not in 條件
12572
			$conf["db"]["dataTableSelectCustomV2"]["whereNotIn"]=$conf["whereNotIn"];
12572
			$conf["db"]["dataTableSelectCustomV2"]["whereNotIn"]=$conf["whereNotIn"];
12573
			
12573
 
12574
			}#if end
12574
			}#if end
12575
		
12575
 
12576
		$dataTableSelectCustomV2=db::dataTableSelect($conf["db"]["dataTableSelectCustomV2"]);
12576
		$dataTableSelectCustomV2=db::dataTableSelect($conf["db"]["dataTableSelectCustomV2"]);
12577
		unset($conf["db"]);
12577
		unset($conf["db"]);
12578
		
12578
 
12579
		#如果sql查詢失敗
12579
		#如果sql查詢失敗
12580
		#如果 $dataTableSelectCustomV2["status"] 等於 "false"
12580
		#如果 $dataTableSelectCustomV2["status"] 等於 "false"
12581
		if($dataTableSelectCustomV2["status"]=="false"){
12581
		if($dataTableSelectCustomV2["status"]=="false"){
12582
			
12582
 
12583
			#則設置執行錯誤的識別
12583
			#則設置執行錯誤的識別
12584
			$result["status"]="false";
12584
			$result["status"]="false";
12585
			
12585
 
12586
			#設置錯誤訊息
12586
			#設置錯誤訊息
12587
			$result["error"]=$dataTableSelectCustomV2;
12587
			$result["error"]=$dataTableSelectCustomV2;
12588
			
12588
 
12589
			#回傳結果
12589
			#回傳結果
12590
			return $result;
12590
			return $result;
12591
			
12591
 
12592
			}#if end
12592
			}#if end
12593
		
12593
 
12594
		#取得執行的sql字串
12594
		#取得執行的sql字串
12595
		$result["sql"]=$dataTableSelectCustomV2["sql"];
12595
		$result["sql"]=$dataTableSelectCustomV2["sql"];
12596
		
12596
 
12597
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
12597
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
12598
		#回傳結果:
12598
		#回傳結果:
12599
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
12599
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
12600
		#$result["error"],錯誤訊息陣列。
12600
		#$result["error"],錯誤訊息陣列。
12601
		#$result["dataColumnName"],為資料欄位的名稱陣列.
12601
		#$result["dataColumnName"],為資料欄位的名稱陣列.
Line 12610... Line 12610...
12610
		$conf["db"]["sendQueryDataToVariabele"]["tableValueName"]=$conf["columnYouWant"];#$conf["tableValueName"]=array();#爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
12610
		$conf["db"]["sendQueryDataToVariabele"]["tableValueName"]=$conf["columnYouWant"];#$conf["tableValueName"]=array();#爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
12611
		$conf["db"]["sendQueryDataToVariabele"]["valueName"]=$conf["columnYouWant"];#爲該資料表列項目的每一項所要對應的變數名稱,須爲陣列值。
12611
		$conf["db"]["sendQueryDataToVariabele"]["valueName"]=$conf["columnYouWant"];#爲該資料表列項目的每一項所要對應的變數名稱,須爲陣列值。
12612
		$conf["db"]["sendQueryDataToVariabele"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
12612
		$conf["db"]["sendQueryDataToVariabele"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
12613
		$conf["db"]["sendQueryDataToVariabele"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
12613
		$conf["db"]["sendQueryDataToVariabele"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
12614
		#可省略參數:
12614
		#可省略參數:
12615
		
12615
 
12616
		#如果存在 $conf["dbPassword"]
12616
		#如果存在 $conf["dbPassword"]
12617
		if(isset($conf["dbPassword"])){
12617
		if(isset($conf["dbPassword"])){
12618
		
12618
 
12619
			#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
12619
			#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
12620
			$conf["db"]["sendQueryDataToVariabele"]["dbPassword"]=$conf["dbPassword"];
12620
			$conf["db"]["sendQueryDataToVariabele"]["dbPassword"]=$conf["dbPassword"];
12621
		
12621
 
12622
			}#if end
12622
			}#if end
12623
			
12623
 
12624
		#如果存在 $conf["dbPort"]
12624
		#如果存在 $conf["dbPort"]
12625
		if(isset($conf["dbPort"])){
12625
		if(isset($conf["dbPort"])){
12626
		
12626
 
12627
			#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表使用預設 port 3306
12627
			#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表使用預設 port 3306
12628
			$conf["db"]["sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];
12628
			$conf["db"]["sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];
12629
		
12629
 
12630
			}#if end
12630
			}#if end
12631
		
12631
 
12632
		$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db"]["sendQueryDataToVariabele"]);
12632
		$sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db"]["sendQueryDataToVariabele"]);
12633
		unset($conf["db"]);
12633
		unset($conf["db"]);
12634
		
12634
 
12635
		#如果 $sendQueryDataToVariabele["status"] 等於 "false"
12635
		#如果 $sendQueryDataToVariabele["status"] 等於 "false"
12636
		if($sendQueryDataToVariabele["status"]=="false"){
12636
		if($sendQueryDataToVariabele["status"]=="false"){
12637
			
12637
 
12638
			#設置執行錯誤的識別
12638
			#設置執行錯誤的識別
12639
			$result["status"]="false";
12639
			$result["status"]="false";
12640
			
12640
 
12641
			#設置錯誤訊息
12641
			#設置錯誤訊息
12642
			$result["error"]=$sendQueryDataToVariabele;
12642
			$result["error"]=$sendQueryDataToVariabele;
12643
			
12643
 
12644
			#回傳結果
12644
			#回傳結果
12645
			return $result;
12645
			return $result;
12646
			
12646
 
12647
			}#if end
12647
			}#if end
12648
		
12648
 
12649
		#如果 $sendQueryDataToVariabele["dataContent"] 沒有設置
12649
		#如果 $sendQueryDataToVariabele["dataContent"] 沒有設置
12650
		if(!isset($sendQueryDataToVariabele["dataContent"])){
12650
		if(!isset($sendQueryDataToVariabele["dataContent"])){
12651
		
12651
 
12652
			#那就代表沒有找到符合的資料
12652
			#那就代表沒有找到符合的資料
12653
			$sendQueryDataToVariabele["dataContent"]=NULL;
12653
			$sendQueryDataToVariabele["dataContent"]=NULL;
12654
		
12654
 
12655
			#取得抓取到的資料內容
12655
			#取得抓取到的資料內容
12656
			$result["dataContent"]=$sendQueryDataToVariabele["dataContent"];
12656
			$result["dataContent"]=$sendQueryDataToVariabele["dataContent"];
12657
		
12657
 
12658
			}#if end
12658
			}#if end
12659
			
12659
 
12660
		#反之代表有資料
12660
		#反之代表有資料
12661
		else{
12661
		else{
12662
			
12662
 
12663
			#取得抓取到的資料內容
12663
			#取得抓取到的資料內容
12664
			$result["dataContent"]=$sendQueryDataToVariabele["dataContent"];
12664
			$result["dataContent"]=$sendQueryDataToVariabele["dataContent"];
12665
			
12665
 
12666
			#抓取欄位名稱
12666
			#抓取欄位名稱
12667
			$result["dataColumnName"]=$sendQueryDataToVariabele["dataColumnName"];
12667
			$result["dataColumnName"]=$sendQueryDataToVariabele["dataColumnName"];
12668
			
12668
 
12669
			}#else end
12669
			}#else end
12670
		
12670
 
12671
		#如果 $sendQueryDataToVariabele["dataCount"] 沒有設定
12671
		#如果 $sendQueryDataToVariabele["dataCount"] 沒有設定
12672
		if(!isset($sendQueryDataToVariabele["dataCount"])){
12672
		if(!isset($sendQueryDataToVariabele["dataCount"])){
12673
			
12673
 
12674
			#則代表沒有抓到符合的資料
12674
			#則代表沒有抓到符合的資料
12675
			(int)$sendQueryDataToVariabele["dataCount"]=0;
12675
			(int)$sendQueryDataToVariabele["dataCount"]=0;
12676
			
12676
 
12677
			#取得資料筆數
12677
			#取得資料筆數
12678
			$result["dataCount"]=$sendQueryDataToVariabele["dataCount"];
12678
			$result["dataCount"]=$sendQueryDataToVariabele["dataCount"];
12679
			
12679
 
12680
			}#if end
12680
			}#if end
12681
		
12681
 
12682
		#反之代表有符合的資料
12682
		#反之代表有符合的資料
12683
		else{
12683
		else{
12684
		
12684
 
12685
			#取得抓取到的資料筆數
12685
			#取得抓取到的資料筆數
12686
			$result["dataCount"]=$sendQueryDataToVariabele["dataCount"];
12686
			$result["dataCount"]=$sendQueryDataToVariabele["dataCount"];
12687
		
12687
 
12688
			}#else end
12688
			}#else end
12689
								
12689
 
12690
		#執行到這邊表示執行成功
12690
		#執行到這邊表示執行成功
12691
		$result["status"]="true";
12691
		$result["status"]="true";
12692
		
12692
 
12693
		#回傳結果
12693
		#回傳結果
12694
		return $result;
12694
		return $result;
12695
		
12695
 
12696
		}#function fastGetDbData end
12696
		}#function fastGetDbData end
12697
	 
12697
 
12698
	/*
12698
	/*
12699
	#函式說明:
12699
	#函式說明:
12700
	#透過一個父資料表取得多個關聯子資料表的資料,並合併成一張表
12700
	#透過一個父資料表取得多個關聯子資料表的資料,並合併成一張表
12701
	#回傳結果:
12701
	#回傳結果:
12702
	#$result["status"],執行結果"true"為成功;"false"為執行失敗。
12702
	#$result["status"],執行結果"true"為成功;"false"為執行失敗。
Line 12727... Line 12727...
12727
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
12727
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
12728
	#$conf["dbPort"]="";
12728
	#$conf["dbPort"]="";
12729
	#$conf["WhereColumnName"],字串陣列,用於判斷語句的欄位項目陣列。
12729
	#$conf["WhereColumnName"],字串陣列,用於判斷語句的欄位項目陣列。
12730
	#$conf["WhereColumnName"]=array("");
12730
	#$conf["WhereColumnName"]=array("");
12731
	#$conf["WhereColumnValue"],字串陣列,用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
12731
	#$conf["WhereColumnValue"],字串陣列,用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
12732
	#$conf["WhereColumnValue"]=array("");	
12732
	#$conf["WhereColumnValue"]=array("");
12733
	#$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
12733
	#$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
12734
	#$conf["WhereColumnCombine"]=array("");
12734
	#$conf["WhereColumnCombine"]=array("");
12735
	#$conf["WhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
12735
	#$conf["WhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
12736
	#$conf["WhereColumnOperator"]=array("");
12736
	#$conf["WhereColumnOperator"]=array("");
12737
	#$conf["WhereColumnAndOr"],字串陣列,用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
12737
	#$conf["WhereColumnAndOr"],字串陣列,用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
Line 12754... Line 12754...
12754
	#無.
12754
	#無.
12755
	#備註:
12755
	#備註:
12756
	#無.
12756
	#無.
12757
	*/
12757
	*/
12758
	public static function fastGetMultiLinkedDbData(&$conf){
12758
	public static function fastGetMultiLinkedDbData(&$conf){
12759
		
12759
 
12760
		#初始化要回傳的內容
12760
		#初始化要回傳的內容
12761
		$result=array();
12761
		$result=array();
12762
 
12762
 
12763
		#取得當前執行的函數名稱
12763
		#取得當前執行的函數名稱
12764
		$result["function"]=__FUNCTION__;
12764
		$result["function"]=__FUNCTION__;
12765
 
12765
 
12766
		#如果 $conf 不為陣列
12766
		#如果 $conf 不為陣列
12767
		if(gettype($conf)!="array"){
12767
		if(gettype($conf)!="array"){
12768
			
12768
 
12769
			#設置執行失敗
12769
			#設置執行失敗
12770
			$result["status"]="false";
12770
			$result["status"]="false";
12771
			
12771
 
12772
			#設置執行錯誤訊息
12772
			#設置執行錯誤訊息
12773
			$result["error"][]="\$conf變數須為陣列形態";
12773
			$result["error"][]="\$conf變數須為陣列形態";
12774
 
12774
 
12775
			#如果傳入的參數為 null
12775
			#如果傳入的參數為 null
12776
			if($conf==null){
12776
			if($conf==null){
12777
				
12777
 
12778
				#設置執行錯誤訊息
12778
				#設置執行錯誤訊息
12779
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
12779
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
12780
				
12780
 
12781
				}#if end
12781
				}#if end
12782
 
12782
 
12783
			#回傳結果
12783
			#回傳結果
12784
			return $result;
12784
			return $result;
12785
			
12785
 
12786
			}#if end
12786
			}#if end
12787
		
12787
 
12788
		#檢查參數
12788
		#檢查參數
12789
		#函式說明:
12789
		#函式說明:
12790
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
12790
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
12791
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
12791
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
12792
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
12792
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 12798... Line 12798...
12798
		#必填參數:
12798
		#必填參數:
12799
		#$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數.
12799
		#$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數.
12800
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
12800
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
12801
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
12801
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
12802
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","tableName","linkColumnName","columnYouWant");
12802
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","tableName","linkColumnName","columnYouWant");
12803
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
12803
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
12804
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array","array","array","array","array");
12804
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array","array","array","array","array");
12805
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
12805
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
12806
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
12806
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
12807
		#可省略參數:
12807
		#可省略參數:
12808
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
12808
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
12809
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
12809
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
12810
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
12810
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
12811
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("dbPassword","WhereColumnName","WhereColumnValue","WhereColumnCombine","WhereColumnOperator","WhereColumnAndOr","orderItem","ascORdesc","numberStart","numLimit","groupBy","whereIn","whereNotIn");
12811
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("dbPassword","WhereColumnName","WhereColumnValue","WhereColumnCombine","WhereColumnOperator","WhereColumnAndOr","orderItem","ascORdesc","numberStart","numLimit","groupBy","whereIn","whereNotIn");
12812
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
12812
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
12813
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","string","string","string","string","array","array","array");
12813
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","string","string","string","string","array","array","array");
12814
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
12814
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
12815
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("");
12815
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("");
12816
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
12816
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
12817
		unset($conf["variableCheck.checkArguments"]);
12817
		unset($conf["variableCheck.checkArguments"]);
12818
		
12818
 
12819
		#如果檢查出錯
12819
		#如果檢查出錯
12820
		if($checkResult["status"]=="false"){
12820
		if($checkResult["status"]=="false"){
12821
			
12821
 
12822
			#設置錯誤識別
12822
			#設置錯誤識別
12823
			$result["status"]="false";
12823
			$result["status"]="false";
12824
			
12824
 
12825
			#設置錯誤訊息
12825
			#設置錯誤訊息
12826
			$result["error"]=$checkResult;
12826
			$result["error"]=$checkResult;
12827
			
12827
 
12828
			#回傳結果
12828
			#回傳結果
12829
			return $result;
12829
			return $result;
12830
			
12830
 
12831
			}#if end
12831
			}#if end
12832
		
12832
 
12833
		#如果檢查出錯
12833
		#如果檢查出錯
12834
		if($checkResult["passed"]=="false"){
12834
		if($checkResult["passed"]=="false"){
12835
			
12835
 
12836
			#設置錯誤識別
12836
			#設置錯誤識別
12837
			$result["status"]="false";
12837
			$result["status"]="false";
12838
			
12838
 
12839
			#設置錯誤訊息
12839
			#設置錯誤訊息
12840
			$result["error"]=$checkResult;
12840
			$result["error"]=$checkResult;
12841
			
12841
 
12842
			#回傳結果
12842
			#回傳結果
12843
			return $result;
12843
			return $result;
12844
			
12844
 
12845
			}#if end
12845
			}#if end
12846
		
12846
 
12847
		#取得父表的資料
12847
		#取得父表的資料
12848
		#函式說明:
12848
		#函式說明:
12849
		#一次取得資料庫、表的資料
12849
		#一次取得資料庫、表的資料
12850
		#回傳結果:
12850
		#回傳結果:
12851
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
12851
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
Line 12860... Line 12860...
12860
		$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"][0];#爲登入dbServer的帳號。
12860
		$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"][0];#爲登入dbServer的帳號。
12861
		$conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"][0];#爲要存取的資料庫名稱
12861
		$conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"][0];#爲要存取的資料庫名稱
12862
		$conf["db"]["fastGetDbData"]["tableName"]=$conf["tableName"][0];#爲要存取的資料表名稱
12862
		$conf["db"]["fastGetDbData"]["tableName"]=$conf["tableName"][0];#爲要存取的資料表名稱
12863
		$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["columnYouWant"][0];#你想要的欄位!
12863
		$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["columnYouWant"][0];#你想要的欄位!
12864
		#可省略參數:
12864
		#可省略參數:
12865
			
12865
 
12866
		#如果 $conf["dbPassword"][0] 有設置
12866
		#如果 $conf["dbPassword"][0] 有設置
12867
		if(isset($conf["dbPassword"][0])){
12867
		if(isset($conf["dbPassword"][0])){
12868
				
12868
 
12869
			$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"][0];#爲要存取dbServer的密碼
12869
			$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"][0];#爲要存取dbServer的密碼
12870
				
12870
 
12871
			}#if end
12871
			}#if end
12872
			
12872
 
12873
		#如果 $conf["WhereColumnName"] 有設置
12873
		#如果 $conf["WhereColumnName"] 有設置
12874
		if(isset($conf["WhereColumnName"])){
12874
		if(isset($conf["WhereColumnName"])){
12875
				
12875
 
12876
			$conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
12876
			$conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
12877
			
12877
 
12878
			}#if end
12878
			}#if end
12879
			
12879
 
12880
		#如果 $conf["WhereColumnValue"] 有設置
12880
		#如果 $conf["WhereColumnValue"] 有設置
12881
		if(isset($conf["WhereColumnValue"])){
12881
		if(isset($conf["WhereColumnValue"])){
12882
			
12882
 
12883
			$conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
12883
			$conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
12884
			
12884
 
12885
			}#if end
12885
			}#if end
12886
			
12886
 
12887
		#如果 $conf["WhereColumnCombine"] 有設置
12887
		#如果 $conf["WhereColumnCombine"] 有設置
12888
		if(isset($conf["WhereColumnCombine"])){
12888
		if(isset($conf["WhereColumnCombine"])){
12889
			
12889
 
12890
			$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=$conf["WhereColumnCombine"];#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
12890
			$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=$conf["WhereColumnCombine"];#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
12891
			
12891
 
12892
			}#if end
12892
			}#if end
12893
			
12893
 
12894
		#如果 $conf["WhereColumnOperator"] 有設置
12894
		#如果 $conf["WhereColumnOperator"] 有設置
12895
		if(isset($conf["WhereColumnOperator"])){
12895
		if(isset($conf["WhereColumnOperator"])){
12896
				
12896
 
12897
			$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=$conf["WhereColumnOperator"];#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
12897
			$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=$conf["WhereColumnOperator"];#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
12898
			
12898
 
12899
			}#if end
12899
			}#if end
12900
			
12900
 
12901
		#如果 $conf["WhereColumnAndOr"][$i] 有設置
12901
		#如果 $conf["WhereColumnAndOr"][$i] 有設置
12902
		if(isset($conf["WhereColumnAndOr"])){
12902
		if(isset($conf["WhereColumnAndOr"])){
12903
				
12903
 
12904
			$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=$conf["WhereColumnAndOr"];#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
12904
			$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=$conf["WhereColumnAndOr"];#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
12905
				
12905
 
12906
			}#if end
12906
			}#if end
12907
			
12907
 
12908
		#如果 $conf["orderItem"] 有設置
12908
		#如果 $conf["orderItem"] 有設置
12909
		if(isset($conf["orderItem"])){
12909
		if(isset($conf["orderItem"])){
12910
				
12910
 
12911
			$conf["db"]["fastGetDbData"]["orderItem"]=$conf["orderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
12911
			$conf["db"]["fastGetDbData"]["orderItem"]=$conf["orderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
12912
			
12912
 
12913
			}#if end
12913
			}#if end
12914
			
12914
 
12915
		#如果 $conf["ascORdesc"] 有設置
12915
		#如果 $conf["ascORdesc"] 有設置
12916
		if(isset($conf["ascORdesc"])){
12916
		if(isset($conf["ascORdesc"])){
12917
				
12917
 
12918
			$conf["db"]["fastGetDbData"]["ascORdesc"]=$conf["ascORdesc"];#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
12918
			$conf["db"]["fastGetDbData"]["ascORdesc"]=$conf["ascORdesc"];#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
12919
				
12919
 
12920
			}#if end
12920
			}#if end
12921
		
12921
 
12922
		#如果 $conf["numberStart"] 有設置
12922
		#如果 $conf["numberStart"] 有設置
12923
		if(isset($conf["numberStart"])){
12923
		if(isset($conf["numberStart"])){
12924
				
12924
 
12925
			$conf["db"]["fastGetDbData"]["numberStart"]=$conf["numberStart"];#為從第幾筆開始讀取,預設為0,代筆第一筆。
12925
			$conf["db"]["fastGetDbData"]["numberStart"]=$conf["numberStart"];#為從第幾筆開始讀取,預設為0,代筆第一筆。
12926
				
12926
 
12927
			}#if end
12927
			}#if end
12928
			
12928
 
12929
		#如果 $conf["numLimit"] 有設置
12929
		#如果 $conf["numLimit"] 有設置
12930
		if(isset($conf["numLimit"])){
12930
		if(isset($conf["numLimit"])){
12931
				
12931
 
12932
			$conf["db"]["fastGetDbData"]["numLimit"]=$conf["numLimit"];#為要取幾筆資料,可以省略,省略則表示不限制數目。
12932
			$conf["db"]["fastGetDbData"]["numLimit"]=$conf["numLimit"];#為要取幾筆資料,可以省略,省略則表示不限制數目。
12933
				
12933
 
12934
			}#if end
12934
			}#if end
12935
			
12935
 
12936
		#如果 $conf["groupBy"] 有設置
12936
		#如果 $conf["groupBy"] 有設置
12937
		if(isset($conf["groupBy"])){
12937
		if(isset($conf["groupBy"])){
12938
			
12938
 
12939
			$conf["db"]["fastGetDbData"]["groupBy"]=$conf["groupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
12939
			$conf["db"]["fastGetDbData"]["groupBy"]=$conf["groupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
12940
			
12940
 
12941
			}#if end
12941
			}#if end
12942
		
12942
 
12943
		#如果 $conf["whereIn"] 存在
12943
		#如果 $conf["whereIn"] 存在
12944
		if(isset($conf["whereIn"])){
12944
		if(isset($conf["whereIn"])){
12945
			
12945
 
12946
			#where in 條件
12946
			#where in 條件
12947
			$conf["db"]["fastGetDbData"]["whereIn"]=$conf["whereIn"];
12947
			$conf["db"]["fastGetDbData"]["whereIn"]=$conf["whereIn"];
12948
			
12948
 
12949
			}#if end
12949
			}#if end
12950
			
12950
 
12951
		#如果 $conf["whereNotIn"] 存在
12951
		#如果 $conf["whereNotIn"] 存在
12952
		if(isset($conf["whereNotIn"])){
12952
		if(isset($conf["whereNotIn"])){
12953
			
12953
 
12954
			#where not in 條件	
12954
			#where not in 條件
12955
			$conf["db"]["fastGetDbData"]["whereNotIn"]=$conf["whereNotIn"];
12955
			$conf["db"]["fastGetDbData"]["whereNotIn"]=$conf["whereNotIn"];
12956
			
12956
 
12957
			}#if end
12957
			}#if end
12958
		
12958
 
12959
		#儲存到 $result["mainTable"] 陣列裡面
12959
		#儲存到 $result["mainTable"] 陣列裡面
12960
		$result["parentTable"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
12960
		$result["parentTable"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
12961
		unset($conf["db"]["fastGetDbData"]);
12961
		unset($conf["db"]["fastGetDbData"]);
12962
		
12962
 
12963
		#如果 $result["mainTable"]["status"] 為 "false"
12963
		#如果 $result["mainTable"]["status"] 為 "false"
12964
		if($result["parentTable"]["status"]=="false"){
12964
		if($result["parentTable"]["status"]=="false"){
12965
			
12965
 
12966
			#取得錯誤訊息
12966
			#取得錯誤訊息
12967
			$result["error"]=$result["parentTable"]["error"];
12967
			$result["error"]=$result["parentTable"]["error"];
12968
			
12968
 
12969
			#設置執行結果為 "false"
12969
			#設置執行結果為 "false"
12970
			$result["status"]="false";
12970
			$result["status"]="false";
12971
			
12971
 
12972
			#回傳結果
12972
			#回傳結果
12973
			return $result;
12973
			return $result;
12974
			
12974
 
12975
			}#if end
12975
			}#if end
12976
				
12976
 
12977
		#根據 $conf["linkColumnName"] 的數量
12977
		#根據 $conf["linkColumnName"] 的數量
12978
		for($i=0;$i<count($conf["linkColumnName"]);$i++){
12978
		for($i=0;$i<count($conf["linkColumnName"]);$i++){
12979
			
12979
 
12980
			#取得父資料表的關聯欄位名稱
12980
			#取得父資料表的關聯欄位名稱
12981
			$parentTableLinkColumnName=$conf["linkColumnName"][$i][0];
12981
			$parentTableLinkColumnName=$conf["linkColumnName"][$i][0];
12982
			
12982
 
12983
			#取得子資料表的關聯欄位名稱
12983
			#取得子資料表的關聯欄位名稱
12984
			$childTableLinkColumnName=$conf["linkColumnName"][$i][1];
12984
			$childTableLinkColumnName=$conf["linkColumnName"][$i][1];
12985
			
12985
 
12986
			#根據父資料表的資料筆數
12986
			#根據父資料表的資料筆數
12987
			for($j=0;$j<$result["parentTable"]["dataCount"];$j++){
12987
			for($j=0;$j<$result["parentTable"]["dataCount"];$j++){
12988
				
12988
 
12989
				#如果要連結的欄位不在 select 的欄位裡面
12989
				#如果要連結的欄位不在 select 的欄位裡面
12990
				if(!isset($result["parentTable"]["dataContent"][$parentTableLinkColumnName])){
12990
				if(!isset($result["parentTable"]["dataContent"][$parentTableLinkColumnName])){
12991
				
12991
 
12992
					#設置執行錯誤
12992
					#設置執行錯誤
12993
					$result["status"]="false";
12993
					$result["status"]="false";
12994
 
12994
 
12995
					#設置執行錯誤內容
12995
					#設置執行錯誤內容
12996
					$result["error"]="欄位 ".$parentTableLinkColumnName." 必須在參數 columnYouWant 裡面.";
12996
					$result["error"]="欄位 ".$parentTableLinkColumnName." 必須在參數 columnYouWant 裡面.";
12997
					
12997
 
12998
					#回傳結果
12998
					#回傳結果
12999
					return $result;
12999
					return $result;
13000
				
13000
 
13001
					}#if end
13001
					}#if end
13002
				
13002
 
13003
				#父資料表第$j筆資料關聯欄位的數值內容
13003
				#父資料表第$j筆資料關聯欄位的數值內容
13004
				$parentTableLinkColumnValue=$result["parentTable"]["dataContent"][$parentTableLinkColumnName][$j];
13004
				$parentTableLinkColumnValue=$result["parentTable"]["dataContent"][$parentTableLinkColumnName][$j];
13005
				
13005
 
13006
				#var_dump($parentTableLinkColumnValue);
13006
				#var_dump($parentTableLinkColumnValue);
13007
				
13007
 
13008
				#根據第$j筆資料的父關聯欄位數值來尋找子關聯資料表的欄位數值
13008
				#根據第$j筆資料的父關聯欄位數值來尋找子關聯資料表的欄位數值
13009
				#函式說明:
13009
				#函式說明:
13010
				#一次取得資料庫、表的資料
13010
				#一次取得資料庫、表的資料
13011
				#回傳結果:
13011
				#回傳結果:
13012
				#$result["status"],執行結果"true"為成功;"false"為執行失敗。
13012
				#$result["status"],執行結果"true"為成功;"false"為執行失敗。
Line 13021... Line 13021...
13021
				$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"][$i+1];#爲登入dbServer的帳號。
13021
				$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"][$i+1];#爲登入dbServer的帳號。
13022
				$conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"][$i+1];#爲要存取的資料庫名稱
13022
				$conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"][$i+1];#爲要存取的資料庫名稱
13023
				$conf["db"]["fastGetDbData"]["tableName"]=$conf["tableName"][$i+1];#爲要存取的資料表名稱
13023
				$conf["db"]["fastGetDbData"]["tableName"]=$conf["tableName"][$i+1];#爲要存取的資料表名稱
13024
				$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["columnYouWant"][$i+1];#你想要的欄位!
13024
				$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["columnYouWant"][$i+1];#你想要的欄位!
13025
				#可省略參數:
13025
				#可省略參數:
13026
				
13026
 
13027
				#如果 $conf["dbPassword"][$i+1] 有設定
13027
				#如果 $conf["dbPassword"][$i+1] 有設定
13028
				if(isset($conf["dbPassword"][$i+1])){
13028
				if(isset($conf["dbPassword"][$i+1])){
13029
					
13029
 
13030
					#則設置其連線密碼
13030
					#則設置其連線密碼
13031
					$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"][$i+1];#爲要存取dbServer的密碼
13031
					$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"][$i+1];#爲要存取dbServer的密碼
13032
					
13032
 
13033
					}#if end
13033
					}#if end
13034
					
13034
 
13035
				#如果 $conf["dbPort"][$i+1] 有設定
13035
				#如果 $conf["dbPort"][$i+1] 有設定
13036
				if(isset($conf["dbPort"][$i+1])){
13036
				if(isset($conf["dbPort"][$i+1])){
13037
					
13037
 
13038
					#則設置其連線的 port
13038
					#則設置其連線的 port
13039
					$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"][$i+1];#爲要存取dbServer的port
13039
					$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"][$i+1];#爲要存取dbServer的port
13040
					
13040
 
13041
					}#if end
13041
					}#if end
13042
				
13042
 
13043
				$conf["db"]["fastGetDbData"]["WhereColumnName"]=array($childTableLinkColumnName);#用於判斷語句的欄位項目陣列。
13043
				$conf["db"]["fastGetDbData"]["WhereColumnName"]=array($childTableLinkColumnName);#用於判斷語句的欄位項目陣列。
13044
				$conf["db"]["fastGetDbData"]["WhereColumnValue"]=array($parentTableLinkColumnValue);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13044
				$conf["db"]["fastGetDbData"]["WhereColumnValue"]=array($parentTableLinkColumnValue);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13045
				#$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13045
				#$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13046
				#$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13046
				#$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13047
				#$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
13047
				#$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
Line 13050... Line 13050...
13050
				#$conf["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
13050
				#$conf["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
13051
				#$conf["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
13051
				#$conf["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
13052
				#$conf["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13052
				#$conf["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13053
				$childTable[$j]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
13053
				$childTable[$j]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
13054
				unset($conf["db"]["fastGetDbData"]);
13054
				unset($conf["db"]["fastGetDbData"]);
13055
				
13055
 
13056
				#如果取得資料失敗
13056
				#如果取得資料失敗
13057
				if($childTable[$j]["status"]=="false"){
13057
				if($childTable[$j]["status"]=="false"){
13058
					
13058
 
13059
					#取得錯誤訊息
13059
					#取得錯誤訊息
13060
					$result["error"]=$childTable[$j];
13060
					$result["error"]=$childTable[$j];
13061
					
13061
 
13062
					#設置執行結果為 "false"
13062
					#設置執行結果為 "false"
13063
					$result["status"]="false";
13063
					$result["status"]="false";
13064
					
13064
 
13065
					#回傳結果
13065
					#回傳結果
13066
					return $result;
13066
					return $result;
13067
					
13067
 
13068
					}#if end
13068
					}#if end
13069
				
13069
 
13070
				#如果 $childTable[$j]["dataContent"] 有設置,則代表有符合的資料
13070
				#如果 $childTable[$j]["dataContent"] 有設置,則代表有符合的資料
13071
				if(isset($childTable[$j]["dataContent"])){
13071
				if(isset($childTable[$j]["dataContent"])){
13072
					
13072
 
13073
					#針對每個取得的新欄位
13073
					#針對每個取得的新欄位
13074
					foreach($childTable[$j]["dataContent"] as $newColumnNameArray=>$newColumnNameValue){
13074
					foreach($childTable[$j]["dataContent"] as $newColumnNameArray=>$newColumnNameValue){
13075
						
13075
 
13076
						#新增第$j筆的欄位名稱與數值
13076
						#新增第$j筆的欄位名稱與數值
13077
						$result["parentTable"]["dataContent"][$conf["tableName"][$i+1].".".$newColumnNameArray][$j]=$newColumnNameValue[0];
13077
						$result["parentTable"]["dataContent"][$conf["tableName"][$i+1].".".$newColumnNameArray][$j]=$newColumnNameValue[0];
13078
						
13078
 
13079
						}#foreach end
13079
						}#foreach end
13080
					
13080
 
13081
					}#if end
13081
					}#if end
13082
					
13082
 
13083
				#反之代表 $childTable[$j]["dataContent"] 沒有設置,沒有符合的資料
13083
				#反之代表 $childTable[$j]["dataContent"] 沒有設置,沒有符合的資料
13084
				else{
13084
				else{
13085
					
13085
 
13086
					#根據每個要取得的欄位名稱
13086
					#根據每個要取得的欄位名稱
13087
					foreach($conf["columnYouWant"][$i+1] as $newColumnName){
13087
					foreach($conf["columnYouWant"][$i+1] as $newColumnName){
13088
						
13088
 
13089
						#新增第$j筆的欄位名稱與數值
13089
						#新增第$j筆的欄位名稱與數值
13090
						$result["parentTable"]["dataContent"][$conf["tableName"][$i+1].".".$newColumnName][$j]="";
13090
						$result["parentTable"]["dataContent"][$conf["tableName"][$i+1].".".$newColumnName][$j]="";
13091
						
13091
 
13092
						}#foreach end
13092
						}#foreach end
13093
					
13093
 
13094
					}#else end
13094
					}#else end
13095
				
13095
 
13096
				}#for end
13096
				}#for end
13097
			
13097
 
13098
			}#for end
13098
			}#for end
13099
			
13099
 
13100
		#執行到這邊代表執行成功
13100
		#執行到這邊代表執行成功
13101
		#設置執行結果為 "true"
13101
		#設置執行結果為 "true"
13102
		$result["status"]="true";
13102
		$result["status"]="true";
13103
			
13103
 
13104
		#回傳結果
13104
		#回傳結果
13105
		return $result;
13105
		return $result;
13106
		
13106
 
13107
		}#function fastGetMutiLinkedDbData end
13107
		}#function fastGetMutiLinkedDbData end
13108
	 
13108
 
13109
	/*
13109
	/*
13110
	#函式說明:
13110
	#函式說明:
13111
	#透過php來join多張資料表資料,提供各個欄位的包含資料庫、資料表、的資訊,會產生sql inner join的效果,資料會越來越多.
13111
	#透過php來join多張資料表資料,提供各個欄位的包含資料庫、資料表、的資訊,會產生sql inner join的效果,資料會越來越多.
13112
	#回傳結果:
13112
	#回傳結果:
13113
	#$result["status"],執行結果"true"為成功;"false"為執行失敗。
13113
	#$result["status"],執行結果"true"為成功;"false"為執行失敗。
Line 13163... Line 13163...
13163
	#無.
13163
	#無.
13164
	#備註:
13164
	#備註:
13165
	#無.
13165
	#無.
13166
	*/
13166
	*/
13167
	public static function joinByPHP(&$conf=array()){
13167
	public static function joinByPHP(&$conf=array()){
13168
		
13168
 
13169
		#初始化要回傳的內容
13169
		#初始化要回傳的內容
13170
		$result=array();
13170
		$result=array();
13171
 
13171
 
13172
		#取得當前執行的函數名稱
13172
		#取得當前執行的函數名稱
13173
		$result["function"]=__FUNCTION__;
13173
		$result["function"]=__FUNCTION__;
13174
 
13174
 
13175
		#如果 $conf 不為陣列
13175
		#如果 $conf 不為陣列
13176
		if(gettype($conf)!="array"){
13176
		if(gettype($conf)!="array"){
13177
			
13177
 
13178
			#設置執行失敗
13178
			#設置執行失敗
13179
			$result["status"]="false";
13179
			$result["status"]="false";
13180
			
13180
 
13181
			#設置執行錯誤訊息
13181
			#設置執行錯誤訊息
13182
			$result["error"][]="\$conf變數須為陣列形態";
13182
			$result["error"][]="\$conf變數須為陣列形態";
13183
 
13183
 
13184
			#如果傳入的參數為 null
13184
			#如果傳入的參數為 null
13185
			if($conf==null){
13185
			if($conf==null){
13186
				
13186
 
13187
				#設置執行錯誤訊息
13187
				#設置執行錯誤訊息
13188
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
13188
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
13189
				
13189
 
13190
				}#if end
13190
				}#if end
13191
 
13191
 
13192
			#回傳結果
13192
			#回傳結果
13193
			return $result;
13193
			return $result;
13194
			
13194
 
13195
			}#if end
13195
			}#if end
13196
		
13196
 
13197
		#檢查參數
13197
		#檢查參數
13198
		#函式說明:
13198
		#函式說明:
13199
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
13199
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
13200
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
13200
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
13201
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
13201
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 13207... Line 13207...
13207
		#必填參數:
13207
		#必填參數:
13208
		#$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數.
13208
		#$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數.
13209
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
13209
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
13210
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
13210
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
13211
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbInfo","mainTable","linkColumnName");
13211
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbInfo","mainTable","linkColumnName");
13212
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
13212
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
13213
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","string","array");
13213
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","string","array");
13214
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
13214
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
13215
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
13215
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
13216
		#可省略參數:
13216
		#可省略參數:
13217
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
13217
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
13218
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
13218
		#$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
13219
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13219
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13220
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("linkColumnName","columnYouWant","mainDtWhereColName","mainDtWhereColVal","mainDtWhereColCombine","mainWhereColumnOperator","mainWhereColumnAndOr","mainWhereIn","mainWhereNotIn","mainNumberStart","mainNumLimit","mainGroupBy","mainOrderItem","mainAscORdesc");
13220
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("linkColumnName","columnYouWant","mainDtWhereColName","mainDtWhereColVal","mainDtWhereColCombine","mainWhereColumnOperator","mainWhereColumnAndOr","mainWhereIn","mainWhereNotIn","mainNumberStart","mainNumLimit","mainGroupBy","mainOrderItem","mainAscORdesc");
13221
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
13221
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
13222
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","string","string","array","string","string");
13222
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","array","array","array","string","string","array","string","string");
13223
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
13223
		#$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
13224
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array(),null,null,null,null,null,null,null,null,null,null,null,null,null);
13224
		$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array(array(),null,null,null,null,null,null,null,null,null,null,null,null,null);
13225
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
13225
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
13226
		unset($conf["variableCheck.checkArguments"]);
13226
		unset($conf["variableCheck.checkArguments"]);
13227
		
13227
 
13228
		#如果檢查出錯
13228
		#如果檢查出錯
13229
		if($checkResult["status"]=="false"){
13229
		if($checkResult["status"]=="false"){
13230
			
13230
 
13231
			#設置錯誤識別
13231
			#設置錯誤識別
13232
			$result["status"]="false";
13232
			$result["status"]="false";
13233
			
13233
 
13234
			#設置錯誤訊息
13234
			#設置錯誤訊息
13235
			$result["error"]=$checkResult;
13235
			$result["error"]=$checkResult;
13236
			
13236
 
13237
			#回傳結果
13237
			#回傳結果
13238
			return $result;
13238
			return $result;
13239
			
13239
 
13240
			}#if end
13240
			}#if end
13241
		
13241
 
13242
		#如果檢查出錯
13242
		#如果檢查出錯
13243
		if($checkResult["passed"]=="false"){
13243
		if($checkResult["passed"]=="false"){
13244
			
13244
 
13245
			#設置錯誤識別
13245
			#設置錯誤識別
13246
			$result["status"]="false";
13246
			$result["status"]="false";
13247
			
13247
 
13248
			#設置錯誤訊息
13248
			#設置錯誤訊息
13249
			$result["error"]=$checkResult;
13249
			$result["error"]=$checkResult;
13250
			
13250
 
13251
			#回傳結果
13251
			#回傳結果
13252
			return $result;
13252
			return $result;
13253
			
13253
 
13254
			}#if end
13254
			}#if end
13255
		
13255
 
13256
		#取得 $conf["mainTable"] 的資料
13256
		#取得 $conf["mainTable"] 的資料
13257
		
13257
 
13258
		#檢查主表是否為 db.dt 的
13258
		#檢查主表是否為 db.dt 的
13259
		$foundDot=strpos($conf["mainTable"],'.');
13259
		$foundDot=strpos($conf["mainTable"],'.');
13260
		
13260
 
13261
		#如果不是
13261
		#如果不是
13262
		if(!$foundDot){
13262
		if(!$foundDot){
13263
			
13263
 
13264
			#設置錯誤識別
13264
			#設置錯誤識別
13265
			$result["status"]="false";
13265
			$result["status"]="false";
13266
			
13266
 
13267
			#設置錯誤訊息
13267
			#設置錯誤訊息
13268
			$result["error"][]="參數 \$conf[\"mainTable\"] 必須為 資料庫名稱.資料表名稱";
13268
			$result["error"][]="參數 \$conf[\"mainTable\"] 必須為 資料庫名稱.資料表名稱";
13269
			
13269
 
13270
			#回傳結果
13270
			#回傳結果
13271
			return $result;
13271
			return $result;
13272
			
13272
 
13273
			}#if end
13273
			}#if end
13274
		
13274
 
13275
		#反之
13275
		#反之
13276
		else{
13276
		else{
13277
			
13277
 
13278
			#用 . 去切割字串
13278
			#用 . 去切割字串
13279
			$dbdtsplitedstr=explode('.',$conf["mainTable"]);
13279
			$dbdtsplitedstr=explode('.',$conf["mainTable"]);
13280
			
13280
 
13281
			#如果切割出來不等於兩段
13281
			#如果切割出來不等於兩段
13282
			if(count($dbdtsplitedstr)!==2){
13282
			if(count($dbdtsplitedstr)!==2){
13283
				
13283
 
13284
				#設置錯誤識別
13284
				#設置錯誤識別
13285
				$result["status"]="false";
13285
				$result["status"]="false";
13286
				
13286
 
13287
				#設置錯誤訊息
13287
				#設置錯誤訊息
13288
				$result["error"][]="參數 \$conf[\"mainTable\"] 必須為 資料庫名稱.資料表名稱";
13288
				$result["error"][]="參數 \$conf[\"mainTable\"] 必須為 資料庫名稱.資料表名稱";
13289
				
13289
 
13290
				#回傳結果
13290
				#回傳結果
13291
				return $result;
13291
				return $result;
13292
				
13292
 
13293
				}#if end
13293
				}#if end
13294
			
13294
 
13295
			#取得 mainTable 的 db name
13295
			#取得 mainTable 的 db name
13296
			$mainDb=&$dbdtsplitedstr[0];
13296
			$mainDb=&$dbdtsplitedstr[0];
13297
			
13297
 
13298
			#取得 mainTable 的名稱
13298
			#取得 mainTable 的名稱
13299
			$mainDt=&$dbdtsplitedstr[1];
13299
			$mainDt=&$dbdtsplitedstr[1];
13300
			
13300
 
13301
			}#else end
13301
			}#else end
13302
		
13302
 
13303
		#若主資料表連線參數不存在
13303
		#若主資料表連線參數不存在
13304
		if(!isset($conf["dbInfo"][$mainDb])){
13304
		if(!isset($conf["dbInfo"][$mainDb])){
13305
			
13305
 
13306
			#設置錯誤識別
13306
			#設置錯誤識別
13307
			$result["status"]="false";
13307
			$result["status"]="false";
13308
			
13308
 
13309
			#設置錯誤訊息
13309
			#設置錯誤訊息
13310
			$result["error"][]="參數 \$conf[\"dbInfo\"][$mainDb] 必須提供";
13310
			$result["error"][]="參數 \$conf[\"dbInfo\"][$mainDb] 必須提供";
13311
			
13311
 
13312
			#回傳結果
13312
			#回傳結果
13313
			return $result;
13313
			return $result;
13314
			
13314
 
13315
			}#if end
13315
			}#if end
13316
		
13316
 
13317
		#檢查主表的參數
13317
		#檢查主表的參數
13318
		#函式說明:
13318
		#函式說明:
13319
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
13319
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
13320
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
13320
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
13321
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
13321
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 13328... Line 13328...
13328
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
13328
		#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
13329
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
13329
		#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
13330
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
13330
		#$result["notNeedVar"],字串陣列,多餘的參數名稱.
13331
		#必填參數:
13331
		#必填參數:
13332
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
13332
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
13333
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf["dbInfo"][$mainDb];	
13333
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf["dbInfo"][$mainDb];
13334
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
13334
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
13335
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
13335
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
13336
		#可以省略的參數:
13336
		#可以省略的參數:
13337
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
13337
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
13338
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbAcct");
13338
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbAcct");
Line 13346... Line 13346...
13346
		#$conf["canBeEmpty"]=array();
13346
		#$conf["canBeEmpty"]=array();
13347
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
13347
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
13348
		$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPass","dbPort");
13348
		$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPass","dbPort");
13349
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13349
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13350
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass","dbPort");
13350
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass","dbPort");
13351
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
13351
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
13352
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
13352
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
13353
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
13353
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
13354
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
13354
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
13355
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
13355
		#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
13356
		#$conf["disallowAllSkipableVarIsEmpty"]="";
13356
		#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 13360... Line 13360...
13360
		#$conf["arrayCountEqualCheck"][]=array();
13360
		#$conf["arrayCountEqualCheck"][]=array();
13361
		#參考資料:
13361
		#參考資料:
13362
		#array_keys=>http://php.net/manual/en/function.array-keys.php
13362
		#array_keys=>http://php.net/manual/en/function.array-keys.php
13363
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
13363
		$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
13364
		unset($conf["variableCheck::checkArguments"]);
13364
		unset($conf["variableCheck::checkArguments"]);
13365
		
13365
 
13366
		#如果執行失敗
13366
		#如果執行失敗
13367
		if($checkArguments["status"]==="false"){
13367
		if($checkArguments["status"]==="false"){
13368
			
13368
 
13369
			#設置錯誤識別
13369
			#設置錯誤識別
13370
			$result["status"]="false";
13370
			$result["status"]="false";
13371
			
13371
 
13372
			#設置錯誤訊息
13372
			#設置錯誤訊息
13373
			$result["error"]=$checkArguments;
13373
			$result["error"]=$checkArguments;
13374
			
13374
 
13375
			#回傳結果
13375
			#回傳結果
13376
			return $result;
13376
			return $result;
13377
			
13377
 
13378
			}#if end
13378
			}#if end
13379
			
13379
 
13380
		#如果檢查不通過
13380
		#如果檢查不通過
13381
		if($checkArguments["passed"]==="false"){
13381
		if($checkArguments["passed"]==="false"){
13382
			
13382
 
13383
			#設置錯誤識別
13383
			#設置錯誤識別
13384
			$result["status"]="false";
13384
			$result["status"]="false";
13385
			
13385
 
13386
			#設置錯誤訊息
13386
			#設置錯誤訊息
13387
			$result["error"]=$checkArguments;
13387
			$result["error"]=$checkArguments;
13388
			
13388
 
13389
			#回傳結果
13389
			#回傳結果
13390
			return $result;
13390
			return $result;
13391
			
13391
 
13392
			}#if end
13392
			}#if end
13393
		
13393
 
13394
		#函式說明:
13394
		#函式說明:
13395
		#一次取得資料庫、表的資料
13395
		#一次取得資料庫、表的資料
13396
		#回傳結果:
13396
		#回傳結果:
13397
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
13397
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
13398
		#$result["error"],錯誤訊息陣列。
13398
		#$result["error"],錯誤訊息陣列。
Line 13410... Line 13410...
13410
		$conf["db::fastGetDbData"]["dbAccount"]=$conf["dbInfo"][$mainDb]["dbAcct"];#爲登入dbServer的帳號。
13410
		$conf["db::fastGetDbData"]["dbAccount"]=$conf["dbInfo"][$mainDb]["dbAcct"];#爲登入dbServer的帳號。
13411
		$conf["db::fastGetDbData"]["dbName"]=$mainDb;#爲要存取的資料庫名稱
13411
		$conf["db::fastGetDbData"]["dbName"]=$mainDb;#爲要存取的資料庫名稱
13412
		$conf["db::fastGetDbData"]["tableName"]=$mainDt;#爲要存取的資料表名稱
13412
		$conf["db::fastGetDbData"]["tableName"]=$mainDt;#爲要存取的資料表名稱
13413
		$conf["db::fastGetDbData"]["columnYouWant"]=array("*");#你想要的欄位!,若設為「array("*")」則代表全部欄位.
13413
		$conf["db::fastGetDbData"]["columnYouWant"]=array("*");#你想要的欄位!,若設為「array("*")」則代表全部欄位.
13414
		#可省略參數:
13414
		#可省略參數:
13415
		
13415
 
13416
		#如果有給予連線密碼
13416
		#如果有給予連線密碼
13417
		if(isset($conf["dbInfo"][$mainDb]["dbPass"])){
13417
		if(isset($conf["dbInfo"][$mainDb]["dbPass"])){
13418
			
13418
 
13419
			$conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$mainDb]["dbPass"];#爲要存取dbServer的密碼
13419
			$conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$mainDb]["dbPass"];#爲要存取dbServer的密碼
13420
			
13420
 
13421
			}#if end
13421
			}#if end
13422
			
13422
 
13423
		#如果有給予連線port
13423
		#如果有給予連線port
13424
		if(isset($conf["dbInfo"][$mainDb]["dbPort"])){
13424
		if(isset($conf["dbInfo"][$mainDb]["dbPort"])){
13425
			
13425
 
13426
			$conf["db::fastGetDbData"]["dbPort"]=$conf["dbInfo"][$mainDb]["dbPort"];#爲要存取dbServer的port
13426
			$conf["db::fastGetDbData"]["dbPort"]=$conf["dbInfo"][$mainDb]["dbPort"];#爲要存取dbServer的port
13427
			
13427
 
13428
			}#if end
13428
			}#if end
13429
		
13429
 
13430
		#如果有設置 $conf["mainDtWhereColName"]
13430
		#如果有設置 $conf["mainDtWhereColName"]
13431
		if(isset($conf["mainDtWhereColName"])){
13431
		if(isset($conf["mainDtWhereColName"])){
13432
			
13432
 
13433
			#設置參數
13433
			#設置參數
13434
			$conf["db::fastGetDbData"]["WhereColumnName"]=$conf["mainDtWhereColName"];
13434
			$conf["db::fastGetDbData"]["WhereColumnName"]=$conf["mainDtWhereColName"];
13435
			
13435
 
13436
			}#if end
13436
			}#if end
13437
		
13437
 
13438
		#如果有設置 $conf["mainDtWhereColVal"]
13438
		#如果有設置 $conf["mainDtWhereColVal"]
13439
		if(isset($conf["mainDtWhereColVal"])){
13439
		if(isset($conf["mainDtWhereColVal"])){
13440
			
13440
 
13441
			#設置參數
13441
			#設置參數
13442
			$conf["db::fastGetDbData"]["WhereColumnValue"]=$conf["mainDtWhereColVal"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13442
			$conf["db::fastGetDbData"]["WhereColumnValue"]=$conf["mainDtWhereColVal"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13443
			
13443
 
13444
			}#if end
13444
			}#if end
13445
		
13445
 
13446
		#如果有設置 $conf["mainDtWhereColCombine"]
13446
		#如果有設置 $conf["mainDtWhereColCombine"]
13447
		if(isset($conf["mainDtWhereColCombine"])){
13447
		if(isset($conf["mainDtWhereColCombine"])){
13448
			
13448
 
13449
			#設置參數
13449
			#設置參數
13450
			$conf["db::fastGetDbData"]["WhereColumnCombine"]=$conf["mainDtWhereColCombine"];#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13450
			$conf["db::fastGetDbData"]["WhereColumnCombine"]=$conf["mainDtWhereColCombine"];#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13451
					
13451
 
13452
			}#if end
13452
			}#if end
13453
		
13453
 
13454
		#如果有設置 $conf["mainWhereColumnOperator"]
13454
		#如果有設置 $conf["mainWhereColumnOperator"]
13455
		if(isset($conf["mainWhereColumnOperator"])){
13455
		if(isset($conf["mainWhereColumnOperator"])){
13456
			
13456
 
13457
			#設置參數
13457
			#設置參數
13458
			$conf["db::fastGetDbData"]["WhereColumnOperator"]=$conf["mainWhereColumnOperator"];#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13458
			$conf["db::fastGetDbData"]["WhereColumnOperator"]=$conf["mainWhereColumnOperator"];#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13459
					
13459
 
13460
			}#if end
13460
			}#if end
13461
			
13461
 
13462
		#如果有設置 $conf["mainWhereColumnAndOr"]
13462
		#如果有設置 $conf["mainWhereColumnAndOr"]
13463
		if(isset($conf["mainWhereColumnAndOr"])){
13463
		if(isset($conf["mainWhereColumnAndOr"])){
13464
			
13464
 
13465
			#設置參數
13465
			#設置參數
13466
			$conf["db::fastGetDbData"]["WhereColumnAndOr"]=$conf["mainWhereColumnAndOr"];#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
13466
			$conf["db::fastGetDbData"]["WhereColumnAndOr"]=$conf["mainWhereColumnAndOr"];#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
13467
 
13467
 
13468
			}#if end
13468
			}#if end
13469
			
13469
 
13470
		#如果有設置 $conf["mainWhereIn"]
13470
		#如果有設置 $conf["mainWhereIn"]
13471
		if(isset($conf["mainWhereIn"])){
13471
		if(isset($conf["mainWhereIn"])){
13472
			
13472
 
13473
			#$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
13473
			#$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
13474
			$conf["db::fastGetDbData"]["whereIn"]=$conf["mainWhereIn"];
13474
			$conf["db::fastGetDbData"]["whereIn"]=$conf["mainWhereIn"];
13475
			
13475
 
13476
			}#if end
13476
			}#if end
13477
			
13477
 
13478
		#如果有設置 $conf["mainWhereNotIn"]
13478
		#如果有設置 $conf["mainWhereNotIn"]
13479
		if(isset($conf["mainWhereNotIn"])){
13479
		if(isset($conf["mainWhereNotIn"])){
13480
			
13480
 
13481
			#設置參數
13481
			#設置參數
13482
			#$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
13482
			#$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
13483
			$conf["db::fastGetDbData"]["whereNotIn"]=$conf["mainWhereNotIn"];
13483
			$conf["db::fastGetDbData"]["whereNotIn"]=$conf["mainWhereNotIn"];
13484
					
13484
 
13485
			}#if end
13485
			}#if end
13486
		
13486
 
13487
		#如果有設置 $conf["mainNumberStart"]
13487
		#如果有設置 $conf["mainNumberStart"]
13488
		if(isset($conf["mainNumberStart"])){
13488
		if(isset($conf["mainNumberStart"])){
13489
			
13489
 
13490
			#設置參數
13490
			#設置參數
13491
			$conf["db::fastGetDbData"]["numberStart"]=$conf["mainNumberStart"];#為從第幾筆開始讀取,預設為0,代筆第一筆。
13491
			$conf["db::fastGetDbData"]["numberStart"]=$conf["mainNumberStart"];#為從第幾筆開始讀取,預設為0,代筆第一筆。
13492
					
13492
 
13493
			}#if end
13493
			}#if end
13494
		
13494
 
13495
		#如果有設置 $conf["mainNumLimit"]
13495
		#如果有設置 $conf["mainNumLimit"]
13496
		if(isset($conf["mainNumLimit"])){
13496
		if(isset($conf["mainNumLimit"])){
13497
			
13497
 
13498
			#設置參數
13498
			#設置參數
13499
			$conf["db::fastGetDbData"]["numLimit"]=$conf["mainNumLimit"];#為要取幾筆資料,可以省略,省略則表示不限制數目。
13499
			$conf["db::fastGetDbData"]["numLimit"]=$conf["mainNumLimit"];#為要取幾筆資料,可以省略,省略則表示不限制數目。
13500
					
13500
 
13501
			}#if end
13501
			}#if end
13502
		
13502
 
13503
		#如果有設置 $conf["mainGroupBy"]
13503
		#如果有設置 $conf["mainGroupBy"]
13504
		if(isset($conf["mainGroupBy"])){
13504
		if(isset($conf["mainGroupBy"])){
13505
			
13505
 
13506
			#設置參數
13506
			#設置參數
13507
			$conf["db::fastGetDbData"]["groupBy"]=$conf["mainGroupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13507
			$conf["db::fastGetDbData"]["groupBy"]=$conf["mainGroupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13508
					
13508
 
13509
			}#if end
13509
			}#if end
13510
		
13510
 
13511
		#如果有設置 $conf["mainOrderItem"]
13511
		#如果有設置 $conf["mainOrderItem"]
13512
		if(isset($conf["mainOrderItem"])){
13512
		if(isset($conf["mainOrderItem"])){
13513
			
13513
 
13514
			#設置參數
13514
			#設置參數
13515
			$conf["db::fastGetDbData"]["orderItem"]=$conf["mainOrderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
13515
			$conf["db::fastGetDbData"]["orderItem"]=$conf["mainOrderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
13516
			
13516
 
13517
			}#if end
13517
			}#if end
13518
		
13518
 
13519
		#如果有設置 $conf["mainAscORdesc"]
13519
		#如果有設置 $conf["mainAscORdesc"]
13520
		if(isset($conf["mainAscORdesc"])){
13520
		if(isset($conf["mainAscORdesc"])){
13521
			
13521
 
13522
			#設置參數
13522
			#設置參數
13523
			#$conf["mainAscORdesc"],字串,組好的資料要低增還是遞減排序,asc爲遞增;desc爲遞減,預設不做處理.
13523
			#$conf["mainAscORdesc"],字串,組好的資料要低增還是遞減排序,asc爲遞增;desc爲遞減,預設不做處理.
13524
			$conf["db::fastGetDbData"]["mainAscORdesc"]=$conf["mainAscORdesc"];
13524
			$conf["db::fastGetDbData"]["mainAscORdesc"]=$conf["mainAscORdesc"];
13525
			
13525
 
13526
			}#if end
13526
			}#if end
13527
		
13527
 
13528
		$fastGetDbData=db::fastGetDbData($conf["db::fastGetDbData"]);
13528
		$fastGetDbData=db::fastGetDbData($conf["db::fastGetDbData"]);
13529
		unset($conf["db::fastGetDbData"]);
13529
		unset($conf["db::fastGetDbData"]);
13530
		
13530
 
13531
		#如果執行失敗
13531
		#如果執行失敗
13532
		if($fastGetDbData["status"]==="false"){
13532
		if($fastGetDbData["status"]==="false"){
13533
			
13533
 
13534
			#設置錯誤識別
13534
			#設置錯誤識別
13535
			$result["status"]="false";
13535
			$result["status"]="false";
13536
			
13536
 
13537
			#設置錯誤訊息
13537
			#設置錯誤訊息
13538
			$result["error"]=$fastGetDbData;
13538
			$result["error"]=$fastGetDbData;
13539
			
13539
 
13540
			#回傳結果
13540
			#回傳結果
13541
			return $result;
13541
			return $result;
13542
			
13542
 
13543
			}#if end
13543
			}#if end
13544
		
13544
 
13545
		#var_dump($fastGetDbData);
13545
		#var_dump($fastGetDbData);
13546
		
13546
 
13547
		#初始化儲存合併好的資料
13547
		#初始化儲存合併好的資料
13548
		$merged=array();
13548
		$merged=array();
13549
		
13549
 
13550
		#如果該存在的變數不存在
13550
		#如果該存在的變數不存在
13551
		if(!isset($fastGetDbData["dataColumnName"])){
13551
		if(!isset($fastGetDbData["dataColumnName"])){
13552
		
13552
 
13553
			#設置錯誤識別
13553
			#設置錯誤識別
13554
			$result["status"]="false";
13554
			$result["status"]="false";
13555
			
13555
 
13556
			#設置錯誤訊息
13556
			#設置錯誤訊息
13557
			$result["error"]=$fastGetDbData;
13557
			$result["error"]=$fastGetDbData;
13558
			
13558
 
13559
			#回傳結果
13559
			#回傳結果
13560
			return $result;
13560
			return $result;
13561
		
13561
 
13562
			}#if end
13562
			}#if end
13563
		
13563
 
13564
		#針對每個欄位
13564
		#針對每個欄位
13565
		foreach($fastGetDbData["dataColumnName"] as $colName){
13565
		foreach($fastGetDbData["dataColumnName"] as $colName){
13566
			
13566
 
13567
			#將當前資料的欄位用 dbName.dtName.dataColName 儲存
13567
			#將當前資料的欄位用 dbName.dtName.dataColName 儲存
13568
			$merged[$mainDb.".".$mainDt.".".$colName]=$fastGetDbData["dataContent"][$colName];
13568
			$merged[$mainDb.".".$mainDt.".".$colName]=$fastGetDbData["dataContent"][$colName];
13569
			
13569
 
13570
			}#foreach end
13570
			}#foreach end
13571
		
13571
 
13572
		#移除變數節省記憶體
13572
		#移除變數節省記憶體
13573
		unset($fastGetDbData);
13573
		unset($fastGetDbData);
13574
		
13574
 
13575
		#取得陣列元素數目
13575
		#取得陣列元素數目
13576
		$mergedCount=count($merged);
13576
		$mergedCount=count($merged);
13577
		
13577
 
13578
		#移除以數字為欄位索引的變數
13578
		#移除以數字為欄位索引的變數
13579
		for($i=0;$i<$mergedCount/2;$i++){
13579
		for($i=0;$i<$mergedCount/2;$i++){
13580
			
13580
 
13581
			#移除索引
13581
			#移除索引
13582
			unset($merged[$i]);
13582
			unset($merged[$i]);
13583
			
13583
 
13584
			}#for end
13584
			}#for end
13585
		
13585
 
13586
		#var_dump($merged);exit;
13586
		#var_dump($merged);exit;
13587
		
13587
 
13588
		#針對每個 $conf["linkColumnName"] 
13588
		#針對每個 $conf["linkColumnName"]
13589
		foreach($conf["linkColumnName"] as $linkCondition){
13589
		foreach($conf["linkColumnName"] as $linkCondition){
13590
			
13590
 
13591
			#如果不是陣列
13591
			#如果不是陣列
13592
			if(gettype($linkCondition)!=="array"){
13592
			if(gettype($linkCondition)!=="array"){
13593
				
13593
 
13594
				#設置錯誤識別
13594
				#設置錯誤識別
13595
				$result["status"]="false";
13595
				$result["status"]="false";
13596
				
13596
 
13597
				#設置錯誤訊息
13597
				#設置錯誤訊息
13598
				$result["error"][]="參數 linkColumnName 的陣列元素應該為陣列.";
13598
				$result["error"][]="參數 linkColumnName 的陣列元素應該為陣列.";
13599
				
13599
 
13600
				#回傳結果
13600
				#回傳結果
13601
				return $result;
13601
				return $result;
13602
				
13602
 
13603
				}#if end
13603
				}#if end
13604
				
13604
 
13605
			#如果數量不為2
13605
			#如果數量不為2
13606
			if(count($linkCondition)!==2){
13606
			if(count($linkCondition)!==2){
13607
				
13607
 
13608
				#設置錯誤識別
13608
				#設置錯誤識別
13609
				$result["status"]="false";
13609
				$result["status"]="false";
13610
				
13610
 
13611
				#設置錯誤訊息
13611
				#設置錯誤訊息
13612
				$result["error"][]="參數 linkColumnName 的陣列元素應為有兩個元素的陣列.";
13612
				$result["error"][]="參數 linkColumnName 的陣列元素應為有兩個元素的陣列.";
13613
				
13613
 
13614
				#回傳結果
13614
				#回傳結果
13615
				return $result;
13615
				return $result;
13616
				
13616
 
13617
				}#if end
13617
				}#if end
13618
				
13618
 
13619
			#取得原始欄位的名稱
13619
			#取得原始欄位的名稱
13620
			$oriCol=&$linkCondition[0];	
13620
			$oriCol=&$linkCondition[0];
13621
				
13621
 
13622
			#如果用來比對的原欄位不存在
13622
			#如果用來比對的原欄位不存在
13623
			if(!isset($merged[$oriCol])){
13623
			if(!isset($merged[$oriCol])){
13624
				
13624
 
13625
				#設置錯誤識別
13625
				#設置錯誤識別
13626
				$result["status"]="false";
13626
				$result["status"]="false";
13627
				
13627
 
13628
				#設置錯誤訊息
13628
				#設置錯誤訊息
13629
				$result["error"][]="用來比對的原始資料沒有欄位 「".$oriCol."」 存在.";
13629
				$result["error"][]="用來比對的原始資料沒有欄位 「".$oriCol."」 存在.";
13630
				
13630
 
13631
				#回傳結果
13631
				#回傳結果
13632
				return $result;
13632
				return $result;
13633
				
13633
 
13634
				}#if end
13634
				}#if end
13635
				
13635
 
13636
			#取得要增加的欄位名稱
13636
			#取得要增加的欄位名稱
13637
			$newCol=&$linkCondition[1];	
13637
			$newCol=&$linkCondition[1];
13638
			
13638
 
13639
			#檢查增加的欄位名稱是否有 "."
13639
			#檢查增加的欄位名稱是否有 "."
13640
			$foundDot=strpos($newCol,'.');
13640
			$foundDot=strpos($newCol,'.');
13641
			
13641
 
13642
			#如果不是
13642
			#如果不是
13643
			if(!$foundDot){
13643
			if(!$foundDot){
13644
				
13644
 
13645
				#設置錯誤識別
13645
				#設置錯誤識別
13646
				$result["status"]="false";
13646
				$result["status"]="false";
13647
				
13647
 
13648
				#設置錯誤訊息
13648
				#設置錯誤訊息
13649
				$result["error"][]="參數 linkColumnName 的欄位格式 ".$newCol." 必須為 資料庫名稱.資料表名稱.資料欄位名稱";
13649
				$result["error"][]="參數 linkColumnName 的欄位格式 ".$newCol." 必須為 資料庫名稱.資料表名稱.資料欄位名稱";
13650
				
13650
 
13651
				#回傳結果
13651
				#回傳結果
13652
				return $result;
13652
				return $result;
13653
				
13653
 
13654
				}#if end
13654
				}#if end
13655
			
13655
 
13656
			#反之
13656
			#反之
13657
			else{
13657
			else{
13658
				
13658
 
13659
				#用 . 去切割字串
13659
				#用 . 去切割字串
13660
				$dbdtsplitedstr=explode('.',$newCol);
13660
				$dbdtsplitedstr=explode('.',$newCol);
13661
				
13661
 
13662
				#如果切割出來不等於兩段
13662
				#如果切割出來不等於兩段
13663
				if(count($dbdtsplitedstr)!==3){
13663
				if(count($dbdtsplitedstr)!==3){
13664
					
13664
 
13665
					#設置錯誤識別
13665
					#設置錯誤識別
13666
					$result["status"]="false";
13666
					$result["status"]="false";
13667
					
13667
 
13668
					#設置錯誤訊息
13668
					#設置錯誤訊息
13669
					$result["error"][]="參數 linkColumnName 的欄位格式 ".$newCol." 必須為 資料庫名稱.資料表名稱.資料欄位名稱";
13669
					$result["error"][]="參數 linkColumnName 的欄位格式 ".$newCol." 必須為 資料庫名稱.資料表名稱.資料欄位名稱";
13670
					
13670
 
13671
					#回傳結果
13671
					#回傳結果
13672
					return $result;
13672
					return $result;
13673
					
13673
 
13674
					}#if end
13674
					}#if end
13675
				
13675
 
13676
				#取得 linkTable 的 db name
13676
				#取得 linkTable 的 db name
13677
				$linkDb=&$dbdtsplitedstr[0];
13677
				$linkDb=&$dbdtsplitedstr[0];
13678
				
13678
 
13679
				#取得 linkTable 的名稱
13679
				#取得 linkTable 的名稱
13680
				$linkDt=&$dbdtsplitedstr[1];
13680
				$linkDt=&$dbdtsplitedstr[1];
13681
				
13681
 
13682
				#取得 linkCol 的名稱
13682
				#取得 linkCol 的名稱
13683
				$linkCol=&$dbdtsplitedstr[2];
13683
				$linkCol=&$dbdtsplitedstr[2];
13684
				
13684
 
13685
				}#else end
13685
				}#else end
13686
				
13686
 
13687
			#檢查次表的參數
13687
			#檢查次表的參數
13688
			#函式說明:
13688
			#函式說明:
13689
			#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
13689
			#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
13690
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
13690
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
13691
			#$reuslt["error"],執行不正常結束的錯訊息陣列.
13691
			#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 13698... Line 13698...
13698
			#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
13698
			#$result["argu"],字串陣列,目前輸入的參數名稱陣列.
13699
			#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
13699
			#$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
13700
			#$result["notNeedVar"],字串陣列,多餘的參數名稱.
13700
			#$result["notNeedVar"],字串陣列,多餘的參數名稱.
13701
			#必填參數:
13701
			#必填參數:
13702
			#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
13702
			#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
13703
			$conf["variableCheck::checkArguments"]["varInput"]=&$conf["dbInfo"][$linkDb];	
13703
			$conf["variableCheck::checkArguments"]["varInput"]=&$conf["dbInfo"][$linkDb];
13704
			#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
13704
			#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
13705
			$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
13705
			$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
13706
			#可以省略的參數:
13706
			#可以省略的參數:
13707
			#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
13707
			#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
13708
			$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbAcct");
13708
			$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbAcct");
Line 13716... Line 13716...
13716
			#$conf["canBeEmpty"]=array();
13716
			#$conf["canBeEmpty"]=array();
13717
			#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
13717
			#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
13718
			$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPass");
13718
			$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPass");
13719
			#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13719
			#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
13720
			$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass");
13720
			$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass");
13721
			#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
13721
			#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
13722
			$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
13722
			$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
13723
			#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
13723
			#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
13724
			$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
13724
			$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
13725
			#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
13725
			#$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
13726
			#$conf["disallowAllSkipableVarIsEmpty"]="";
13726
			#$conf["disallowAllSkipableVarIsEmpty"]="";
Line 13730... Line 13730...
13730
			#$conf["arrayCountEqualCheck"][]=array();
13730
			#$conf["arrayCountEqualCheck"][]=array();
13731
			#參考資料:
13731
			#參考資料:
13732
			#array_keys=>http://php.net/manual/en/function.array-keys.php
13732
			#array_keys=>http://php.net/manual/en/function.array-keys.php
13733
			$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
13733
			$checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
13734
			unset($conf["variableCheck::checkArguments"]);
13734
			unset($conf["variableCheck::checkArguments"]);
13735
			
13735
 
13736
			#var_dump($checkArguments);
13736
			#var_dump($checkArguments);
13737
			#exit;
13737
			#exit;
13738
			
13738
 
13739
			#如果執行失敗
13739
			#如果執行失敗
13740
			if($checkArguments["status"]==="false"){
13740
			if($checkArguments["status"]==="false"){
13741
				
13741
 
13742
				#設置錯誤識別
13742
				#設置錯誤識別
13743
				$result["status"]="false";
13743
				$result["status"]="false";
13744
				
13744
 
13745
				#設置錯誤訊息
13745
				#設置錯誤訊息
13746
				$result["error"]=$checkArguments;
13746
				$result["error"]=$checkArguments;
13747
				
13747
 
13748
				#回傳結果
13748
				#回傳結果
13749
				return $result;
13749
				return $result;
13750
				
13750
 
13751
				}#if end
13751
				}#if end
13752
				
13752
 
13753
			#如果檢查不通過
13753
			#如果檢查不通過
13754
			if($checkArguments["passed"]==="false"){
13754
			if($checkArguments["passed"]==="false"){
13755
				
13755
 
13756
				#設置錯誤識別
13756
				#設置錯誤識別
13757
				$result["status"]="false";
13757
				$result["status"]="false";
13758
				
13758
 
13759
				#設置錯誤訊息
13759
				#設置錯誤訊息
13760
				$result["error"]=$checkArguments;
13760
				$result["error"]=$checkArguments;
13761
				
13761
 
13762
				#回傳結果
13762
				#回傳結果
13763
				return $result;
13763
				return $result;
13764
				
13764
 
13765
				}#if end
13765
				}#if end
13766
			
13766
 
13767
			#初始化新合併過後的資料
13767
			#初始化新合併過後的資料
13768
			$newMerged=&$merged;
13768
			$newMerged=&$merged;
13769
			
13769
 
13770
			#初始化儲存既有的欄位名稱
13770
			#初始化儲存既有的欄位名稱
13771
			$mergedColName=array_keys($merged);
13771
			$mergedColName=array_keys($merged);
13772
					
13772
 
13773
			#取得既有的欄位的數量
13773
			#取得既有的欄位的數量
13774
			$mergedColCount=count($mergedColName);
13774
			$mergedColCount=count($mergedColName);
13775
			
13775
 
13776
			#主表有幾筆資料就執行幾次
13776
			#主表有幾筆資料就執行幾次
13777
			foreach($merged[$oriCol] as $index=>$mainColVal){
13777
			foreach($merged[$oriCol] as $index=>$mainColVal){
13778
				
13778
 
13779
				#函式說明:
13779
				#函式說明:
13780
				#一次取得資料庫、表的資料
13780
				#一次取得資料庫、表的資料
13781
				#回傳結果:
13781
				#回傳結果:
13782
				#$result["status"],執行結果"true"為成功;"false"為執行失敗。
13782
				#$result["status"],執行結果"true"為成功;"false"為執行失敗。
13783
				#$result["error"],錯誤訊息陣列。
13783
				#$result["error"],錯誤訊息陣列。
Line 13795... Line 13795...
13795
				$conf["db::fastGetDbData"]["dbAccount"]=$conf["dbInfo"][$linkDb]["dbAcct"];#爲登入dbServer的帳號。
13795
				$conf["db::fastGetDbData"]["dbAccount"]=$conf["dbInfo"][$linkDb]["dbAcct"];#爲登入dbServer的帳號。
13796
				$conf["db::fastGetDbData"]["dbName"]=$linkDb;#爲要存取的資料庫名稱
13796
				$conf["db::fastGetDbData"]["dbName"]=$linkDb;#爲要存取的資料庫名稱
13797
				$conf["db::fastGetDbData"]["tableName"]=$linkDt;#爲要存取的資料表名稱
13797
				$conf["db::fastGetDbData"]["tableName"]=$linkDt;#爲要存取的資料表名稱
13798
				$conf["db::fastGetDbData"]["columnYouWant"]=array("*");#你想要的欄位!,若設為「array("*")」則代表全部欄位.
13798
				$conf["db::fastGetDbData"]["columnYouWant"]=array("*");#你想要的欄位!,若設為「array("*")」則代表全部欄位.
13799
				#可省略參數:
13799
				#可省略參數:
13800
				
13800
 
13801
				#如果有設置次表的密碼
13801
				#如果有設置次表的密碼
13802
				if(isset($conf["dbInfo"][$linkDb]["dbPass"])){
13802
				if(isset($conf["dbInfo"][$linkDb]["dbPass"])){
13803
					
13803
 
13804
					$conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$linkDb]["dbPass"];#爲要存取dbServer的密碼
13804
					$conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$linkDb]["dbPass"];#爲要存取dbServer的密碼
13805
					
13805
 
13806
					}#if end
13806
					}#if end
13807
				
13807
 
13808
				$conf["db::fastGetDbData"]["WhereColumnName"]=array($linkCol);#用於判斷語句的欄位項目陣列。
13808
				$conf["db::fastGetDbData"]["WhereColumnName"]=array($linkCol);#用於判斷語句的欄位項目陣列。
13809
				$conf["db::fastGetDbData"]["WhereColumnValue"]=array($mainColVal);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13809
				$conf["db::fastGetDbData"]["WhereColumnValue"]=array($mainColVal);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
13810
				#$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13810
				#$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
13811
				#$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13811
				#$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
13812
				#$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
13812
				#$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
Line 13819... Line 13819...
13819
				#$conf["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
13819
				#$conf["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
13820
				#$conf["db::fastGetDbData"]["numLimit"]="1";#為要取幾筆資料,可以省略,省略則表示不限制數目。
13820
				#$conf["db::fastGetDbData"]["numLimit"]="1";#為要取幾筆資料,可以省略,省略則表示不限制數目。
13821
				#$conf["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13821
				#$conf["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
13822
				$fastGetDbData=db::fastGetDbData($conf["db::fastGetDbData"]);
13822
				$fastGetDbData=db::fastGetDbData($conf["db::fastGetDbData"]);
13823
				unset($conf["db::fastGetDbData"]);
13823
				unset($conf["db::fastGetDbData"]);
13824
				
13824
 
13825
				#如果query失敗
13825
				#如果query失敗
13826
				if($fastGetDbData["status"]==="false"){
13826
				if($fastGetDbData["status"]==="false"){
13827
					
13827
 
13828
					#設置執行失敗
13828
					#設置執行失敗
13829
					$result["status"]="false";
13829
					$result["status"]="false";
13830
					
13830
 
13831
					#設置錯誤訊息
13831
					#設置錯誤訊息
13832
					$result["error"]=$fastGetDbData;
13832
					$result["error"]=$fastGetDbData;
13833
					
13833
 
13834
					#回傳結果;
13834
					#回傳結果;
13835
					return $result;
13835
					return $result;
13836
					
13836
 
13837
					}#if end
13837
					}#if end
13838
				
13838
 
13839
				#如果如果沒有符合的資料
13839
				#如果如果沒有符合的資料
13840
				if($fastGetDbData["dataCount"]===0){
13840
				if($fastGetDbData["dataCount"]===0){
13841
					
13841
 
13842
					#如果有欄位名稱存在
13842
					#如果有欄位名稱存在
13843
					if(isset($fastGetDbData["dataColumnName"])){
13843
					if(isset($fastGetDbData["dataColumnName"])){
13844
					
13844
 
13845
						#次表有幾個欄位就執行幾次
13845
						#次表有幾個欄位就執行幾次
13846
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13846
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13847
							
13847
 
13848
							#給予NULL
13848
							#給予NULL
13849
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=NULL;
13849
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=NULL;
13850
							
13850
 
13851
							}#foreach end
13851
							}#foreach end
13852
						
13852
 
13853
						}#if end
13853
						}#if end
13854
						
13854
 
13855
					}#if end
13855
					}#if end
13856
					
13856
 
13857
				#反之有資料
13857
				#反之有資料
13858
				else{
13858
				else{
13859
					
13859
 
13860
					#次表有幾個欄位就執行幾次
13860
					#次表有幾個欄位就執行幾次
13861
					foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13861
					foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13862
					
13862
 
13863
						#設置新的欄位資料
13863
						#設置新的欄位資料
13864
						$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=$fastGetDbData["dataContent"][$linkedColName][0];
13864
						$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=$fastGetDbData["dataContent"][$linkedColName][0];
13865
						
13865
 
13866
						}#foreach end
13866
						}#foreach end
13867
						
13867
 
13868
					#有幾筆資料就執行幾次
13868
					#有幾筆資料就執行幾次
13869
					for($i=1;$i<$fastGetDbData["dataCount"];$i++){
13869
					for($i=1;$i<$fastGetDbData["dataCount"];$i++){
13870
						
13870
 
13871
						#取得資新料的索引
13871
						#取得資新料的索引
13872
						$newMergedDataIndex=count($newMerged[$mergedColName[0]]);
13872
						$newMergedDataIndex=count($newMerged[$mergedColName[0]]);
13873
		
13873
 
13874
						#有幾個欄位就執行幾次
13874
						#有幾個欄位就執行幾次
13875
						for($j=0;$j<$mergedColCount;$j++){
13875
						for($j=0;$j<$mergedColCount;$j++){
13876
							
13876
 
13877
							#複製既有的欄位資料
13877
							#複製既有的欄位資料
13878
							$newMerged[$mergedColName[$j]][$newMergedDataIndex]=$newMerged[$mergedColName[$j]][$index];
13878
							$newMerged[$mergedColName[$j]][$newMergedDataIndex]=$newMerged[$mergedColName[$j]][$index];
13879
							
13879
 
13880
							}#for end
13880
							}#for end
13881
							
13881
 
13882
						#次表有幾個欄位就執行幾次
13882
						#次表有幾個欄位就執行幾次
13883
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){	
13883
						foreach($fastGetDbData["dataColumnName"] as $linkedColName){
13884
							
13884
 
13885
							#加上新的欄位資料
13885
							#加上新的欄位資料
13886
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$newMergedDataIndex]=$fastGetDbData["dataContent"][$linkedColName][$i];
13886
							$newMerged[$linkDb.".".$linkDt.".".$linkedColName][$newMergedDataIndex]=$fastGetDbData["dataContent"][$linkedColName][$i];
13887
							
13887
 
13888
							}#foreach end
13888
							}#foreach end
13889
						
13889
 
13890
						}#for end
13890
						}#for end
13891
						
13891
 
13892
					}#else end
13892
					}#else end
13893
					
13893
 
13894
				}#foreach end
13894
				}#foreach end
13895
			
13895
 
13896
			}#foreach end
13896
			}#foreach end
13897
		
13897
 
13898
		#如果有設置要的欄位
13898
		#如果有設置要的欄位
13899
		if(isset($conf["columnYouWant"])){
13899
		if(isset($conf["columnYouWant"])){
13900
			
13900
 
13901
			#初始化儲存僅需要的欄位
13901
			#初始化儲存僅需要的欄位
13902
			$filteredCol=array();
13902
			$filteredCol=array();
13903
			
13903
 
13904
			#依照每個需要的欄位
13904
			#依照每個需要的欄位
13905
			foreach($conf["columnYouWant"] as $colYouWant){
13905
			foreach($conf["columnYouWant"] as $colYouWant){
13906
				
13906
 
13907
				#如果要的欄位不存在
13907
				#如果要的欄位不存在
13908
				if(!isset($newMerged[$colYouWant])){
13908
				if(!isset($newMerged[$colYouWant])){
13909
					
13909
 
13910
					#設置執行不正常;  
13910
					#設置執行不正常;
13911
					$result["status"]="false";
13911
					$result["status"]="false";
13912
					
13912
 
13913
					#設置錯誤訊息
13913
					#設置錯誤訊息
13914
					$result["error"][]="欄位 ".$colYouWant." 不存在於查詢後的結果!";
13914
					$result["error"][]="欄位 ".$colYouWant." 不存在於查詢後的結果!";
13915
					
13915
 
13916
					#回傳結果
13916
					#回傳結果
13917
					return $result;
13917
					return $result;
13918
					
13918
 
13919
					}#if end
13919
					}#if end
13920
								
13920
 
13921
				#取得欄位內容
13921
				#取得欄位內容
13922
				$filteredCol[$colYouWant]=&$newMerged[$colYouWant];
13922
				$filteredCol[$colYouWant]=&$newMerged[$colYouWant];
13923
				
13923
 
13924
				}#foreach end
13924
				}#foreach end
13925
				
13925
 
13926
			#置換成篩選過後的欄位資訊
13926
			#置換成篩選過後的欄位資訊
13927
			$newMerged=$filteredCol;
13927
			$newMerged=$filteredCol;
13928
			
13928
 
13929
			}#if end
13929
			}#if end
13930
			
13930
 
13931
		#設置執行正常
13931
		#設置執行正常
13932
		$result["status"]="true";
13932
		$result["status"]="true";
13933
		
13933
 
13934
		#設置join完的資料;
13934
		#設置join完的資料;
13935
		$result["content"]=$merged;
13935
		$result["content"]=$merged;
13936
		
13936
 
13937
		#回傳結果
13937
		#回傳結果
13938
		return $result;
13938
		return $result;
13939
						
13939
 
13940
		}#function joinByPHP end
13940
		}#function joinByPHP end
13941
	
13941
 
13942
	/*
13942
	/*
13943
	#函式說明:
13943
	#函式說明:
13944
	#取得該資料表總共有幾筆資料
13944
	#取得該資料表總共有幾筆資料
13945
	#回傳變數:
13945
	#回傳變數:
13946
	#$result["status"],爲執行是否正常,若爲"true"則成功,若爲"false"則表示失敗了
13946
	#$result["status"],爲執行是否正常,若爲"true"則成功,若爲"false"則表示失敗了
Line 13950... Line 13950...
13950
	#必填參數:
13950
	#必填參數:
13951
	#$conf["dbAddress"],字串,爲mysql-Server的位置.
13951
	#$conf["dbAddress"],字串,爲mysql-Server的位置.
13952
	$conf["dbAddress"]=$dbAddress;
13952
	$conf["dbAddress"]=$dbAddress;
13953
	#$conf["dbAccount"]字串,爲用於連入mysql-Server時要使用的帳號.
13953
	#$conf["dbAccount"]字串,爲用於連入mysql-Server時要使用的帳號.
13954
	$conf["dbAccount"]=$dbAccount;
13954
	$conf["dbAccount"]=$dbAccount;
13955
	#$conf["selectedDataBaseName"],字串,要選取的資料庫名稱	
13955
	#$conf["selectedDataBaseName"],字串,要選取的資料庫名稱
13956
	$conf["selectedDataBaseName"]=$dbName;
13956
	$conf["selectedDataBaseName"]=$dbName;
13957
	#$conf["selectedDataTableName"],字串,為要計算的對象資料表
13957
	#$conf["selectedDataTableName"],字串,為要計算的對象資料表
13958
	$conf["selectedDataTableName"]="";#為要計算的對象資料表
13958
	$conf["selectedDataTableName"]="";#為要計算的對象資料表
13959
	#可省略參數:
13959
	#可省略參數:
13960
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
13960
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
Line 13963... Line 13963...
13963
	#$conf["dbPort"]=$dbPort;
13963
	#$conf["dbPort"]=$dbPort;
13964
	#參考資料:
13964
	#參考資料:
13965
	#無.
13965
	#無.
13966
	#備註:
13966
	#備註:
13967
	#無.
13967
	#無.
13968
	*/	
13968
	*/
13969
	public static function getDataCountsInTable($conf){
13969
	public static function getDataCountsInTable($conf){
13970
 
13970
 
13971
		#初始化要回傳的內容
13971
		#初始化要回傳的內容
13972
		$result=array();
13972
		$result=array();
13973
 
13973
 
13974
		#取得當前執行的函數名稱
13974
		#取得當前執行的函數名稱
13975
		$result["function"]=__FUNCTION__;
13975
		$result["function"]=__FUNCTION__;
13976
 
13976
 
13977
		#如果 $conf 不為陣列
13977
		#如果 $conf 不為陣列
13978
		if(gettype($conf)!="array"){
13978
		if(gettype($conf)!="array"){
13979
			
13979
 
13980
			#設置執行失敗
13980
			#設置執行失敗
13981
			$result["status"]="false";
13981
			$result["status"]="false";
13982
			
13982
 
13983
			#設置執行錯誤訊息
13983
			#設置執行錯誤訊息
13984
			$result["error"][]="\$conf變數須為陣列形態";
13984
			$result["error"][]="\$conf變數須為陣列形態";
13985
 
13985
 
13986
			#如果傳入的參數為 null
13986
			#如果傳入的參數為 null
13987
			if($conf==null){
13987
			if($conf==null){
13988
				
13988
 
13989
				#設置執行錯誤訊息
13989
				#設置執行錯誤訊息
13990
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
13990
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
13991
				
13991
 
13992
				}#if end
13992
				}#if end
13993
 
13993
 
13994
			#回傳結果
13994
			#回傳結果
13995
			return $result;
13995
			return $result;
13996
			
13996
 
13997
			}#if end
13997
			}#if end
13998
 
13998
 
13999
		#檢查參數
13999
		#檢查參數
14000
		#函式說明:
14000
		#函式說明:
14001
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
14001
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
Line 14006... Line 14006...
14006
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
14006
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
14007
		#必填參數:
14007
		#必填參數:
14008
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
14008
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
14009
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbPassword","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
14009
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbPassword","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
14010
		#可省略參數:
14010
		#可省略參數:
14011
		#$conf["variableCheck"]["isexistMuti"]["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
14011
		#$conf["variableCheck"]["isexistMuti"]["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
14012
		#$conf["variableCheck"]["isexistMuti"]"canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
14012
		#$conf["variableCheck"]["isexistMuti"]"canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
14013
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
14013
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
14014
		unset($conf["variableCheck"]["isexistMuti"]);
14014
		unset($conf["variableCheck"]["isexistMuti"]);
14015
 
14015
 
14016
		#如果 $checkResult["status"] 等於 "false"
14016
		#如果 $checkResult["status"] 等於 "false"
14017
		if($checkResult["status"]=="false"){
14017
		if($checkResult["status"]=="false"){
14018
			
14018
 
14019
			#設置錯識別
14019
			#設置錯識別
14020
			$result["status"]="false";
14020
			$result["status"]="false";
14021
			
14021
 
14022
			#設置錯誤訊息
14022
			#設置錯誤訊息
14023
			$result["error"]=$checkResult;
14023
			$result["error"]=$checkResult;
14024
			
14024
 
14025
			#回傳結果
14025
			#回傳結果
14026
			return $result;
14026
			return $result;
14027
			
14027
 
14028
			}#if end
14028
			}#if end
14029
			
14029
 
14030
		#如果 $checkResult["passed"] 等於 "false"
14030
		#如果 $checkResult["passed"] 等於 "false"
14031
		if($checkResult["passed"]=="false"){
14031
		if($checkResult["passed"]=="false"){
14032
			
14032
 
14033
			#設置錯識別
14033
			#設置錯識別
14034
			$result["passed"]="false";
14034
			$result["passed"]="false";
14035
			
14035
 
14036
			#設置錯誤訊息
14036
			#設置錯誤訊息
14037
			$result["error"]=$checkResult;
14037
			$result["error"]=$checkResult;
14038
			
14038
 
14039
			#回傳結果
14039
			#回傳結果
14040
			return $result;
14040
			return $result;
14041
			
14041
 
14042
			}#if end
14042
			}#if end
14043
 
14043
 
14044
		#函式說明:
14044
		#函式說明:
14045
		#執行mysql指令
14045
		#執行mysql指令
14046
		#回傳結果::
14046
		#回傳結果::
Line 14052... Line 14052...
14052
		#必填參數:
14052
		#必填參數:
14053
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14053
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14054
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14054
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14055
		$conf["db"]["execMysqlQuery"]["dbSql"]="select count(*) from ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." ;";#要執行sql語法
14055
		$conf["db"]["execMysqlQuery"]["dbSql"]="select count(*) from ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." ;";#要執行sql語法
14056
		#可省略參數:
14056
		#可省略參數:
14057
		
14057
 
14058
		#如果 $conf["dbPassword"] 有設定
14058
		#如果 $conf["dbPassword"] 有設定
14059
		if(isset($conf["dbPassword"])){
14059
		if(isset($conf["dbPassword"])){
14060
			
14060
 
14061
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14061
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14062
			
14062
 
14063
			}#if end
14063
			}#if end
14064
			
14064
 
14065
		#如果 $conf["dbPort"] 有設定
14065
		#如果 $conf["dbPort"] 有設定
14066
		if(isset($conf["dbPort"])){
14066
		if(isset($conf["dbPort"])){
14067
			
14067
 
14068
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的 port.
14068
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的 port.
14069
			
14069
 
14070
			}#if end
14070
			}#if end
14071
				
14071
 
14072
		#執行查尋	
14072
		#執行查尋
14073
		$countResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
14073
		$countResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
14074
		unset($conf["db"]["execMysqlQuery"]);
14074
		unset($conf["db"]["execMysqlQuery"]);
14075
 
14075
 
14076
		#如果執行失敗
14076
		#如果執行失敗
14077
		if($countResult["status"]=="false"){
14077
		if($countResult["status"]=="false"){
14078
			
14078
 
14079
			#設置錯誤識別
14079
			#設置錯誤識別
14080
			$result["status"]="false";
14080
			$result["status"]="false";
14081
			
14081
 
14082
			#設置錯誤訊息
14082
			#設置錯誤訊息
14083
			$result["error"]=$countResult;
14083
			$result["error"]=$countResult;
14084
			
14084
 
14085
			#回傳結果
14085
			#回傳結果
14086
			return $result;
14086
			return $result;
14087
			
14087
 
14088
			}#if end
14088
			}#if end
14089
			
14089
 
14090
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
14090
		#解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
14091
		#回傳結果:
14091
		#回傳結果:
14092
		#$result["status"],執行結果"true"為成功;"false"為失敗
14092
		#$result["status"],執行結果"true"為成功;"false"為失敗
14093
		#$result["error"],錯誤訊息
14093
		#$result["error"],錯誤訊息
14094
		#$result["dataColumnName"],為資料欄位的名稱陣列.
14094
		#$result["dataColumnName"],為資料欄位的名稱陣列.
Line 14102... Line 14102...
14102
		$conf["db"]["sendQueryDataToVariabele"]["sqlQueryResult"]=$countResult["queryResource"];#爲執行sql語法所獲得的查詢結果。
14102
		$conf["db"]["sendQueryDataToVariabele"]["sqlQueryResult"]=$countResult["queryResource"];#爲執行sql語法所獲得的查詢結果。
14103
		$conf["db"]["sendQueryDataToVariabele"]["tableValueName"]=array("count(*)");#爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
14103
		$conf["db"]["sendQueryDataToVariabele"]["tableValueName"]=array("count(*)");#爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
14104
		$conf["db"]["sendQueryDataToVariabele"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14104
		$conf["db"]["sendQueryDataToVariabele"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14105
		$conf["db"]["sendQueryDataToVariabele"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14105
		$conf["db"]["sendQueryDataToVariabele"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14106
		#可省略參數:
14106
		#可省略參數:
14107
		
14107
 
14108
		#如果 $conf["dbPassword"] 有設置
14108
		#如果 $conf["dbPassword"] 有設置
14109
		if(isset($conf["dbPassword"])){
14109
		if(isset($conf["dbPassword"])){
14110
		
14110
 
14111
			$conf["db"]["sendQueryDataToVariabele"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14111
			$conf["db"]["sendQueryDataToVariabele"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14112
		
14112
 
14113
			}#if end
14113
			}#if end
14114
		
14114
 
14115
		#如果 $conf["dbPort"] 有設置
14115
		#如果 $conf["dbPort"] 有設置
14116
		if(isset($conf["dbPort"])){
14116
		if(isset($conf["dbPort"])){
14117
		
14117
 
14118
			$conf["db"]["sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的port 3306
14118
			$conf["db"]["sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的port 3306
14119
		
14119
 
14120
			}#if end
14120
			}#if end
14121
		
14121
 
14122
		$conf["db"]["sendQueryDataToVariabele"]["valueName"]=array("count");#陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
14122
		$conf["db"]["sendQueryDataToVariabele"]["valueName"]=array("count");#陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
14123
		#參考資料:
14123
		#參考資料:
14124
		#http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
14124
		#http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
14125
		$getCountResult=db::sendQueryDataToVariabele($conf["db"]["sendQueryDataToVariabele"]);
14125
		$getCountResult=db::sendQueryDataToVariabele($conf["db"]["sendQueryDataToVariabele"]);
14126
		unset($conf["db"]["sendQueryDataToVariabele"]);
14126
		unset($conf["db"]["sendQueryDataToVariabele"]);
14127
 
14127
 
14128
		#如果 $getCountResult["status"] 等於 "false"
14128
		#如果 $getCountResult["status"] 等於 "false"
14129
		if($getCountResult["status"]=="false"){
14129
		if($getCountResult["status"]=="false"){
14130
			
14130
 
14131
			#設置錯誤識別
14131
			#設置錯誤識別
14132
			$result["status"]="false";
14132
			$result["status"]="false";
14133
			
14133
 
14134
			#設置錯誤訊息
14134
			#設置錯誤訊息
14135
			$result["error"]=$getCountResult;
14135
			$result["error"]=$getCountResult;
14136
			
14136
 
14137
			#回傳結果
14137
			#回傳結果
14138
			return $result;
14138
			return $result;
14139
			
14139
 
14140
			}#if end
14140
			}#if end
14141
 
14141
 
14142
		#取得資料筆數
14142
		#取得資料筆數
14143
		$result["dataCount"]=$getCountResult["dataContent"]["count"][0];
14143
		$result["dataCount"]=$getCountResult["dataContent"]["count"][0];
14144
			
14144
 
14145
		#執行到這邊代表執行正常
14145
		#執行到這邊代表執行正常
14146
		$result["status"]="true";
14146
		$result["status"]="true";
14147
 
14147
 
14148
		#回傳查詢的結果;	
14148
		#回傳查詢的結果;
14149
		return $result;	
14149
		return $result;
14150
					
14150
 
14151
		}#function getDataCountsInTable end
14151
		}#function getDataCountsInTable end
14152
 
14152
 
14153
	/*
14153
	/*
14154
	#函式說明:
14154
	#函式說明:
14155
	#插入資料到指定的資料表裡面,插入資料完畢可以選擇是否要進行轉址。
14155
	#插入資料到指定的資料表裡面,插入資料完畢可以選擇是否要進行轉址。
14156
	#回傳結果:	
14156
	#回傳結果:
14157
	#$result["status"],爲查詢是否成功,若爲"true"則成功,若爲"false"則表示失敗了.
14157
	#$result["status"],爲查詢是否成功,若爲"true"則成功,若爲"false"則表示失敗了.
14158
	#$result["error"],錯誤訊息.
14158
	#$result["error"],錯誤訊息.
14159
	#$result["sql"],執行的sql語法.
14159
	#$result["sql"],執行的sql語法.
14160
	#$result["lastInsertId"],新增的資料id.
14160
	#$result["lastInsertId"],新增的資料id.
14161
	#$result["function"],當前執行的涵式
14161
	#$result["function"],當前執行的涵式
Line 14179... Line 14179...
14179
	#$conf["dbPort"]=$dbPort;
14179
	#$conf["dbPort"]=$dbPort;
14180
	#參考資料:
14180
	#參考資料:
14181
	#http://www.javaworld.com.tw/jute/post/view?bid=21&id=173738&sty=1
14181
	#http://www.javaworld.com.tw/jute/post/view?bid=21&id=173738&sty=1
14182
	#備註:
14182
	#備註:
14183
	#無.
14183
	#無.
14184
	*/	
14184
	*/
14185
	public static function insertData($conf){
14185
	public static function insertData($conf){
14186
	
14186
 
14187
		#初始化要回傳的內容
14187
		#初始化要回傳的內容
14188
		$result=array();
14188
		$result=array();
14189
 
14189
 
14190
		#取得當前執行的函數名稱
14190
		#取得當前執行的函數名稱
14191
		$result["function"]=__FUNCTION__;
14191
		$result["function"]=__FUNCTION__;
14192
 
14192
 
14193
		#如果 $conf 不為陣列
14193
		#如果 $conf 不為陣列
14194
		if(gettype($conf)!="array"){
14194
		if(gettype($conf)!="array"){
14195
			
14195
 
14196
			#設置執行失敗
14196
			#設置執行失敗
14197
			$result["status"]="false";
14197
			$result["status"]="false";
14198
			
14198
 
14199
			#設置執行錯誤訊息
14199
			#設置執行錯誤訊息
14200
			$result["error"][]="\$conf變數須為陣列形態";
14200
			$result["error"][]="\$conf變數須為陣列形態";
14201
 
14201
 
14202
			#如果傳入的參數為 null
14202
			#如果傳入的參數為 null
14203
			if($conf==null){
14203
			if($conf==null){
14204
				
14204
 
14205
				#設置執行錯誤訊息
14205
				#設置執行錯誤訊息
14206
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
14206
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
14207
				
14207
 
14208
				}#if end
14208
				}#if end
14209
 
14209
 
14210
			#回傳結果
14210
			#回傳結果
14211
			return $result;
14211
			return $result;
14212
			
14212
 
14213
			}#if end
14213
			}#if end
14214
		
14214
 
14215
		#函式說明:
14215
		#函式說明:
14216
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
14216
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
14217
		#回傳結果:
14217
		#回傳結果:
14218
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
14218
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
14219
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
14219
		#$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
14220
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
14220
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
14221
		#必填參數:
14221
		#必填參數:
14222
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
14222
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
14223
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","tableName","columnName","insertValue");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
14223
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","tableName","columnName","insertValue");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
14224
		#可省略參數:
14224
		#可省略參數:
14225
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
14225
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
14226
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
14226
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
14227
		#備註:
14227
		#備註:
14228
		#功能與checkExistAndType函式相同
14228
		#功能與checkExistAndType函式相同
14229
		$variableCheck=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
14229
		$variableCheck=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
14230
		unset($conf["variableCheck"]["isexistMuti"]);
14230
		unset($conf["variableCheck"]["isexistMuti"]);
14231
 
14231
 
14232
		#如果 $variableCheck["status"] 等於 "false"
14232
		#如果 $variableCheck["status"] 等於 "false"
14233
		if($variableCheck["status"]=="false"){
14233
		if($variableCheck["status"]=="false"){
14234
			
14234
 
14235
			#設置執行錯誤的識別
14235
			#設置執行錯誤的識別
14236
			$result["status"]="false";
14236
			$result["status"]="false";
14237
			
14237
 
14238
			#設置執行錯誤的訊息
14238
			#設置執行錯誤的訊息
14239
			$result["error"]=$variableCheck;
14239
			$result["error"]=$variableCheck;
14240
			
14240
 
14241
			#回傳結果
14241
			#回傳結果
14242
			return $result;
14242
			return $result;
14243
			
14243
 
14244
			}#if end
14244
			}#if end
14245
 
14245
 
14246
		#如果 $variableCheck["passed"] 等於 "false"
14246
		#如果 $variableCheck["passed"] 等於 "false"
14247
		if($variableCheck["passed"]=="false"){
14247
		if($variableCheck["passed"]=="false"){
14248
			
14248
 
14249
			#設置執行錯誤的識別
14249
			#設置執行錯誤的識別
14250
			$result["status"]="false";
14250
			$result["status"]="false";
14251
			
14251
 
14252
			#設置執行錯誤的訊息
14252
			#設置執行錯誤的訊息
14253
			$result["error"]=$variableCheck;
14253
			$result["error"]=$variableCheck;
14254
			
14254
 
14255
			#回傳結果
14255
			#回傳結果
14256
			return $result;
14256
			return $result;
14257
			
14257
 
14258
			}#if end
14258
			}#if end
14259
 
14259
 
14260
		#連線到資料庫
14260
		#連線到資料庫
14261
		#函式說明:
14261
		#函式說明:
14262
		#連線到資料庫,結果會回傳一個陣列
14262
		#連線到資料庫,結果會回傳一個陣列
14263
		#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
14263
		#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
14264
		#$result["connectInformation"],爲回傳的mysql連線資訊.
14264
		#$result["connectInformation"],爲回傳的mysql連線資訊.
14265
		#$result["error"],錯誤訊息	.
14265
		#$result["error"],錯誤訊息	.
14266
		#$result["function"],當前執行的函數名稱.	
14266
		#$result["function"],當前執行的函數名稱.
14267
		#必填參數:
14267
		#必填參數:
14268
		$conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14268
		$conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14269
		$conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14269
		$conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14270
		#$conf["dbName"],字串,爲要連的資料庫名稱
14270
		#$conf["dbName"],字串,爲要連的資料庫名稱
14271
		$conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
14271
		$conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
14272
		#可省略參數:
14272
		#可省略參數:
14273
		
14273
 
14274
		#如果 $conf["dbPassword"] 有設定
14274
		#如果 $conf["dbPassword"] 有設定
14275
		if(isset($conf["dbPassword"])){
14275
		if(isset($conf["dbPassword"])){
14276
			
14276
 
14277
			$conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14277
			$conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14278
			
14278
 
14279
			}#if end
14279
			}#if end
14280
			
14280
 
14281
		#如果 $conf["dbPort"] 有設定
14281
		#如果 $conf["dbPort"] 有設定
14282
		if(isset($conf["dbPort"])){
14282
		if(isset($conf["dbPort"])){
14283
			
14283
 
14284
			$conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14284
			$conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14285
			
14285
 
14286
			}#if end
14286
			}#if end
14287
	
14287
 
14288
		$con=db::dbConnect($conf["db"]["dbConnect"]);
14288
		$con=db::dbConnect($conf["db"]["dbConnect"]);
14289
		unset($conf["db"]);
14289
		unset($conf["db"]);
14290
 
14290
 
14291
		#如果連線到資料庫失敗
14291
		#如果連線到資料庫失敗
14292
		if($con["status"]==="false"){
14292
		if($con["status"]==="false"){
14293
			
14293
 
14294
			#設置執行失敗
14294
			#設置執行失敗
14295
			$result["status"]="false";
14295
			$result["status"]="false";
14296
			
14296
 
14297
			#設置執行錯誤訊息
14297
			#設置執行錯誤訊息
14298
			$result["error"]=$con;
14298
			$result["error"]=$con;
14299
			
14299
 
14300
			#回傳結果
14300
			#回傳結果
14301
			return $result;
14301
			return $result;
14302
			
14302
 
14303
			}#if end
14303
			}#if end
14304
			
14304
 
14305
		#var_dump($con);
14305
		#var_dump($con);
14306
			
14306
 
14307
		#取得mysqli物件
14307
		#取得mysqli物件
14308
		$mysqli=$con["connectInformation"];
14308
		$mysqli=$con["connectInformation"];
14309
 
14309
 
14310
		#輸入資料到 資料表 board 的語法
14310
		#輸入資料到 資料表 board 的語法
14311
		$str1="insert into `".$conf["selectedDataBaseName"]."`.`".$conf["tableName"]."`(";
14311
		$str1="insert into `".$conf["selectedDataBaseName"]."`.`".$conf["tableName"]."`(";
14312
	
14312
 
14313
		#取得一筆資料有幾個項目
14313
		#取得一筆資料有幾個項目
14314
		$count=count($conf["columnName"]);
14314
		$count=count($conf["columnName"]);
14315
 
14315
 
14316
		#跑 $count-1 次,插入第一筆到最倒數第二筆
14316
		#跑 $count-1 次,插入第一筆到最倒數第二筆
14317
		for($i=0;$i<=($count-2);$i++){
14317
		for($i=0;$i<=($count-2);$i++){
14318
		
14318
 
14319
			#放入欲插入的項目名稱
14319
			#放入欲插入的項目名稱
14320
			$str1=$str1."`".$conf["columnName"][$i]."`".",";
14320
			$str1=$str1."`".$conf["columnName"][$i]."`".",";
14321
			
14321
 
14322
			}#for end
14322
			}#for end
14323
 
14323
 
14324
		#插入最後一筆項目名稱
14324
		#插入最後一筆項目名稱
14325
		$lastItem = ($count-1);
14325
		$lastItem = ($count-1);
14326
		$str1=$str1."`".$conf["columnName"][$lastItem]."`)";  
14326
		$str1=$str1."`".$conf["columnName"][$lastItem]."`)";
14327
	
14327
 
14328
		#要插入的數值語法開始
14328
		#要插入的數值語法開始
14329
		$str2=" values (";
14329
		$str2=" values (";
14330
 
14330
 
14331
		#跑 $count-1 次
14331
		#跑 $count-1 次
14332
		for($i=0;$i<=($count-2);$i++){
14332
		for($i=0;$i<=($count-2);$i++){
14333
 
14333
 
14334
			#插入第一筆到最倒數第二筆的資料內容	
14334
			#插入第一筆到最倒數第二筆的資料內容
14335
			$str2=$str2."'".mysqli_real_escape_string($mysqli,$conf["insertValue"][$i])."',";
14335
			$str2=$str2."'".mysqli_real_escape_string($mysqli,$conf["insertValue"][$i])."',";
14336
			
14336
 
14337
			}#for end
14337
			}#for end
14338
 
14338
 
14339
		#插入最後一筆的資料內容
14339
		#插入最後一筆的資料內容
14340
		$lastItem = ($count-1);
14340
		$lastItem = ($count-1);
14341
		$str2=$str2."'".mysqli_real_escape_string($mysqli,$conf["insertValue"][$lastItem])."');";  
14341
		$str2=$str2."'".mysqli_real_escape_string($mysqli,$conf["insertValue"][$lastItem])."');";
14342
 
14342
 
14343
		#合併要執行的sql語法
14343
		#合併要執行的sql語法
14344
		$sqlString=$str1.$str2;
14344
		$sqlString=$str1.$str2;
14345
	
14345
 
14346
		#執行sql語法
14346
		#執行sql語法
14347
		#函式說明:
14347
		#函式說明:
14348
		#執行mysql指令
14348
		#執行mysql指令
14349
		#回傳結果::
14349
		#回傳結果::
14350
		#$result["status"],"true"為執行成功;"false"為執行失敗。
14350
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 14355... Line 14355...
14355
		#查詢號的解果,需要解析。
14355
		#查詢號的解果,需要解析。
14356
		#必填參數:
14356
		#必填參數:
14357
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14357
		$conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14358
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14358
		$conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14359
		$conf["db::execMysqlQuery"]["dbSql"]=$sqlString;#要執行sql語法
14359
		$conf["db::execMysqlQuery"]["dbSql"]=$sqlString;#要執行sql語法
14360
		#可省略參數: 
14360
		#可省略參數:
14361
		
14361
 
14362
		#如果 $conf["dbPassword"] 有設置
14362
		#如果 $conf["dbPassword"] 有設置
14363
		if(isset($conf["dbPassword"])){
14363
		if(isset($conf["dbPassword"])){
14364
			
14364
 
14365
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14365
			$conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14366
			
14366
 
14367
			}#if end
14367
			}#if end
14368
			
14368
 
14369
		#如果 $conf["dbPort"] 有設置
14369
		#如果 $conf["dbPort"] 有設置
14370
		if(isset($conf["dbPort"])){
14370
		if(isset($conf["dbPort"])){
14371
			
14371
 
14372
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
14372
			$conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
14373
			
14373
 
14374
			}#if end
14374
			}#if end
14375
		
14375
 
14376
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
14376
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
14377
		$conf["db::execMysqlQuery"]["dbLink"]=$mysqli;
14377
		$conf["db::execMysqlQuery"]["dbLink"]=$mysqli;
14378
		#$conf["autoClose],字串,"true"代表要自動斷線,預設為"true"會自動斷線
14378
		#$conf["autoClose],字串,"true"代表要自動斷線,預設為"true"會自動斷線
14379
		$conf["db::execMysqlQuery"]["autoClose"]="false";
14379
		$conf["db::execMysqlQuery"]["autoClose"]="false";
14380
		$mysqlQueryResult=db::execMysqlQuery($conf["db::execMysqlQuery"]);
14380
		$mysqlQueryResult=db::execMysqlQuery($conf["db::execMysqlQuery"]);
14381
		unset($conf["db::execMysqlQuery"]);
14381
		unset($conf["db::execMysqlQuery"]);
14382
	
14382
 
14383
		#若執行 query 語法失敗
14383
		#若執行 query 語法失敗
14384
		if($mysqlQueryResult["status"]=="false"){
14384
		if($mysqlQueryResult["status"]=="false"){
14385
			
14385
 
14386
			#設置執行錯誤識別
14386
			#設置執行錯誤識別
14387
			$result["status"]="false";
14387
			$result["status"]="false";
14388
			
14388
 
14389
			#設置錯誤訊息
14389
			#設置錯誤訊息
14390
			$result["error"]=$mysqlQueryResult;				
14390
			$result["error"]=$mysqlQueryResult;
14391
 
14391
 
14392
			#回傳結果
14392
			#回傳結果
14393
			return $result;
14393
			return $result;
14394
 
14394
 
14395
			}#else end
14395
			}#else end
14396
		
14396
 
14397
		#取得新增的該筆記錄id
14397
		#取得新增的該筆記錄id
14398
		$result["lastInsertId"]=mysqli_insert_id($mysqlQueryResult["queryConn"]);
14398
		$result["lastInsertId"]=mysqli_insert_id($mysqlQueryResult["queryConn"]);
14399
 
14399
 
14400
		#取得執行的sql字串
14400
		#取得執行的sql字串
14401
		$result["sql"]=$mysqlQueryResult["queryString"];
14401
		$result["sql"]=$mysqlQueryResult["queryString"];
Line 14403... Line 14403...
14403
		#執行到這邊代表執行成功
14403
		#執行到這邊代表執行成功
14404
		$result["status"]="true";
14404
		$result["status"]="true";
14405
 
14405
 
14406
		#回傳結果
14406
		#回傳結果
14407
		return $result;
14407
		return $result;
14408
		
14408
 
14409
		}#function insertData end
14409
		}#function insertData end
14410
 
14410
 
14411
	/*
14411
	/*
14412
	#函式說明:	
14412
	#函式說明:
14413
	#更新資料表裏面的資料
14413
	#更新資料表裏面的資料
14414
	#回傳結果:	
14414
	#回傳結果:
14415
	#$result["status"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了
14415
	#$result["status"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了
14416
	#$result["error"],錯誤訊息
14416
	#$result["error"],錯誤訊息
14417
	#$result["function"],當前執行的函數名稱
14417
	#$result["function"],當前執行的函數名稱
14418
	#$result["sql"],執行的sql語法.
14418
	#$result["sql"],執行的sql語法.
14419
	#$result["argu"],使用的參數.
14419
	#$result["argu"],使用的參數.
Line 14445... Line 14445...
14445
	#無.
14445
	#無.
14446
	#備註:
14446
	#備註:
14447
	#建議修改 whereValue 參數為多維陣列,每個元素為有兩個元素的陣列,其元素的key為operator者代表運算子,其value可以為"=","<>",">","<",預設為"=";key為value者代表運算元,亦即用來比較的數字、字串等.
14447
	#建議修改 whereValue 參數為多維陣列,每個元素為有兩個元素的陣列,其元素的key為operator者代表運算子,其value可以為"=","<>",">","<",預設為"=";key為value者代表運算元,亦即用來比較的數字、字串等.
14448
	*/
14448
	*/
14449
	public static function updateDataTableContent($conf){
14449
	public static function updateDataTableContent($conf){
14450
	
14450
 
14451
		#初始化要回傳的內容
14451
		#初始化要回傳的內容
14452
		$result=array();
14452
		$result=array();
14453
 
14453
 
14454
		#取得當前執行的函數名稱
14454
		#取得當前執行的函數名稱
14455
		$result["function"]=__FUNCTION__;
14455
		$result["function"]=__FUNCTION__;
14456
 
14456
 
14457
		#如果 $conf 不為陣列
14457
		#如果 $conf 不為陣列
14458
		if(gettype($conf)!=="array"){
14458
		if(gettype($conf)!=="array"){
14459
			
14459
 
14460
			#設置執行失敗
14460
			#設置執行失敗
14461
			$result["status"]="false";
14461
			$result["status"]="false";
14462
			
14462
 
14463
			#設置執行錯誤訊息
14463
			#設置執行錯誤訊息
14464
			$result["error"][]="\$conf變數須為陣列形態";
14464
			$result["error"][]="\$conf變數須為陣列形態";
14465
 
14465
 
14466
			#如果傳入的參數為 null
14466
			#如果傳入的參數為 null
14467
			if($conf==null){
14467
			if($conf==null){
14468
				
14468
 
14469
				#設置執行錯誤訊息
14469
				#設置執行錯誤訊息
14470
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
14470
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
14471
				
14471
 
14472
				}#if end
14472
				}#if end
14473
 
14473
 
14474
			#回傳結果
14474
			#回傳結果
14475
			return $result;
14475
			return $result;
14476
			
14476
 
14477
			}#if end
14477
			}#if end
14478
		
14478
 
14479
		#儲存使用的參數
14479
		#儲存使用的參數
14480
		$result["argu"]=$conf;
14480
		$result["argu"]=$conf;
14481
		
14481
 
14482
		#函式說明:
14482
		#函式說明:
14483
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
14483
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
14484
		#回傳結果:
14484
		#回傳結果:
14485
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
14485
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
14486
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
14486
		#$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
Line 14488... Line 14488...
14488
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
14488
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
14489
		#必填參數:
14489
		#必填參數:
14490
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
14490
		$conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
14491
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","dbAddress","dbAccount","selectedDataBaseName","tableName","whereColumn","whereValue","tableColumnName","updateDataValue");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
14491
		$conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","dbAddress","dbAccount","selectedDataBaseName","tableName","whereColumn","whereValue","tableColumnName","updateDataValue");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
14492
		#可省略參數:
14492
		#可省略參數:
14493
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","string","array","array","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
14493
		$conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","string","array","array","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
14494
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
14494
		#$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
14495
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
14495
		$checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
14496
		unset($conf["variableCheck"]["isexistMuti"]);
14496
		unset($conf["variableCheck"]["isexistMuti"]);
14497
		
14497
 
14498
		#如果檢查參數作業出錯
14498
		#如果檢查參數作業出錯
14499
		if($checkResult["status"]==="false"){
14499
		if($checkResult["status"]==="false"){
14500
			
14500
 
14501
			#設置執行錯誤識別
14501
			#設置執行錯誤識別
14502
			$result["status"]="false";
14502
			$result["status"]="false";
14503
			
14503
 
14504
			#設置錯誤訊息
14504
			#設置錯誤訊息
14505
			$result["error"]=$checkResult;
14505
			$result["error"]=$checkResult;
14506
			
14506
 
14507
			#回傳結果
14507
			#回傳結果
14508
			return $result;
14508
			return $result;
14509
			
14509
 
14510
			}#if end
14510
			}#if end
14511
		
14511
 
14512
		#如果檢查沒通過
14512
		#如果檢查沒通過
14513
		if($checkResult["passed"]==="false"){
14513
		if($checkResult["passed"]==="false"){
14514
			
14514
 
14515
			#設置執行錯誤識別
14515
			#設置執行錯誤識別
14516
			$result["status"]="false";
14516
			$result["status"]="false";
14517
			
14517
 
14518
			#設置錯誤訊息
14518
			#設置錯誤訊息
14519
			$result["error"]=$checkResult;
14519
			$result["error"]=$checkResult;
14520
			
14520
 
14521
			#回傳結果
14521
			#回傳結果
14522
			return $result;
14522
			return $result;
14523
			
14523
 
14524
			}#if end
14524
			}#if end
14525
 
14525
 
14526
		#將陣列變數 $conf["whereColumn"] 與 $conf["whereValue"] 對應的變數中不存在的 $conf["whereValue"][$i] 元素去掉,並同時調整 $conf["whereColumn"] 使兩者變數的元素數量均相同。
14526
		#將陣列變數 $conf["whereColumn"] 與 $conf["whereValue"] 對應的變數中不存在的 $conf["whereValue"][$i] 元素去掉,並同時調整 $conf["whereColumn"] 使兩者變數的元素數量均相同。
14527
		#函式說明:
14527
		#函式說明:
14528
		#比對兩個陣列變數,如果其中一個陣列變數的元素不存在,則將之消去,然後進行替補。另一個陣列變數則也要做同步的動作。
14528
		#比對兩個陣列變數,如果其中一個陣列變數的元素不存在,則將之消去,然後進行替補。另一個陣列變數則也要做同步的動作。
Line 14537... Line 14537...
14537
		$compareAndModifyTwoArrays=arrays::compareAndModifyTwoArrays($conf_compareAndModify2Arrays);
14537
		$compareAndModifyTwoArrays=arrays::compareAndModifyTwoArrays($conf_compareAndModify2Arrays);
14538
		unset($conf_compareAndModify2Arrays);
14538
		unset($conf_compareAndModify2Arrays);
14539
 
14539
 
14540
		#如果 arrays::compareAndModifyTwoArrays 執行失敗
14540
		#如果 arrays::compareAndModifyTwoArrays 執行失敗
14541
		if($compareAndModifyTwoArrays["status"]==="false"){
14541
		if($compareAndModifyTwoArrays["status"]==="false"){
14542
			
14542
 
14543
			#設置執行錯誤識別
14543
			#設置執行錯誤識別
14544
			$result["status"]="false";
14544
			$result["status"]="false";
14545
			
14545
 
14546
			#設置錯誤訊息
14546
			#設置錯誤訊息
14547
			$result["error"]=$compareAndModifyTwoArrays;
14547
			$result["error"]=$compareAndModifyTwoArrays;
14548
			
14548
 
14549
			#回傳結果
14549
			#回傳結果
14550
			return $result;
14550
			return $result;
14551
			
14551
 
14552
			}#if end
14552
			}#if end
14553
 
14553
 
14554
		#將整理好的 $result["compareAndModify2Arrays"]["A"] 放到 $conf["whereColumn"] ; $result["compareAndModify2Arrays"]["B"] 放到 $conf["whereValue"]
14554
		#將整理好的 $result["compareAndModify2Arrays"]["A"] 放到 $conf["whereColumn"] ; $result["compareAndModify2Arrays"]["B"] 放到 $conf["whereValue"]
14555
		$conf["tableColumnName"]=$compareAndModifyTwoArrays["newArraysA"];
14555
		$conf["tableColumnName"]=$compareAndModifyTwoArrays["newArraysA"];
14556
		$conf["updateDataValue"]=$compareAndModifyTwoArrays["newArraysB"];
14556
		$conf["updateDataValue"]=$compareAndModifyTwoArrays["newArraysB"];
14557
 
14557
 
14558
		#更新 $conf["selectedDatabaseName"].$tableName 資料表
14558
		#更新 $conf["selectedDatabaseName"].$tableName 資料表
14559
		$selectUpdateTableSql="UPDATE `".$conf["selectedDataBaseName"]."`.`".$conf["tableName"]."` "; 
14559
		$selectUpdateTableSql="UPDATE `".$conf["selectedDataBaseName"]."`.`".$conf["tableName"]."` ";
14560
		
14560
 
14561
		#更新資料表資料語法的一部分
14561
		#更新資料表資料語法的一部分
14562
		$chooseColumnSql="SET ";
14562
		$chooseColumnSql="SET ";
14563
 
14563
 
14564
		#取得一筆資料有幾個項目
14564
		#取得一筆資料有幾個項目
14565
		$counts=count($conf["tableColumnName"]);
14565
		$counts=count($conf["tableColumnName"]);
Line 14576... Line 14576...
14576
			#如果是最後一項要更新的資料
14576
			#如果是最後一項要更新的資料
14577
			if($i==($counts-1)){
14577
			if($i==($counts-1)){
14578
 
14578
 
14579
				#如果內容不為字串
14579
				#如果內容不為字串
14580
				if(gettype($conf["updateDataValue"][$i])!=="string"){
14580
				if(gettype($conf["updateDataValue"][$i])!=="string"){
14581
				
14581
 
14582
					#設置執行錯誤識別
14582
					#設置執行錯誤識別
14583
					$result["status"]="false";
14583
					$result["status"]="false";
14584
					
14584
 
14585
					#設置錯誤訊息
14585
					#設置錯誤訊息
14586
					$result["error"][]="欲使用的變數不為字串";
14586
					$result["error"][]="欲使用的變數不為字串";
14587
					
14587
 
14588
					#設置錯誤訊息
14588
					#設置錯誤訊息
14589
					$result["error"][]=$conf["updateDataValue"][$i];
14589
					$result["error"][]=$conf["updateDataValue"][$i];
14590
					
14590
 
14591
					#回傳結果
14591
					#回傳結果
14592
					return $result;
14592
					return $result;
14593
				
14593
 
14594
					}#if end
14594
					}#if end
14595
 
14595
 
14596
				#定義 shell script 變數
14596
				#定義 shell script 變數
14597
				$shellVarDefined[]=array("cmd"=>"x".$i."=","param"=>array($conf["updateDataValue"][$i]));
14597
				$shellVarDefined[]=array("cmd"=>"x".$i."=","param"=>array($conf["updateDataValue"][$i]));
14598
				
14598
 
14599
				#定義sql變數
14599
				#定義sql變數
14600
				$varDefined[]="select @x".$i." := '\${x".$i."}';";
14600
				$varDefined[]="select @x".$i." := '\${x".$i."}';";
14601
 
14601
 
14602
				#將要更新的內容字串串接,結尾無逗號
14602
				#將要更新的內容字串串接,結尾無逗號
14603
				$chooseColumnSql = $chooseColumnSql."`".$conf["tableColumnName"][$i]."`= @x".$i." ";
14603
				$chooseColumnSql = $chooseColumnSql."`".$conf["tableColumnName"][$i]."`= @x".$i." ";
14604
				
14604
 
14605
				}#判斷式結束
14605
				}#判斷式結束
14606
 
14606
 
14607
			#如果不是最後一項要更新的資料
14607
			#如果不是最後一項要更新的資料
14608
			if($i!=($counts-1)){
14608
			if($i!=($counts-1)){
14609
 
14609
 
14610
				#定義 shell script 變數
14610
				#定義 shell script 變數
14611
				$shellVarDefined[]=array("cmd"=>"x".$i."=","param"=>array($conf["updateDataValue"][$i]));
14611
				$shellVarDefined[]=array("cmd"=>"x".$i."=","param"=>array($conf["updateDataValue"][$i]));
14612
				
14612
 
14613
				#定義sql變數
14613
				#定義sql變數
14614
				$varDefined[]="select @x".$i." := '\${x".$i."}';";
14614
				$varDefined[]="select @x".$i." := '\${x".$i."}';";
14615
 
14615
 
14616
				#將要更新的內容字串串接,結尾有逗號
14616
				#將要更新的內容字串串接,結尾有逗號
14617
				$chooseColumnSql = $chooseColumnSql."`".$conf["tableColumnName"][$i]."`= @x".$i." ,";
14617
				$chooseColumnSql = $chooseColumnSql."`".$conf["tableColumnName"][$i]."`= @x".$i." ,";
14618
				
14618
 
14619
				}#判斷式結束
14619
				}#判斷式結束
14620
		
14620
 
14621
			}#回圈結束
14621
			}#回圈結束
14622
 
14622
 
14623
		#取得條件有幾項
14623
		#取得條件有幾項
14624
		$conditionArrayCounts=count($conf["whereColumn"]);
14624
		$conditionArrayCounts=count($conf["whereColumn"]);
14625
 
14625
 
Line 14643... Line 14643...
14643
				#其它條件
14643
				#其它條件
14644
				$condition=$condition." AND `".$conf["whereColumn"][$i]."` = '".$conf["whereValue"][$i]."'";
14644
				$condition=$condition." AND `".$conf["whereColumn"][$i]."` = '".$conf["whereValue"][$i]."'";
14645
 
14645
 
14646
				#測試有無抓到其它條件
14646
				#測試有無抓到其它條件
14647
				#var_dump($condition);
14647
				#var_dump($condition);
14648
				
14648
 
14649
				}#判斷式結束
14649
				}#判斷式結束
14650
 
14650
 
14651
			}#迴圈結束
14651
			}#迴圈結束
14652
 
14652
 
14653
		#初始化定義變數的sql
14653
		#初始化定義變數的sql
14654
		$varDefineStr="";
14654
		$varDefineStr="";
14655
 
14655
 
14656
		#針對每個要使用的數值
14656
		#針對每個要使用的數值
14657
		foreach($varDefined as $index=>$var){
14657
		foreach($varDefined as $index=>$var){
14658
			
14658
 
14659
			#累加定義變數的sql
14659
			#累加定義變數的sql
14660
			$varDefineStr=$varDefineStr.$var;
14660
			$varDefineStr=$varDefineStr.$var;
14661
			
14661
 
14662
			}#foreach end
14662
			}#foreach end
14663
 
14663
 
14664
		#合併所有的語法成一句完整的語法 
14664
		#合併所有的語法成一句完整的語法
14665
		$sqlString = $varDefineStr.$selectUpdateTableSql.$chooseColumnSql.$condition;
14665
		$sqlString = $varDefineStr.$selectUpdateTableSql.$chooseColumnSql.$condition;
14666
 
14666
 
14667
		#debug
14667
		#debug
14668
		#var_dump(__LINE__,$sqlString);
14668
		#var_dump(__LINE__,$sqlString);
14669
 
14669
 
Line 14683... Line 14683...
14683
		#$conf["dbSql"],字串,要執行sql語法
14683
		#$conf["dbSql"],字串,要執行sql語法
14684
		$conf["db::shell"]["dbSql"]=$sqlString;
14684
		$conf["db::shell"]["dbSql"]=$sqlString;
14685
		#$conf["dbAddress"],字串,爲mysql-Server的位置。
14685
		#$conf["dbAddress"],字串,爲mysql-Server的位置。
14686
		$conf["db::shell"]["dbAddress"]=$conf["dbAddress"];
14686
		$conf["db::shell"]["dbAddress"]=$conf["dbAddress"];
14687
		#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
14687
		#$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
14688
		$conf["db::shell"]["dbAccount"]=$conf["dbAccount"]; 
14688
		$conf["db::shell"]["dbAccount"]=$conf["dbAccount"];
14689
		#可省略參數:
14689
		#可省略參數:
14690
		$conf["db::shell"]["pre"]=$shellVarDefined;
14690
		$conf["db::shell"]["pre"]=$shellVarDefined;
14691
				
14691
 
14692
		#如果有設定密碼
14692
		#如果有設定密碼
14693
		if(isset($conf["dbPassword"])){
14693
		if(isset($conf["dbPassword"])){
14694
		
14694
 
14695
			#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
14695
			#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
14696
			$conf["db::shell"]["dbPassword"]=$conf["dbPassword"];
14696
			$conf["db::shell"]["dbPassword"]=$conf["dbPassword"];
14697
	
14697
 
14698
			}#if end
14698
			}#if end
14699
				
14699
 
14700
		#$conf["dbName"],字串,爲要連的資料庫名稱
14700
		#$conf["dbName"],字串,爲要連的資料庫名稱
14701
		$conf["db::shell"]["dbName"]=$conf["selectedDataBaseName"];
14701
		$conf["db::shell"]["dbName"]=$conf["selectedDataBaseName"];
14702
		
14702
 
14703
		#如果有設定port
14703
		#如果有設定port
14704
		if(isset($conf["dbPort"])){
14704
		if(isset($conf["dbPort"])){
14705
		
14705
 
14706
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
14706
			#$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
14707
			$conf["db::shell"]["dbPort"]=$conf["dbPort"];
14707
			$conf["db::shell"]["dbPort"]=$conf["dbPort"];
14708
		
14708
 
14709
			}#if end
14709
			}#if end
14710
		
14710
 
14711
		$shell=db::shell($conf["db::shell"]);
14711
		$shell=db::shell($conf["db::shell"]);
14712
		unset($conf["db::shell"]);
14712
		unset($conf["db::shell"]);
14713
		
14713
 
14714
		#如果執行sql失敗
14714
		#如果執行sql失敗
14715
		if($shell["status"]==="false"){
14715
		if($shell["status"]==="false"){
14716
		
14716
 
14717
			#設置執行不正常
14717
			#設置執行不正常
14718
			$result["status"]="false";
14718
			$result["status"]="false";
14719
			
14719
 
14720
			#設置錯誤訊息
14720
			#設置錯誤訊息
14721
			$result["error"]=$shell;
14721
			$result["error"]=$shell;
14722
				
14722
 
14723
			#回傳結果
14723
			#回傳結果
14724
			return $result;
14724
			return $result;
14725
				
14725
 
14726
			}#if end
14726
			}#if end
14727
			
14727
 
14728
		#設置執行正常
14728
		#設置執行正常
14729
		$result["status"]="true";
14729
		$result["status"]="true";
14730
		
14730
 
14731
		#回傳結果
14731
		#回傳結果
14732
		return $result;
14732
		return $result;
14733
 
14733
 
14734
		}#function updateDataTableContent end
14734
		}#function updateDataTableContent end
14735
 
14735
 
14736
	/*
14736
	/*
14737
	#函式說明:
14737
	#函式說明:
14738
	#將滿足條件的資料從資料表中刪除
14738
	#將滿足條件的資料從資料表中刪除
14739
	#回傳結果:	
14739
	#回傳結果:
14740
	#$result["status"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了
14740
	#$result["status"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了
14741
	#$result["function"],當前執行的函數名稱.
14741
	#$result["function"],當前執行的函數名稱.
14742
	#$result["error"],錯誤訊息
14742
	#$result["error"],錯誤訊息
14743
	#$result["sql"],執行的語法
14743
	#$result["sql"],執行的語法
14744
	#必填參數:
14744
	#必填參數:
Line 14751... Line 14751...
14751
	#$conf["selectedDataTableName"],字串,要選取的資料表的名稱
14751
	#$conf["selectedDataTableName"],字串,要選取的資料表的名稱
14752
	$conf["selectedDataTableName"]="";
14752
	$conf["selectedDataTableName"]="";
14753
	#$conf["whereColumn"],字串陣列,爲用來判斷要刪除的哪筆資料的欄位名稱,須爲陣列值
14753
	#$conf["whereColumn"],字串陣列,爲用來判斷要刪除的哪筆資料的欄位名稱,須爲陣列值
14754
	$conf["whereColumn"]=array("");
14754
	$conf["whereColumn"]=array("");
14755
	#$conf["whereValue"]=,字串陣列,為用來判斷是要刪除哪筆資料的欄位對應數值,須爲陣列值
14755
	#$conf["whereValue"]=,字串陣列,為用來判斷是要刪除哪筆資料的欄位對應數值,須爲陣列值
14756
	$conf["whereValue"]=array("");	
14756
	$conf["whereValue"]=array("");
14757
	#可省略參數:
14757
	#可省略參數:
14758
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14758
	#$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14759
	#$conf["dbPassword"]=$dbPassword;
14759
	#$conf["dbPassword"]=$dbPassword;
14760
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
14760
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
14761
	#$conf["dbPort"]=$dbPort;
14761
	#$conf["dbPort"]=$dbPort;
Line 14765... Line 14765...
14765
	#$conf["WhereColumnAndOr"]=array("");
14765
	#$conf["WhereColumnAndOr"]=array("");
14766
	#參考資料:
14766
	#參考資料:
14767
	#無.
14767
	#無.
14768
	#備註:
14768
	#備註:
14769
	#無.
14769
	#無.
14770
	*/	
14770
	*/
14771
	public static function deleteDataFromTable(&$conf){
14771
	public static function deleteDataFromTable(&$conf){
14772
	
14772
 
14773
		#初始化要回傳的內容
14773
		#初始化要回傳的內容
14774
		$result=array();
14774
		$result=array();
14775
 
14775
 
14776
		#取得當前執行的函數名稱
14776
		#取得當前執行的函數名稱
14777
		$result["function"]=__FUNCTION__;
14777
		$result["function"]=__FUNCTION__;
14778
 
14778
 
14779
		#如果 $conf 不為陣列
14779
		#如果 $conf 不為陣列
14780
		if(gettype($conf)!="array"){
14780
		if(gettype($conf)!="array"){
14781
			
14781
 
14782
			#設置執行失敗
14782
			#設置執行失敗
14783
			$result["status"]="false";
14783
			$result["status"]="false";
14784
			
14784
 
14785
			#設置執行錯誤訊息
14785
			#設置執行錯誤訊息
14786
			$result["error"][]="\$conf變數須為陣列形態";
14786
			$result["error"][]="\$conf變數須為陣列形態";
14787
 
14787
 
14788
			#如果傳入的參數為 null
14788
			#如果傳入的參數為 null
14789
			if($conf==null){
14789
			if($conf==null){
14790
				
14790
 
14791
				#設置執行錯誤訊息
14791
				#設置執行錯誤訊息
14792
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
14792
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
14793
				
14793
 
14794
				}#if end
14794
				}#if end
14795
 
14795
 
14796
			#回傳結果
14796
			#回傳結果
14797
			return $result;
14797
			return $result;
14798
			
14798
 
14799
			}#if end
14799
			}#if end
14800
 
14800
 
14801
		#檢查參數
14801
		#檢查參數
14802
		#函式說明:
14802
		#函式說明:
14803
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
14803
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
Line 14811... Line 14811...
14811
		#必填參數:
14811
		#必填參數:
14812
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
14812
		#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
14813
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
14813
		$conf["variableCheck::checkArguments"]["varInput"]=&$conf;
14814
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
14814
		#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
14815
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","whereColumn","whereValue");
14815
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","whereColumn","whereValue");
14816
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
14816
		#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
14817
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array","array");
14817
		$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array","array");
14818
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
14818
		#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
14819
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
14819
		$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
14820
		#可省略參數:
14820
		#可省略參數:
14821
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
14821
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
14822
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
14822
		#$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
14823
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
14823
		#$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
14824
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnOperator","WhereColumnAndOr");
14824
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnOperator","WhereColumnAndOr");
14825
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
14825
		#$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
14826
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array");
14826
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array");
14827
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
14827
		#$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
14828
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null);
14828
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null);
14829
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
14829
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
14830
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnOperator","WhereColumnAndOr");
14830
		#$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnOperator","WhereColumnAndOr");
Line 14832... Line 14832...
14832
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
14832
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
14833
		unset($conf["variableCheck::checkArguments"]);
14833
		unset($conf["variableCheck::checkArguments"]);
14834
 
14834
 
14835
		#如果檢查作業出出錯
14835
		#如果檢查作業出出錯
14836
		if($checkResult["status"]=="false"){
14836
		if($checkResult["status"]=="false"){
14837
			
14837
 
14838
			#設置錯誤識別
14838
			#設置錯誤識別
14839
			$result["status"]="false";
14839
			$result["status"]="false";
14840
			
14840
 
14841
			#設置錯誤訊息
14841
			#設置錯誤訊息
14842
			$result["error"]=$checkResult;
14842
			$result["error"]=$checkResult;
14843
			
14843
 
14844
			#回傳結果
14844
			#回傳結果
14845
			return $result;
14845
			return $result;
14846
			
14846
 
14847
			}#if end
14847
			}#if end
14848
			
14848
 
14849
		#如果檢查作業出出錯
14849
		#如果檢查作業出出錯
14850
		if($checkResult["passed"]=="false"){
14850
		if($checkResult["passed"]=="false"){
14851
			
14851
 
14852
			#設置錯誤識別
14852
			#設置錯誤識別
14853
			$result["status"]="false";
14853
			$result["status"]="false";
14854
			
14854
 
14855
			#設置錯誤訊息
14855
			#設置錯誤訊息
14856
			$result["error"]=$checkResult;
14856
			$result["error"]=$checkResult;
14857
			
14857
 
14858
			#回傳結果
14858
			#回傳結果
14859
			return $result;
14859
			return $result;
14860
			
14860
 
14861
			}#if end
14861
			}#if end
14862
 
14862
 
14863
		#刪除資料的語法開始,指定了表格的名稱
14863
		#刪除資料的語法開始,指定了表格的名稱
14864
		$sql="DELETE FROM `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` ";
14864
		$sql="DELETE FROM `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` ";
14865
 
14865
 
Line 14870... Line 14870...
14870
		#函式說明:
14870
		#函式說明:
14871
		#連線到資料庫,結果會回傳一個陣列
14871
		#連線到資料庫,結果會回傳一個陣列
14872
		#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
14872
		#$result["status"],若連線成功則爲"true",連線失敗則爲"false".
14873
		#$result["connectInformation"],爲回傳的mysql連線資訊.
14873
		#$result["connectInformation"],爲回傳的mysql連線資訊.
14874
		#$result["error"],錯誤訊息	.
14874
		#$result["error"],錯誤訊息	.
14875
		#$result["function"],當前執行的函數名稱.	
14875
		#$result["function"],當前執行的函數名稱.
14876
		#必填參數:
14876
		#必填參數:
14877
		$conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14877
		$conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
14878
		$conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14878
		$conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
14879
		#$conf["dbName"],字串,爲要連的資料庫名稱
14879
		#$conf["dbName"],字串,爲要連的資料庫名稱
14880
		$conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
14880
		$conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
14881
		#可省略參數:
14881
		#可省略參數:
14882
		
14882
 
14883
		#如果 $conf["dbPassword"] 有設定
14883
		#如果 $conf["dbPassword"] 有設定
14884
		if(isset($conf["dbPassword"])){
14884
		if(isset($conf["dbPassword"])){
14885
			
14885
 
14886
			$conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14886
			$conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14887
			
14887
 
14888
			}#if end
14888
			}#if end
14889
			
14889
 
14890
		#如果 $conf["dbPort"] 有設定
14890
		#如果 $conf["dbPort"] 有設定
14891
		if(isset($conf["dbPort"])){
14891
		if(isset($conf["dbPort"])){
14892
			
14892
 
14893
			$conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14893
			$conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
14894
			
14894
 
14895
			}#if end
14895
			}#if end
14896
	
14896
 
14897
		$con=db::dbConnect($conf["db"]["dbConnect"]);
14897
		$con=db::dbConnect($conf["db"]["dbConnect"]);
14898
		unset($conf["db"]);
14898
		unset($conf["db"]);
14899
 
14899
 
14900
		#如果連線到資料庫失敗
14900
		#如果連線到資料庫失敗
14901
		if($con["status"]==="false"){
14901
		if($con["status"]==="false"){
14902
			
14902
 
14903
			#設置執行失敗
14903
			#設置執行失敗
14904
			$result["status"]="false";
14904
			$result["status"]="false";
14905
			
14905
 
14906
			#設置執行錯誤訊息
14906
			#設置執行錯誤訊息
14907
			$result["error"]=$con;
14907
			$result["error"]=$con;
14908
			
14908
 
14909
			#回傳結果
14909
			#回傳結果
14910
			return $result;
14910
			return $result;
14911
			
14911
 
14912
			}#if end
14912
			}#if end
14913
			
14913
 
14914
		#var_dump($con);	
14914
		#var_dump($con);
14915
			
14915
 
14916
		#取得mysqli物件
14916
		#取得mysqli物件
14917
		$mysqli=$con["connectInformation"];
14917
		$mysqli=$con["connectInformation"];
14918
 
14918
 
14919
		#條件語句
14919
		#條件語句
14920
		for($i=0;$i<$counts;$i++){
14920
		for($i=0;$i<$counts;$i++){
14921
		
14921
 
14922
			#如果 $conf["WhereColumnOperator"] 不存在
14922
			#如果 $conf["WhereColumnOperator"] 不存在
14923
			if(!isset($conf["WhereColumnOperator"])){
14923
			if(!isset($conf["WhereColumnOperator"])){
14924
				
14924
 
14925
				#如果 $conf["WhereColumnOperator"][$i] 不存在
14925
				#如果 $conf["WhereColumnOperator"][$i] 不存在
14926
				if(!isset($conf["WhereColumnOperator"][$i])){
14926
				if(!isset($conf["WhereColumnOperator"][$i])){
14927
					
14927
 
14928
					#設置為 "="
14928
					#設置為 "="
14929
					$conf["WhereColumnOperator"][$i]="=";
14929
					$conf["WhereColumnOperator"][$i]="=";
14930
					
14930
 
14931
					}#if end
14931
					}#if end
14932
									
14932
 
14933
				}#if end
14933
				}#if end
14934
				
14934
 
14935
			#反之若 $conf["WhereColumnOperator"][$i] 不存在
14935
			#反之若 $conf["WhereColumnOperator"][$i] 不存在
14936
			else if(!isset($conf["WhereColumnOperator"][$i])){
14936
			else if(!isset($conf["WhereColumnOperator"][$i])){
14937
										
14937
 
14938
				#設置為 "="
14938
				#設置為 "="
14939
				$conf["WhereColumnOperator"][$i]="=";
14939
				$conf["WhereColumnOperator"][$i]="=";
14940
									
14940
 
14941
				}#if end
14941
				}#if end
14942
		
14942
 
14943
			#以下變數應該要為字串
14943
			#以下變數應該要為字串
14944
			$checkedVar["whereColumn"]=$conf["whereColumn"][$i];
14944
			$checkedVar["whereColumn"]=$conf["whereColumn"][$i];
14945
			$checkedVar["WhereColumnOperator"]=$conf["WhereColumnOperator"][$i];
14945
			$checkedVar["WhereColumnOperator"]=$conf["WhereColumnOperator"][$i];
14946
			$checkedVar["whereValue"]=$conf["whereValue"][$i];
14946
			$checkedVar["whereValue"]=$conf["whereValue"][$i];
14947
			
14947
 
14948
			#函式說明:
14948
			#函式說明:
14949
			#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
14949
			#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
14950
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
14950
			#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
14951
			#$reuslt["error"],執行不正常結束的錯訊息陣列.
14951
			#$reuslt["error"],執行不正常結束的錯訊息陣列.
14952
			#$result["function"],當前執行的函式名稱.
14952
			#$result["function"],當前執行的函式名稱.
Line 14957... Line 14957...
14957
			#必填參數:
14957
			#必填參數:
14958
			#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
14958
			#$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
14959
			$conf["variableCheck::checkArguments"]["varInput"]=&$checkedVar;
14959
			$conf["variableCheck::checkArguments"]["varInput"]=&$checkedVar;
14960
			#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
14960
			#$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
14961
			$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("whereColumn","WhereColumnOperator","whereValue");
14961
			$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("whereColumn","WhereColumnOperator","whereValue");
14962
			#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
14962
			#$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
14963
			$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
14963
			$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
14964
			#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
14964
			#$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
14965
			$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
14965
			$conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
14966
			#可省略參數:
14966
			#可省略參數:
14967
			#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
14967
			#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
14968
			#$conf["canBeEmptyString"]="false";
14968
			#$conf["canBeEmptyString"]="false";
14969
			#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
14969
			#$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
14970
			#$conf["skipableVariableName"]=array();
14970
			#$conf["skipableVariableName"]=array();
14971
			#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
14971
			#$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
14972
			#$conf["skipableVariableType"]=array();
14972
			#$conf["skipableVariableType"]=array();
14973
			#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
14973
			#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
14974
			#$conf["skipableVarDefaultValue"]=array("");
14974
			#$conf["skipableVarDefaultValue"]=array("");
14975
			#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
14975
			#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
14976
			#$conf["arrayCountEqualCheck"][]=array();
14976
			#$conf["arrayCountEqualCheck"][]=array();
14977
			$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
14977
			$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
14978
			unset($conf["variableCheck::checkArguments"]);
14978
			unset($conf["variableCheck::checkArguments"]);
14979
		
14979
 
14980
			#如果檢查失敗
14980
			#如果檢查失敗
14981
			if($checkResult["status"]=="false"){
14981
			if($checkResult["status"]=="false"){
14982
				
14982
 
14983
				#設置執行錯誤
14983
				#設置執行錯誤
14984
				$result["status"]="false";
14984
				$result["status"]="false";
14985
				
14985
 
14986
				#設置執行錯誤訊息
14986
				#設置執行錯誤訊息
14987
				$result["error"]=$checkResult;
14987
				$result["error"]=$checkResult;
14988
				
14988
 
14989
				#回傳結果
14989
				#回傳結果
14990
				return $result;
14990
				return $result;
14991
				
14991
 
14992
				}#if end
14992
				}#if end
14993
				
14993
 
14994
			#如果檢查失敗
14994
			#如果檢查失敗
14995
			if($checkResult["passed"]=="false"){
14995
			if($checkResult["passed"]=="false"){
14996
				
14996
 
14997
				#設置執行錯誤
14997
				#設置執行錯誤
14998
				$result["status"]="false";
14998
				$result["status"]="false";
14999
				
14999
 
15000
				#設置執行錯誤訊息
15000
				#設置執行錯誤訊息
15001
				$result["error"]=$checkResult;
15001
				$result["error"]=$checkResult;
15002
				
15002
 
15003
				#回傳結果
15003
				#回傳結果
15004
				return $result;
15004
				return $result;
15005
				
15005
 
15006
				}#if end
15006
				}#if end
15007
		
15007
 
15008
			#如果是第一筆
15008
			#如果是第一筆
15009
			if($i==0){
15009
			if($i==0){
15010
 
15010
 
15011
				#如果 $conf["WhereColumnOperator"] 存在
15011
				#如果 $conf["WhereColumnOperator"] 存在
15012
				if(isset($conf["WhereColumnOperator"])){
15012
				if(isset($conf["WhereColumnOperator"])){
15013
 
15013
 
15014
					#設定第一個條件
15014
					#設定第一個條件
15015
					$sql = $sql." WHERE `".$conf["whereColumn"][$i]. "` ".$conf["WhereColumnOperator"][$i]." '". mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";
15015
					$sql = $sql." WHERE `".$conf["whereColumn"][$i]. "` ".$conf["WhereColumnOperator"][$i]." '". mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";
15016
			
15016
 
15017
					}#if end
15017
					}#if end
15018
 
15018
 
15019
				#反之 $conf["WhereColumnOperator"] 不存在
15019
				#反之 $conf["WhereColumnOperator"] 不存在
15020
				else{
15020
				else{
15021
 
15021
 
15022
					#設定第一個條件
15022
					#設定第一個條件
15023
					$sql = $sql." WHERE `".$conf["whereColumn"][$i]. "` = '". mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'"; 
15023
					$sql = $sql." WHERE `".$conf["whereColumn"][$i]. "` = '". mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";
15024
 
15024
 
15025
					}#else end
15025
					}#else end
15026
				
15026
 
15027
				}#判斷式
15027
				}#判斷式
15028
 
15028
 
15029
			#如果不是第一個條件
15029
			#如果不是第一個條件
15030
			if($i!=0){
15030
			if($i!=0){
15031
 
15031
 
15032
				#如果 $conf["WhereColumnAndOr"] 不存在 
15032
				#如果 $conf["WhereColumnAndOr"] 不存在
15033
				if(!isset($conf["WhereColumnAndOr"])){
15033
				if(!isset($conf["WhereColumnAndOr"])){
15034
 
15034
 
15035
					#將 $conf["WhereColumnAndOr"] 裏面的元素置換爲 AND
15035
					#將 $conf["WhereColumnAndOr"] 裏面的元素置換爲 AND
15036
					#函式說明:
15036
					#函式說明:
15037
					#建立一個陣列,可以指派陣列的內容,然後回傳
15037
					#建立一個陣列,可以指派陣列的內容,然後回傳
Line 15045... Line 15045...
15045
					#可省略參數:
15045
					#可省略參數:
15046
					$conf_arrays_create["arrayCounts"]=$counts-1;#爲陣列的元素有幾個,若沒設定,則數量爲$conf["arrayContent"]裏的元素數量
15046
					$conf_arrays_create["arrayCounts"]=$counts-1;#爲陣列的元素有幾個,若沒設定,則數量爲$conf["arrayContent"]裏的元素數量
15047
					$conf_arrays_create["theSameAs"]="true";#若設爲"true",則所有元素內容都跟第一個元素內容相同
15047
					$conf_arrays_create["theSameAs"]="true";#若設爲"true",則所有元素內容都跟第一個元素內容相同
15048
					$create=arrays::create($conf_arrays_create);
15048
					$create=arrays::create($conf_arrays_create);
15049
					unset($conf_arrays_create);
15049
					unset($conf_arrays_create);
15050
					
15050
 
15051
					#如果建立陣列失敗
15051
					#如果建立陣列失敗
15052
					if($create["status"]=="false"){
15052
					if($create["status"]=="false"){
15053
						
15053
 
15054
						#設置執行錯誤
15054
						#設置執行錯誤
15055
						$result["status"]="false";
15055
						$result["status"]="false";
15056
						
15056
 
15057
						#設置執行錯誤訊息
15057
						#設置執行錯誤訊息
15058
						$result["error"]=$create;
15058
						$result["error"]=$create;
15059
						
15059
 
15060
						#回傳結果
15060
						#回傳結果
15061
						return $result;
15061
						return $result;
15062
						
15062
 
15063
						}#if end
15063
						}#if end
15064
 
15064
 
15065
					#取得 $conf["WhereColumnAndOr"] 參數內容
15065
					#取得 $conf["WhereColumnAndOr"] 參數內容
15066
					$conf["WhereColumnAndOr"]=$create["content"];
15066
					$conf["WhereColumnAndOr"]=$create["content"];
15067
 
15067
 
Line 15069... Line 15069...
15069
 
15069
 
15070
				#如果 $conf["WhereColumnOperator"] 存在
15070
				#如果 $conf["WhereColumnOperator"] 存在
15071
				if(isset($conf["WhereColumnOperator"])){
15071
				if(isset($conf["WhereColumnOperator"])){
15072
 
15072
 
15073
					#設定其它條件
15073
					#設定其它條件
15074
					$sql=$sql." ".$conf["WhereColumnAndOr"][$i-1]." `".$conf["whereColumn"][$i]. "` ".$conf["WhereColumnOperator"][$i]." '".mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";			
15074
					$sql=$sql." ".$conf["WhereColumnAndOr"][$i-1]." `".$conf["whereColumn"][$i]. "` ".$conf["WhereColumnOperator"][$i]." '".mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";
15075
 
15075
 
15076
					}#if end			
15076
					}#if end
15077
 
15077
 
15078
				#反之 $conf["WhereColumnOperator"] 不存在
15078
				#反之 $conf["WhereColumnOperator"] 不存在
15079
				else{
15079
				else{
15080
 
15080
 
15081
					#設定其它條件
15081
					#設定其它條件
15082
					$sql=$sql." ".$conf["WhereColumnAndOr"][$i-1]." `".$conf["whereColumn"][$i]. "` = '".mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";			
15082
					$sql=$sql." ".$conf["WhereColumnAndOr"][$i-1]." `".$conf["whereColumn"][$i]. "` = '".mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";
15083
 
15083
 
15084
					}#else end
15084
					}#else end
15085
 
15085
 
15086
				}#判斷式
15086
				}#判斷式
15087
 
15087
 
15088
			}#迴圈結束
15088
			}#迴圈結束
15089
 
15089
 
15090
		#sql語法結束
15090
		#sql語法結束
15091
		$sqlString=$sql.";";			
15091
		$sqlString=$sql.";";
15092
 
15092
 
15093
		#執行sql語法
15093
		#執行sql語法
15094
		#函式說明:
15094
		#函式說明:
15095
		#執行mysql指令
15095
		#執行mysql指令
15096
		#回傳結果::
15096
		#回傳結果::
Line 15101... Line 15101...
15101
		#查詢號的解果,需要解析。
15101
		#查詢號的解果,需要解析。
15102
		#必填參數:
15102
		#必填參數:
15103
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
15103
		$conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
15104
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
15104
		$conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
15105
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sqlString;#要執行sql語法
15105
		$conf["db"]["execMysqlQuery"]["dbSql"]=$sqlString;#要執行sql語法
15106
		#可省略參數: 
15106
		#可省略參數:
15107
		
15107
 
15108
		#如果 $conf["dbPassword"] 有設置
15108
		#如果 $conf["dbPassword"] 有設置
15109
		if(isset($conf["dbPassword"])){
15109
		if(isset($conf["dbPassword"])){
15110
			
15110
 
15111
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
15111
			$conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
15112
			
15112
 
15113
			}#if end
15113
			}#if end
15114
			
15114
 
15115
		#如果 $conf["dbPort"] 有設置
15115
		#如果 $conf["dbPort"] 有設置
15116
		if(isset($conf["dbPort"])){
15116
		if(isset($conf["dbPort"])){
15117
			
15117
 
15118
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的 3306 port.
15118
			$conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的 3306 port.
15119
			
15119
 
15120
			}#if end
15120
			}#if end
15121
			
15121
 
15122
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
15122
		#$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
15123
		$conf["db"]["execMysqlQuery"]["dbLink"]=$mysqli;
15123
		$conf["db"]["execMysqlQuery"]["dbLink"]=$mysqli;
15124
					
15124
 
15125
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
15125
		$db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
15126
		unset($conf["db"]["execMysqlQuery"]);
15126
		unset($conf["db"]["execMysqlQuery"]);
15127
 
15127
 
15128
		#如果sql執行有誤
15128
		#如果sql執行有誤
15129
		if($db["execMysqlQuery"]["status"]=="false"){
15129
		if($db["execMysqlQuery"]["status"]=="false"){
15130
			
15130
 
15131
			#設置錯誤識別
15131
			#設置錯誤識別
15132
			$result["status"]="false";
15132
			$result["status"]="false";
15133
			
15133
 
15134
			#設置錯誤訊息
15134
			#設置錯誤訊息
15135
			$result["error"]=$db["execMysqlQuery"];
15135
			$result["error"]=$db["execMysqlQuery"];
15136
			
15136
 
15137
			#回傳結果
15137
			#回傳結果
15138
			return $result;
15138
			return $result;
15139
			
15139
 
15140
			}#if end
15140
			}#if end
15141
			
15141
 
15142
		#取得執行的sql語法
15142
		#取得執行的sql語法
15143
		$result["sql"]=$db["execMysqlQuery"]["queryString"];
15143
		$result["sql"]=$db["execMysqlQuery"]["queryString"];
15144
			
15144
 
15145
		#執行到這邊表執行成功
15145
		#執行到這邊表執行成功
15146
		$result["status"]="true";
15146
		$result["status"]="true";
15147
 
15147
 
15148
		#回傳結果
15148
		#回傳結果
15149
		return $result;
15149
		return $result;
15150
	
15150
 
15151
		}#函式結束
15151
		}#函式結束
15152
	
15152
 
15153
	/*
15153
	/*
15154
	#函式說明:
15154
	#函式說明:
15155
	#取得目標資料庫底下所有資料表的索引鍵,可作為foreign key的可用欄位,欄位必須為index key或primary key.
15155
	#取得目標資料庫底下所有資料表的索引鍵,可作為foreign key的可用欄位,欄位必須為index key或primary key.
15156
	#回傳結果::
15156
	#回傳結果::
15157
	#$result["status"],執行是否成功"true"為執行成功,"false"為執行失敗。
15157
	#$result["status"],執行是否成功"true"為執行成功,"false"為執行失敗。
Line 15189... Line 15189...
15189
	#無.
15189
	#無.
15190
	#備註:
15190
	#備註:
15191
	#目前只能取得一個資料庫的所有索引鍵.
15191
	#目前只能取得一個資料庫的所有索引鍵.
15192
	*/
15192
	*/
15193
	public static function getAllIndexKeyInAllDataBase(&$conf){
15193
	public static function getAllIndexKeyInAllDataBase(&$conf){
15194
		
15194
 
15195
		#初始化要回傳的內容
15195
		#初始化要回傳的內容
15196
		$result=array();
15196
		$result=array();
15197
 
15197
 
15198
		#取得當前執行的函數名稱
15198
		#取得當前執行的函數名稱
15199
		$result["function"]=__FUNCTION__;
15199
		$result["function"]=__FUNCTION__;
15200
 
15200
 
15201
		#如果 $conf 不為陣列
15201
		#如果 $conf 不為陣列
15202
		if(gettype($conf)!="array"){
15202
		if(gettype($conf)!="array"){
15203
			
15203
 
15204
			#設置執行失敗
15204
			#設置執行失敗
15205
			$result["status"]="false";
15205
			$result["status"]="false";
15206
			
15206
 
15207
			#設置執行錯誤訊息
15207
			#設置執行錯誤訊息
15208
			$result["error"][]="\$conf變數須為陣列形態";
15208
			$result["error"][]="\$conf變數須為陣列形態";
15209
 
15209
 
15210
			#如果傳入的參數為 null
15210
			#如果傳入的參數為 null
15211
			if($conf==null){
15211
			if($conf==null){
15212
				
15212
 
15213
				#設置執行錯誤訊息
15213
				#設置執行錯誤訊息
15214
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
15214
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
15215
				
15215
 
15216
				}#if end
15216
				}#if end
15217
 
15217
 
15218
			#回傳結果
15218
			#回傳結果
15219
			return $result;
15219
			return $result;
15220
			
15220
 
15221
			}#if end
15221
			}#if end
15222
		
15222
 
15223
		#檢查參數
15223
		#檢查參數
15224
		#函式說明:
15224
		#函式說明:
15225
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
15225
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
15226
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
15226
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
15227
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
15227
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 15248... Line 15248...
15248
		#$conf["canBeEmptyString"]="false";
15248
		#$conf["canBeEmptyString"]="false";
15249
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
15249
		#$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
15250
		$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPassword","dbPort");
15250
		$conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPassword","dbPort");
15251
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
15251
		#$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
15252
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
15252
		$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
15253
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
15253
		#$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
15254
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
15254
		$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
15255
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
15255
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
15256
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
15256
		$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
15257
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
15257
		#$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
15258
		#$conf["arrayCountEqualCheck"][]=array();
15258
		#$conf["arrayCountEqualCheck"][]=array();
15259
		#參考資料:
15259
		#參考資料:
15260
		#array_keys=>http://php.net/manual/en/function.array-keys.php
15260
		#array_keys=>http://php.net/manual/en/function.array-keys.php
15261
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
15261
		$checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
15262
		unset($conf["variableCheck::checkArguments"]);
15262
		unset($conf["variableCheck::checkArguments"]);
15263
		
15263
 
15264
		#如果檢查有誤
15264
		#如果檢查有誤
15265
		if($checkResult["status"]=="false"){
15265
		if($checkResult["status"]=="false"){
15266
			
15266
 
15267
			#設置執行錯誤的識別
15267
			#設置執行錯誤的識別
15268
			$result["status"]="false";
15268
			$result["status"]="false";
15269
			
15269
 
15270
			#設置錯誤訊息
15270
			#設置錯誤訊息
15271
			$result["error"]=$checkResult;
15271
			$result["error"]=$checkResult;
15272
			
15272
 
15273
			#回傳結果
15273
			#回傳結果
15274
			return $result;
15274
			return $result;
15275
							
15275
 
15276
			}#if end
15276
			}#if end
15277
 
15277
 
15278
		#如果檢查不通過
15278
		#如果檢查不通過
15279
		if($checkResult["passed"]=="false"){
15279
		if($checkResult["passed"]=="false"){
15280
			
15280
 
15281
			#設置執行錯誤的識別
15281
			#設置執行錯誤的識別
15282
			$result["status"]="false";
15282
			$result["status"]="false";
15283
			
15283
 
15284
			#設置錯誤訊息
15284
			#設置錯誤訊息
15285
			$result["error"]=$checkResult;
15285
			$result["error"]=$checkResult;
15286
			
15286
 
15287
			#回傳結果
15287
			#回傳結果
15288
			return $result;
15288
			return $result;
15289
							
15289
 
15290
			}#if end
15290
			}#if end
15291
			
15291
 
15292
		#取得資料表列表
15292
		#取得資料表列表
15293
		#查詢特定資料庫裡的資料表列表,會回傳查詢的結果
15293
		#查詢特定資料庫裡的資料表列表,會回傳查詢的結果
15294
		#$result["connectStatus"],若成功則爲0,失敗則爲1。
15294
		#$result["connectStatus"],若成功則爲0,失敗則爲1。
15295
		#$result["connectInformation"],爲回傳的mysql連線資訊。
15295
		#$result["connectInformation"],爲回傳的mysql連線資訊。
15296
		#$result["tableName"] 爲查詢的資料庫名稱陣列,
15296
		#$result["tableName"] 爲查詢的資料庫名稱陣列,
Line 15301... Line 15301...
15301
		#必填參數:
15301
		#必填參數:
15302
		$conf["db"]["getDataTableList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
15302
		$conf["db"]["getDataTableList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
15303
		$conf["db"]["getDataTableList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
15303
		$conf["db"]["getDataTableList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
15304
		$conf["db"]["getDataTableList"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲指定的資料庫名稱
15304
		$conf["db"]["getDataTableList"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲指定的資料庫名稱
15305
		#可省略參數:
15305
		#可省略參數:
15306
		
15306
 
15307
		#如果有設定 $conf["dbPassword"]
15307
		#如果有設定 $conf["dbPassword"]
15308
		if(isset($conf["dbPassword"])){
15308
		if(isset($conf["dbPassword"])){
15309
		
15309
 
15310
			#則套用設定
15310
			#則套用設定
15311
			$conf["db"]["getDataTableList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
15311
			$conf["db"]["getDataTableList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
15312
		
15312
 
15313
			}#if end
15313
			}#if end
15314
			
15314
 
15315
		#如果有設定 $conf["dbPort"]
15315
		#如果有設定 $conf["dbPort"]
15316
		if(isset($conf["dbPort"])){
15316
		if(isset($conf["dbPort"])){
15317
		
15317
 
15318
			#則套用設定
15318
			#則套用設定
15319
			$conf["db"]["getDataTableList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,預設為3306.
15319
			$conf["db"]["getDataTableList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,預設為3306.
15320
		
15320
 
15321
			}#if end
15321
			}#if end
15322
		
15322
 
15323
		#原始語法:
15323
		#原始語法:
15324
		#show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
15324
		#show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
15325
		$tableList=db::getDataTableList($conf["db"]["getDataTableList"]);
15325
		$tableList=db::getDataTableList($conf["db"]["getDataTableList"]);
15326
		unset($conf["db"]);
15326
		unset($conf["db"]);
15327
		
15327
 
15328
		#debug
15328
		#debug
15329
		#var_dump($tableList);
15329
		#var_dump($tableList);
15330
		
15330
 
15331
		#如果 資料表清單 取得失敗
15331
		#如果 資料表清單 取得失敗
15332
		if($tableList["status"]=="false"){
15332
		if($tableList["status"]=="false"){
15333
			
15333
 
15334
			#設置執行錯誤的識別
15334
			#設置執行錯誤的識別
15335
			$result["status"]="fasle";
15335
			$result["status"]="fasle";
15336
			
15336
 
15337
			#設置錯誤訊息
15337
			#設置錯誤訊息
15338
			$result["error"]="取得資料表清單失敗";
15338
			$result["error"]="取得資料表清單失敗";
15339
			
15339
 
15340
			#回傳結果
15340
			#回傳結果
15341
			return $result;
15341
			return $result;
15342
			
15342
 
15343
			}#if end
15343
			}#if end
15344
		
15344
 
15345
		#初始化資料表的計數變數
15345
		#初始化資料表的計數變數
15346
		$tableCount=0;
15346
		$tableCount=0;
15347
		
15347
 
15348
		#初始化儲存 index key
15348
		#初始化儲存 index key
15349
		$result["indexKey"]=array();
15349
		$result["indexKey"]=array();
15350
 
15350
 
15351
		#初始化儲存index key所屬的表格 
15351
		#初始化儲存index key所屬的表格
15352
		$result["indexKey"]["tableName"]=array();
15352
		$result["indexKey"]["tableName"]=array();
15353
 
15353
 
15354
		#根據每個資料表
15354
		#根據每個資料表
15355
		foreach($tableList["tableName"] as $tableName){
15355
		foreach($tableList["tableName"] as $tableName){
15356
			
15356
 
15357
			#取得該資料表的欄位資訊
15357
			#取得該資料表的欄位資訊
15358
			#函式說明:
15358
			#函式說明:
15359
			#取得資料表所有欄位的詳細資訊
15359
			#取得資料表所有欄位的詳細資訊
15360
			#回傳的內容:
15360
			#回傳的內容:
15361
			#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
15361
			#$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
Line 15391... Line 15391...
15391
			$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
15391
			$conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
15392
			$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
15392
			$conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
15393
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
15393
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
15394
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$tableName;#連線到資料庫要檢視的資料表
15394
			$conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$tableName;#連線到資料庫要檢視的資料表
15395
			#可省略參數:
15395
			#可省略參數:
15396
			
15396
 
15397
			#如果有設定 $conf["dbPassword"]
15397
			#如果有設定 $conf["dbPassword"]
15398
			if(isset($conf["dbPassword"])){
15398
			if(isset($conf["dbPassword"])){
15399
		
15399
 
15400
				#則套用設定
15400
				#則套用設定
15401
				$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
15401
				$conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
15402
		
15402
 
15403
				}#if end
15403
				}#if end
15404
			
15404
 
15405
			#如果有設定 $conf["dbPort"]
15405
			#如果有設定 $conf["dbPort"]
15406
			if(isset($conf["dbPort"])){
15406
			if(isset($conf["dbPort"])){
15407
			
15407
 
15408
				#則套用設定
15408
				#則套用設定
15409
				$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,預設為3306.
15409
				$conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,預設為3306.
15410
			
15410
 
15411
				}#if end
15411
				}#if end
15412
			
15412
 
15413
			$columnData=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
15413
			$columnData=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
15414
			unset($conf["db"]["getTableColumnDetailInfo"]);
15414
			unset($conf["db"]["getTableColumnDetailInfo"]);
15415
			
15415
 
15416
			#如果取得資料表結構詳細資訊失敗
15416
			#如果取得資料表結構詳細資訊失敗
15417
			if($columnData["status"]=="false"){
15417
			if($columnData["status"]=="false"){
15418
				
15418
 
15419
				#設置執行錯誤的識別
15419
				#設置執行錯誤的識別
15420
				$result["status"]="fasle";
15420
				$result["status"]="fasle";
15421
				
15421
 
15422
				#設置錯誤訊息
15422
				#設置錯誤訊息
15423
				$result["error"]=$columnData;
15423
				$result["error"]=$columnData;
15424
				
15424
 
15425
				#回傳結果
15425
				#回傳結果
15426
				return $result;
15426
				return $result;
15427
				
15427
 
15428
				}#if end
15428
				}#if end
15429
						
15429
 
15430
			#儲存當前資料表的主鍵所屬資料表名稱
15430
			#儲存當前資料表的主鍵所屬資料表名稱
15431
			$result["primaryKey"][$tableCount]["dtName"]=$tableName;
15431
			$result["primaryKey"][$tableCount]["dtName"]=$tableName;
15432
			
15432
 
15433
			#如果該資料表沒有主鍵
15433
			#如果該資料表沒有主鍵
15434
			if(!isset($columnData["primaryKey"])){
15434
			if(!isset($columnData["primaryKey"])){
15435
				
15435
 
15436
				#將數值設為null
15436
				#將數值設為null
15437
				
15437
 
15438
				#儲存當前資料表的主鍵欄位名稱
15438
				#儲存當前資料表的主鍵欄位名稱
15439
				$result["primaryKey"][$tableCount]["columnName"]=null;
15439
				$result["primaryKey"][$tableCount]["columnName"]=null;
15440
					
15440
 
15441
				#儲存當前資料表的主鍵欄位的儲存形態
15441
				#儲存當前資料表的主鍵欄位的儲存形態
15442
				$result["primaryKey"][$tableCount]["columnVarType"]=null;
15442
				$result["primaryKey"][$tableCount]["columnVarType"]=null;
15443
				
15443
 
15444
				#儲存當前資料表的主鍵欄位的儲存長度限制
15444
				#儲存當前資料表的主鍵欄位的儲存長度限制
15445
				$result["primaryKey"][$tableCount]["columnVarLengthLimit"]=null;
15445
				$result["primaryKey"][$tableCount]["columnVarLengthLimit"]=null;
15446
				
15446
 
15447
				#儲存當前資料表的主鍵欄位的儲存形態與長度限制
15447
				#儲存當前資料表的主鍵欄位的儲存形態與長度限制
15448
				$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"]=null;
15448
				$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"]=null;
15449
									
15449
 
15450
				}#if end
15450
				}#if end
15451
				
15451
 
15452
			#反之有主鍵
15452
			#反之有主鍵
15453
			else{
15453
			else{
15454
				
15454
 
15455
				#儲存當前資料表的主鍵欄位名稱
15455
				#儲存當前資料表的主鍵欄位名稱
15456
				$result["primaryKey"][$tableCount]["columnName"]=$columnData["primaryKey"];
15456
				$result["primaryKey"][$tableCount]["columnName"]=$columnData["primaryKey"];
15457
					
15457
 
15458
				#儲存當前資料表的主鍵欄位的儲存形態
15458
				#儲存當前資料表的主鍵欄位的儲存形態
15459
				$result["primaryKey"][$tableCount]["columnVarType"]=$columnData["columnVarType"][$columnData["primaryKey"]];
15459
				$result["primaryKey"][$tableCount]["columnVarType"]=$columnData["columnVarType"][$columnData["primaryKey"]];
15460
				
15460
 
15461
				#儲存當前資料表的主鍵欄位的儲存長度限制
15461
				#儲存當前資料表的主鍵欄位的儲存長度限制
15462
				$result["primaryKey"][$tableCount]["columnVarLengthLimit"]=$columnData["columnVarLengthLimit"][$columnData["primaryKey"]];
15462
				$result["primaryKey"][$tableCount]["columnVarLengthLimit"]=$columnData["columnVarLengthLimit"][$columnData["primaryKey"]];
15463
				
15463
 
15464
				#儲存當前資料表的主鍵欄位的儲存形態與長度限制
15464
				#儲存當前資料表的主鍵欄位的儲存形態與長度限制
15465
				$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"]=$columnData["columnVarTypeAndLengthLimit"][$columnData["primaryKey"]];
15465
				$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"]=$columnData["columnVarTypeAndLengthLimit"][$columnData["primaryKey"]];
15466
									
15466
 
15467
				}#else end
15467
				}#else end
15468
											
15468
 
15469
			#資料表計數加1
15469
			#資料表計數加1
15470
			$tableCount++;			
15470
			$tableCount++;
15471
									
15471
 
15472
			#如果有index key
15472
			#如果有index key
15473
			if($columnData["key"]["exist"]=="true"){
15473
			if($columnData["key"]["exist"]=="true"){
15474
				
15474
 
15475
				#依據每個index key
15475
				#依據每個index key
15476
				for($i=0;$i<count($columnData["key"]);$i++){
15476
				for($i=0;$i<count($columnData["key"]);$i++){
15477
					
15477
 
15478
					#如果該元素不存在
15478
					#如果該元素不存在
15479
					if(!isset($columnData["key"][$i])){
15479
					if(!isset($columnData["key"][$i])){
15480
						
15480
 
15481
						#中斷迴圈
15481
						#中斷迴圈
15482
						break;
15482
						break;
15483
						
15483
 
15484
						}#if end
15484
						}#if end
15485
					
15485
 
15486
					#取得其index key欄位
15486
					#取得其index key欄位
15487
					$tempColumnName=$result["indexKey"]["columnName"][]=$columnData["key"][$i];
15487
					$tempColumnName=$result["indexKey"]["columnName"][]=$columnData["key"][$i];
15488
					
15488
 
15489
					#如果 $columnData["columnVarTypeAndLengthLimit"][$i] 有設置
15489
					#如果 $columnData["columnVarTypeAndLengthLimit"][$i] 有設置
15490
					if(isset($columnData["columnVarTypeAndLengthLimit"][$tempColumnName])){
15490
					if(isset($columnData["columnVarTypeAndLengthLimit"][$tempColumnName])){
15491
						
15491
 
15492
						#取得該欄位的儲存變數型別與長度限制
15492
						#取得該欄位的儲存變數型別與長度限制
15493
						$result["indexKey"]["typeAndLength"][]=$columnData["columnVarTypeAndLengthLimit"][$tempColumnName];
15493
						$result["indexKey"]["typeAndLength"][]=$columnData["columnVarTypeAndLengthLimit"][$tempColumnName];
15494
						
15494
 
15495
						}#if end
15495
						}#if end
15496
					
15496
 
15497
					#反之
15497
					#反之
15498
					else{
15498
					else{
15499
						
15499
 
15500
						#將 得該欄位的儲存變數型別與長度限制 設為 ""
15500
						#將 得該欄位的儲存變數型別與長度限制 設為 ""
15501
						$result["indexKey"]["typeAndLength"][]="";
15501
						$result["indexKey"]["typeAndLength"][]="";
15502
						
15502
 
15503
						}#else end	
15503
						}#else end
15504
											
15504
 
15505
					#取得其index key的所屬資料表
15505
					#取得其index key的所屬資料表
15506
					$result["indexKey"]["tableName"][]=$tableName;
15506
					$result["indexKey"]["tableName"][]=$tableName;
15507
					
15507
 
15508
					}#for end
15508
					}#for end
15509
									
15509
 
15510
				}#if end
15510
				}#if end
15511
			
15511
 
15512
			}#foreach end
15512
			}#foreach end
15513
		
15513
 
15514
		#根據每個索引鍵欄位與其所屬的資料表來建立 「索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」 格式的陣列
15514
		#根據每個索引鍵欄位與其所屬的資料表來建立 「索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」 格式的陣列
15515
		for($i=0;$i<count($result["indexKey"]["tableName"]);$i++){
15515
		for($i=0;$i<count($result["indexKey"]["tableName"]);$i++){
15516
			
15516
 
15517
			#設置 索引鍵所屬資料表名稱.索引鍵欄位名稱 格式的陣列
15517
			#設置 索引鍵所屬資料表名稱.索引鍵欄位名稱 格式的陣列
15518
			$result["indexKey"]["tableDotColumnName"][]=$result["indexKey"]["tableName"][$i].".".$result["indexKey"]["columnName"][$i];
15518
			$result["indexKey"]["tableDotColumnName"][]=$result["indexKey"]["tableName"][$i].".".$result["indexKey"]["columnName"][$i];
15519
			
15519
 
15520
			#設置 索引鍵所屬資料表名稱.索引鍵欄位名稱 欄位儲存型態與長度限制 格式的陣列
15520
			#設置 索引鍵所屬資料表名稱.索引鍵欄位名稱 欄位儲存型態與長度限制 格式的陣列
15521
			$result["indexKey"]["tableDotColumnVarType"][]=$result["indexKey"]["tableName"][$i].".".$result["indexKey"]["columnName"][$i]." ".$result["indexKey"]["typeAndLength"][$i];
15521
			$result["indexKey"]["tableDotColumnVarType"][]=$result["indexKey"]["tableName"][$i].".".$result["indexKey"]["columnName"][$i]." ".$result["indexKey"]["typeAndLength"][$i];
15522
			
15522
 
15523
			}#for end
15523
			}#for end
15524
			
15524
 
15525
		#組裝主鍵與索引鍵的資訊
15525
		#組裝主鍵與索引鍵的資訊
15526
		#$result["content"][$i]["tableName"],欄位所屬的資料表名稱.
15526
		#$result["content"][$i]["tableName"],欄位所屬的資料表名稱.
15527
		#$result["content"][$i]["columnKey"],是"primary key"還是"index key".
15527
		#$result["content"][$i]["columnKey"],是"primary key"還是"index key".
15528
		#$result["content"][$i]["columnName"],欄位名稱.
15528
		#$result["content"][$i]["columnName"],欄位名稱.
15529
		#$result["content"][$i]["typeAndLength"],欄位儲存形態與長度限制.
15529
		#$result["content"][$i]["typeAndLength"],欄位儲存形態與長度限制.
Line 15537... Line 15537...
15537
		#$result["primaryKey"][$tableCount]["dtName"],主鍵所屬的資料表名稱,若沒有主鍵則為null.
15537
		#$result["primaryKey"][$tableCount]["dtName"],主鍵所屬的資料表名稱,若沒有主鍵則為null.
15538
		#$result["primaryKey"][$tableCount]["columnName"],資料表的主鍵欄位名稱,若沒有主鍵則為null.
15538
		#$result["primaryKey"][$tableCount]["columnName"],資料表的主鍵欄位名稱,若沒有主鍵則為null.
15539
		#$result["primaryKey"][$tableCount]["columnVarType"],資料表的主鍵欄位的儲存形態,若沒有主鍵則為null..
15539
		#$result["primaryKey"][$tableCount]["columnVarType"],資料表的主鍵欄位的儲存形態,若沒有主鍵則為null..
15540
		#$result["primaryKey"][$tableCount]["columnVarLengthLimit"],資料表的主鍵欄位的儲存長度限制,若沒有主鍵則為null.
15540
		#$result["primaryKey"][$tableCount]["columnVarLengthLimit"],資料表的主鍵欄位的儲存長度限制,若沒有主鍵則為null.
15541
		#$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"],儲存當前資料表的主鍵欄位的儲存形態與長度限制,若沒有主鍵則為null.
15541
		#$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"],儲存當前資料表的主鍵欄位的儲存形態與長度限制,若沒有主鍵則為null.
15542
		
15542
 
15543
		#能夠被外鍵參照的欄位計數
15543
		#能夠被外鍵參照的欄位計數
15544
		$referenceColumnCount=0;
15544
		$referenceColumnCount=0;
15545
		
15545
 
15546
		#有幾個主鍵就執行幾次
15546
		#有幾個主鍵就執行幾次
15547
		for($i=0;$i<count($result["primaryKey"]);$i++){
15547
		for($i=0;$i<count($result["primaryKey"]);$i++){
15548
			
15548
 
15549
			#暫存當前資料表的名稱
15549
			#暫存當前資料表的名稱
15550
			$dtName=$result["primaryKey"][$i]["dtName"];
15550
			$dtName=$result["primaryKey"][$i]["dtName"];
15551
			
15551
 
15552
			#如果主鍵欄位名稱不為 null,亦即有主鍵
15552
			#如果主鍵欄位名稱不為 null,亦即有主鍵
15553
			if($result["primaryKey"][$i]["columnName"]!=null){
15553
			if($result["primaryKey"][$i]["columnName"]!=null){
15554
				
15554
 
15555
				#儲存欄位所屬的資料表名稱.
15555
				#儲存欄位所屬的資料表名稱.
15556
				$result["content"][$referenceColumnCount]["tableName"]=$dtName;
15556
				$result["content"][$referenceColumnCount]["tableName"]=$dtName;
15557
				
15557
 
15558
				#儲存是"primary key"還是"index key".
15558
				#儲存是"primary key"還是"index key".
15559
				$result["content"][$referenceColumnCount]["columnKey"]="primary key";
15559
				$result["content"][$referenceColumnCount]["columnKey"]="primary key";
15560
				
15560
 
15561
				#儲存欄位名稱
15561
				#儲存欄位名稱
15562
				$result["content"][$referenceColumnCount]["columnName"]=$result["primaryKey"][$i]["columnName"];
15562
				$result["content"][$referenceColumnCount]["columnName"]=$result["primaryKey"][$i]["columnName"];
15563
				
15563
 
15564
				#儲存欄位儲存形態與長度限制.
15564
				#儲存欄位儲存形態與長度限制.
15565
				$result["content"][$referenceColumnCount]["typeAndLength"]=$result["primaryKey"][$i]["columnVarLengthLimit"];
15565
				$result["content"][$referenceColumnCount]["typeAndLength"]=$result["primaryKey"][$i]["columnVarLengthLimit"];
15566
				
15566
 
15567
				#儲存欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
15567
				#儲存欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
15568
				$result["content"][$referenceColumnCount]["tableDotColumnName"]=$dtName.".".$result["primaryKey"][$i]["columnName"];
15568
				$result["content"][$referenceColumnCount]["tableDotColumnName"]=$dtName.".".$result["primaryKey"][$i]["columnName"];
15569
				
15569
 
15570
				#儲存欄位的「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
15570
				#儲存欄位的「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
15571
				$result["content"][$referenceColumnCount]["tableDotColumnVarType"]=$dtName.".".$result["primaryKey"][$i]["columnName"]." ".$result["primaryKey"][$i]["columnVarTypeAndLengthLimit"];
15571
				$result["content"][$referenceColumnCount]["tableDotColumnVarType"]=$dtName.".".$result["primaryKey"][$i]["columnName"]." ".$result["primaryKey"][$i]["columnVarTypeAndLengthLimit"];
15572
					
15572
 
15573
				#能夠被外鍵參照的欄位計數加1
15573
				#能夠被外鍵參照的欄位計數加1
15574
				$referenceColumnCount++;	
15574
				$referenceColumnCount++;
15575
									
15575
 
15576
				}#if end
15576
				}#if end
15577
				
15577
 
15578
			#用當前資料表的名稱取得索引鍵的資訊
15578
			#用當前資料表的名稱取得索引鍵的資訊
15579
				
15579
 
15580
			#所有資料表有幾個索引鍵就執行幾次
15580
			#所有資料表有幾個索引鍵就執行幾次
15581
			for($j=0;$j<count($result["indexKey"]["tableName"]);$j++){
15581
			for($j=0;$j<count($result["indexKey"]["tableName"]);$j++){
15582
				
15582
 
15583
				#如果是當前資料表的索引鍵
15583
				#如果是當前資料表的索引鍵
15584
				if($result["indexKey"]["tableName"][$j]==$dtName){
15584
				if($result["indexKey"]["tableName"][$j]==$dtName){
15585
					
15585
 
15586
					#儲存欄位所屬的資料表名稱.
15586
					#儲存欄位所屬的資料表名稱.
15587
					$result["content"][$referenceColumnCount]["tableName"]=$dtName;
15587
					$result["content"][$referenceColumnCount]["tableName"]=$dtName;
15588
					
15588
 
15589
					#儲存是"primary key"還是"index key".
15589
					#儲存是"primary key"還是"index key".
15590
					$result["content"][$referenceColumnCount]["columnKey"]="index key";
15590
					$result["content"][$referenceColumnCount]["columnKey"]="index key";
15591
					
15591
 
15592
					#儲存欄位名稱
15592
					#儲存欄位名稱
15593
					$result["content"][$referenceColumnCount]["columnName"]=$result["indexKey"]["columnName"][$j];
15593
					$result["content"][$referenceColumnCount]["columnName"]=$result["indexKey"]["columnName"][$j];
15594
					
15594
 
15595
					#儲存欄位儲存形態與長度限制.
15595
					#儲存欄位儲存形態與長度限制.
15596
					$result["content"][$referenceColumnCount]["typeAndLength"]=$result["indexKey"]["typeAndLength"][$j];
15596
					$result["content"][$referenceColumnCount]["typeAndLength"]=$result["indexKey"]["typeAndLength"][$j];
15597
					
15597
 
15598
					#儲存欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
15598
					#儲存欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
15599
					$result["content"][$referenceColumnCount]["tableDotColumnName"]=$result["indexKey"]["tableDotColumnName"][$j];
15599
					$result["content"][$referenceColumnCount]["tableDotColumnName"]=$result["indexKey"]["tableDotColumnName"][$j];
15600
					
15600
 
15601
					#儲存欄位的「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
15601
					#儲存欄位的「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
15602
					$result["content"][$referenceColumnCount]["tableDotColumnVarType"]=$result["indexKey"]["tableDotColumnVarType"][$j];
15602
					$result["content"][$referenceColumnCount]["tableDotColumnVarType"]=$result["indexKey"]["tableDotColumnVarType"][$j];
15603
						
15603
 
15604
					#能夠被外鍵參照的欄位計數加1
15604
					#能夠被外鍵參照的欄位計數加1
15605
					$referenceColumnCount++;	
15605
					$referenceColumnCount++;
15606
												
15606
 
15607
					}#if end
15607
					}#if end
15608
				
15608
 
15609
				}#for end
15609
				}#for end
15610
			
15610
 
15611
			}#for end
15611
			}#for end
15612
			
15612
 
15613
		#執行到這邊代表執行成功
15613
		#執行到這邊代表執行成功
15614
		$result["status"]="true";
15614
		$result["status"]="true";
15615
		
15615
 
15616
		#回傳結果
15616
		#回傳結果
15617
		return $result;
15617
		return $result;
15618
		
15618
 
15619
		}#function getAllIndexKeyInAllDataBase end 
15619
		}#function getAllIndexKeyInAllDataBase end
15620
 
15620
 
15621
	/*
15621
	/*
15622
	#函式說明:
15622
	#函式說明:
15623
	#將資料表輸出成csv檔案
15623
	#將資料表輸出成csv檔案
15624
	#回傳結果:
15624
	#回傳結果:
Line 15638... Line 15638...
15638
	#可省略參數:
15638
	#可省略參數:
15639
	#$conf["dbPassword"],字串,連線到mariadb/mysql伺服器時所使用的密碼,若未設置則代表不使用密碼來連線.
15639
	#$conf["dbPassword"],字串,連線到mariadb/mysql伺服器時所使用的密碼,若未設置則代表不使用密碼來連線.
15640
	#$conf["dbPassword"]=$dbPassword;
15640
	#$conf["dbPassword"]=$dbPassword;
15641
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
15641
	#$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
15642
	#$conf["dbPort"]=$dbPort;
15642
	#$conf["dbPort"]=$dbPort;
15643
	#$conf["column"],陣列,要的欄位名稱,預設為「array(*)」代表所有欄位都要, 
15643
	#$conf["column"],陣列,要的欄位名稱,預設為「array(*)」代表所有欄位都要,
15644
	#$conf["column"]=array("*");
15644
	#$conf["column"]=array("*");
15645
	#$conf["WhereColumnName"],陣列,篩選用的特定欄位
15645
	#$conf["WhereColumnName"],陣列,篩選用的特定欄位
15646
	#$conf["WhereColumnName"]=array("");
15646
	#$conf["WhereColumnName"]=array("");
15647
	#$conf["WhereColumnValue"],陣列,篩選用特定欄位的數值要等於多少才是我們要的.
15647
	#$conf["WhereColumnValue"],陣列,篩選用特定欄位的數值要等於多少才是我們要的.
15648
	#$conf["WhereColumnValue"]=array("");
15648
	#$conf["WhereColumnValue"]=array("");
Line 15660... Line 15660...
15660
	#無.
15660
	#無.
15661
	#備註:
15661
	#備註:
15662
	#無.
15662
	#無.
15663
	*/
15663
	*/
15664
	public static function exportTableToCsv($conf){
15664
	public static function exportTableToCsv($conf){
15665
		
15665
 
15666
		#初始化要回傳的內容
15666
		#初始化要回傳的內容
15667
		$result=array();
15667
		$result=array();
15668
 
15668
 
15669
		#取得當前執行的函數名稱
15669
		#取得當前執行的函數名稱
15670
		$result["function"]=__FUNCTION__;
15670
		$result["function"]=__FUNCTION__;
15671
 
15671
 
15672
		#如果 $conf 不為陣列
15672
		#如果 $conf 不為陣列
15673
		if(gettype($conf)!="array"){
15673
		if(gettype($conf)!="array"){
15674
			
15674
 
15675
			#設置執行失敗
15675
			#設置執行失敗
15676
			$result["status"]="false";
15676
			$result["status"]="false";
15677
			
15677
 
15678
			#設置執行錯誤訊息
15678
			#設置執行錯誤訊息
15679
			$result["error"][]="\$conf變數須為陣列形態";
15679
			$result["error"][]="\$conf變數須為陣列形態";
15680
 
15680
 
15681
			#如果傳入的參數為 null
15681
			#如果傳入的參數為 null
15682
			if($conf==null){
15682
			if($conf==null){
15683
				
15683
 
15684
				#設置執行錯誤訊息
15684
				#設置執行錯誤訊息
15685
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
15685
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
15686
				
15686
 
15687
				}#if end
15687
				}#if end
15688
 
15688
 
15689
			#回傳結果
15689
			#回傳結果
15690
			return $result;
15690
			return $result;
15691
			
15691
 
15692
			}#if end
15692
			}#if end
15693
		
15693
 
15694
		#檢查參數
15694
		#檢查參數
15695
		#函式說明:
15695
		#函式說明:
15696
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
15696
		#檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
15697
		#回傳結果:
15697
		#回傳結果:
15698
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
15698
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
Line 15701... Line 15701...
15701
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
15701
		#$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
15702
		#必填參數:
15702
		#必填參數:
15703
		$conf["db"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
15703
		$conf["db"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
15704
		$conf["db"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dbName","dtName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
15704
		$conf["db"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dbName","dtName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
15705
		#可省略參數:
15705
		#可省略參數:
15706
		$conf["db"]["isexistMuti"]["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
15706
		$conf["db"]["isexistMuti"]["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double");
15707
		$conf["db"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
15707
		$conf["db"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
15708
		$checkResult=variableCheck::isexistMulti($conf["db"]["isexistMuti"]);
15708
		$checkResult=variableCheck::isexistMulti($conf["db"]["isexistMuti"]);
15709
		unset($conf["db"]["isexistMuti"]);
15709
		unset($conf["db"]["isexistMuti"]);
15710
		
15710
 
15711
		#如果 $checkResult["status"] 等於 "false"
15711
		#如果 $checkResult["status"] 等於 "false"
15712
		if($checkResult["status"]=="false"){
15712
		if($checkResult["status"]=="false"){
15713
			
15713
 
15714
			#設置錯誤識別
15714
			#設置錯誤識別
15715
			$result["status"]="false";
15715
			$result["status"]="false";
15716
			
15716
 
15717
			#設置錯誤訊息
15717
			#設置錯誤訊息
15718
			$result["error"]=$checkResult;
15718
			$result["error"]=$checkResult;
15719
			
15719
 
15720
			#回傳結果
15720
			#回傳結果
15721
			return $result;
15721
			return $result;
15722
			
15722
 
15723
			}#if end
15723
			}#if end
15724
			
15724
 
15725
		#如果 $checkResult["passed"] 等於 "false"
15725
		#如果 $checkResult["passed"] 等於 "false"
15726
		if($checkResult["passed"]=="false"){
15726
		if($checkResult["passed"]=="false"){
15727
			
15727
 
15728
			#設置錯誤識別
15728
			#設置錯誤識別
15729
			$result["status"]="false";
15729
			$result["status"]="false";
15730
			
15730
 
15731
			#設置錯誤訊息
15731
			#設置錯誤訊息
15732
			$result["error"]=$checkResult;
15732
			$result["error"]=$checkResult;
15733
			
15733
 
15734
			#回傳結果
15734
			#回傳結果
15735
			return $result;
15735
			return $result;
15736
			
15736
 
15737
			}#if end
15737
			}#if end
15738
			
15738
 
15739
		#如果 $conf["column"] 沒有設置
15739
		#如果 $conf["column"] 沒有設置
15740
		if(!isset($conf["column"])){
15740
		if(!isset($conf["column"])){
15741
			
15741
 
15742
			#則代表要全部的欄位
15742
			#則代表要全部的欄位
15743
			$conf["column"]=array("*");
15743
			$conf["column"]=array("*");
15744
			
15744
 
15745
			}#if end
15745
			}#if end
15746
			
15746
 
15747
		#抓取資料表資料
15747
		#抓取資料表資料
15748
		#函式說明:
15748
		#函式說明:
15749
		#一次取得資料庫、表的資料
15749
		#一次取得資料庫、表的資料
15750
		#回傳結果:
15750
		#回傳結果:
15751
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
15751
		#$result["status"],執行結果"true"為成功;"false"為執行失敗。
Line 15763... Line 15763...
15763
		$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
15763
		$conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
15764
		$conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"];#爲要存取的資料庫名稱
15764
		$conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"];#爲要存取的資料庫名稱
15765
		$conf["db"]["fastGetDbData"]["tableName"]=$conf["dtName"];#爲要存取的資料表名稱
15765
		$conf["db"]["fastGetDbData"]["tableName"]=$conf["dtName"];#爲要存取的資料表名稱
15766
		$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["column"];#你想要的欄位!
15766
		$conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["column"];#你想要的欄位!
15767
		#可省略參數:
15767
		#可省略參數:
15768
		
15768
 
15769
		#如果 $conf["dbPassword"] 有設置 
15769
		#如果 $conf["dbPassword"] 有設置
15770
		if(isset($conf["dbPassword"])){
15770
		if(isset($conf["dbPassword"])){
15771
		
15771
 
15772
			#則設定進行連線密碼
15772
			#則設定進行連線密碼
15773
			$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
15773
			$conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
15774
		
15774
 
15775
			}#if end
15775
			}#if end
15776
			
15776
 
15777
		#如果 $conf["dbPort"] 有設置 
15777
		#如果 $conf["dbPort"] 有設置
15778
		if(isset($conf["dbPort"])){
15778
		if(isset($conf["dbPort"])){
15779
		
15779
 
15780
			#則設定進行連線的 port
15780
			#則設定進行連線的 port
15781
			$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
15781
			$conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
15782
		
15782
 
15783
			}#if end
15783
			}#if end
15784
		
15784
 
15785
		#如果 $conf["WhereColumnName"] 有設置
15785
		#如果 $conf["WhereColumnName"] 有設置
15786
		if(isset($conf["WhereColumnName"])){
15786
		if(isset($conf["WhereColumnName"])){
15787
		
15787
 
15788
			$conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
15788
			$conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
15789
		
15789
 
15790
			}#if end
15790
			}#if end
15791
			
15791
 
15792
		#如果 $conf["WhereColumnValue"] 有設置
15792
		#如果 $conf["WhereColumnValue"] 有設置
15793
		if(isset($conf["WhereColumnValue"])){
15793
		if(isset($conf["WhereColumnValue"])){
15794
			
15794
 
15795
			$conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
15795
			$conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
15796
			
15796
 
15797
			}#if end
15797
			}#if end
15798
		
15798
 
15799
		#$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
15799
		#$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
15800
		#$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
15800
		#$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
15801
		#$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
15801
		#$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
15802
		
15802
 
15803
		#如果 $conf["orderItem"] 有設定
15803
		#如果 $conf["orderItem"] 有設定
15804
		if(isset($conf["orderItem"])){
15804
		if(isset($conf["orderItem"])){
15805
			
15805
 
15806
			$conf["db"]["fastGetDbData"]["orderItem"]=$conf["orderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
15806
			$conf["db"]["fastGetDbData"]["orderItem"]=$conf["orderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
15807
			
15807
 
15808
			}#if end
15808
			}#if end
15809
		
15809
 
15810
		#如果 $conf["ascORdesc"] 有設定
15810
		#如果 $conf["ascORdesc"] 有設定
15811
		if(isset($conf["ascORdesc"])){
15811
		if(isset($conf["ascORdesc"])){
15812
			
15812
 
15813
			
15813
 
15814
			$conf["db"]["fastGetDbData"]["ascORdesc"]=$conf["ascORdesc"];#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
15814
			$conf["db"]["fastGetDbData"]["ascORdesc"]=$conf["ascORdesc"];#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
15815
			
15815
 
15816
			}#if end
15816
			}#if end
15817
		
15817
 
15818
		#$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
15818
		#$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
15819
		#$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
15819
		#$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
15820
		
15820
 
15821
		#如果 $conf["groupBy"] 有設定
15821
		#如果 $conf["groupBy"] 有設定
15822
		if(isset($conf["groupBy"])){
15822
		if(isset($conf["groupBy"])){
15823
			
15823
 
15824
			$conf["db"]["fastGetDbData"]["groupBy"]=$conf["groupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆).
15824
			$conf["db"]["fastGetDbData"]["groupBy"]=$conf["groupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆).
15825
			
15825
 
15826
			}#if end
15826
			}#if end
15827
		
15827
 
15828
		$db["fastGetDbData"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
15828
		$db["fastGetDbData"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
15829
		unset($conf["db"]["fastGetDbData"]);
15829
		unset($conf["db"]["fastGetDbData"]);
15830
		
15830
 
15831
		#var_dump($db["fastGetDbData"]);
15831
		#var_dump($db["fastGetDbData"]);
15832
		
15832
 
15833
		#如果 $db["fastGetDbData"]["status"] 等於 "false"
15833
		#如果 $db["fastGetDbData"]["status"] 等於 "false"
15834
		if($db["fastGetDbData"]["status"]=="false"){
15834
		if($db["fastGetDbData"]["status"]=="false"){
15835
			
15835
 
15836
			#設置錯誤識別
15836
			#設置錯誤識別
15837
			$result["status"]="false";
15837
			$result["status"]="false";
15838
			
15838
 
15839
			#設置錯誤訊息
15839
			#設置錯誤訊息
15840
			$result["error"]=$db["fastGetDbData"];
15840
			$result["error"]=$db["fastGetDbData"];
15841
			
15841
 
15842
			#回傳結果
15842
			#回傳結果
15843
			return $result;
15843
			return $result;
15844
			
15844
 
15845
			}#if end
15845
			}#if end
15846
		
15846
 
15847
		#初始化要寫入的內容
15847
		#初始化要寫入的內容
15848
		$writedData[0]=$db["fastGetDbData"]["dataColumnName"];
15848
		$writedData[0]=$db["fastGetDbData"]["dataColumnName"];
15849
		
15849
 
15850
		#var_dump($writedData);
15850
		#var_dump($writedData);
15851
		
15851
 
15852
		#取得要寫入的欄位數值
15852
		#取得要寫入的欄位數值
15853
		
15853
 
15854
		#針對每筆資料
15854
		#針對每筆資料
15855
		for($i=0;$i<$db["fastGetDbData"]["dataCount"];$i++){
15855
		for($i=0;$i<$db["fastGetDbData"]["dataCount"];$i++){
15856
			
15856
 
15857
			#依據每個欄位
15857
			#依據每個欄位
15858
			for($j=0;$j<count($db["fastGetDbData"]["dataColumnName"]);$j++){
15858
			for($j=0;$j<count($db["fastGetDbData"]["dataColumnName"]);$j++){
15859
				
15859
 
15860
				#儲存到列裡面
15860
				#儲存到列裡面
15861
				$writedData[$i+1][]=$db["fastGetDbData"]["dataContent"][$db["fastGetDbData"]["dataColumnName"][$j]][$i];
15861
				$writedData[$i+1][]=$db["fastGetDbData"]["dataContent"][$db["fastGetDbData"]["dataColumnName"][$j]][$i];
15862
				
15862
 
15863
				}#foreach end
15863
				}#foreach end
15864
			
15864
 
15865
			}#for end
15865
			}#for end
15866
			
15866
 
15867
		#var_dump($writedData);
15867
		#var_dump($writedData);
15868
			
15868
 
15869
		#輸出成csv檔
15869
		#輸出成csv檔
15870
		#函式說明:
15870
		#函式說明:
15871
		#快速建立一個csv檔案,並且要求使用者下載。
15871
		#快速建立一個csv檔案,並且要求使用者下載。
15872
		#回傳結果::
15872
		#回傳結果::
15873
		#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置
15873
		#如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置
15874
		#必填參數:
15874
		#必填參數:
15875
		$conf["db"]["create"]["dataArray"]=$writedData;#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。
15875
		$conf["db"]["create"]["dataArray"]=$writedData;#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。
15876
		#可省略參數:
15876
		#可省略參數:
15877
		
15877
 
15878
		#如果有設置 $conf["outPutPathAndName"]
15878
		#如果有設置 $conf["outPutPathAndName"]
15879
		if(isset($conf["outPutPathAndName"])){
15879
		if(isset($conf["outPutPathAndName"])){
15880
			
15880
 
15881
			$conf["db"]["create"]["csvFilePathAndName"]=$conf["outPutPathAndName"];#csv檔案的名稱,預設爲系統時間
15881
			$conf["db"]["create"]["csvFilePathAndName"]=$conf["outPutPathAndName"];#csv檔案的名稱,預設爲系統時間
15882
			
15882
 
15883
			}#if end
15883
			}#if end
15884
		
15884
 
15885
		#如果 $conf["noDownload"] 有設置
15885
		#如果 $conf["noDownload"] 有設置
15886
		if(isset($conf["noDownload"])){
15886
		if(isset($conf["noDownload"])){
15887
			
15887
 
15888
			#且$conf["noDownload"]等於"true"
15888
			#且$conf["noDownload"]等於"true"
15889
			if($conf["noDownload"]=="true"){
15889
			if($conf["noDownload"]=="true"){
15890
				
15890
 
15891
				$conf["db"]["create"]["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
15891
				$conf["db"]["create"]["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
15892
			
15892
 
15893
				}#if end	
15893
				}#if end
15894
			
15894
 
15895
			}#if end
15895
			}#if end
15896
		
15896
 
15897
		#參考資料來源:
15897
		#參考資料來源:
15898
		#http://php.net/manual/en/function.str-split.php
15898
		#http://php.net/manual/en/function.str-split.php
15899
		return csv::create($conf["db"]["create"]);
15899
		return csv::create($conf["db"]["create"]);
15900
		unset($conf["db"]["create"]);
15900
		unset($conf["db"]["create"]);
15901
		
15901
 
15902
		}#funciton exportTableToCsv end
15902
		}#funciton exportTableToCsv end
15903
		
15903
 
15904
	/*
15904
	/*
15905
	#函式說明:
15905
	#函式說明:
15906
	#透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1
15906
	#透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1
15907
	#回傳結果:
15907
	#回傳結果:
15908
	#$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
15908
	#$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
Line 15927... Line 15927...
15927
	#http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
15927
	#http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
15928
	#備註:
15928
	#備註:
15929
	#參考語法,ALTER TABLE dbName.dtName AUTO_INCREMENT = 1;
15929
	#參考語法,ALTER TABLE dbName.dtName AUTO_INCREMENT = 1;
15930
	*/
15930
	*/
15931
	public static function eraseDataInTableThenResetAutoIncrement(&$conf){
15931
	public static function eraseDataInTableThenResetAutoIncrement(&$conf){
15932
		
15932
 
15933
		#初始化要回傳的內容
15933
		#初始化要回傳的內容
15934
		$result=array();
15934
		$result=array();
15935
 
15935
 
15936
		#取得當前執行的函數名稱
15936
		#取得當前執行的函數名稱
15937
		$result["function"]=__FUNCTION__;
15937
		$result["function"]=__FUNCTION__;
15938
 
15938
 
15939
		#如果 $conf 不為陣列
15939
		#如果 $conf 不為陣列
15940
		if(gettype($conf)!="array"){
15940
		if(gettype($conf)!="array"){
15941
			
15941
 
15942
			#設置執行失敗
15942
			#設置執行失敗
15943
			$result["status"]="false";
15943
			$result["status"]="false";
15944
			
15944
 
15945
			#設置執行錯誤訊息
15945
			#設置執行錯誤訊息
15946
			$result["error"][]="\$conf變數須為陣列形態";
15946
			$result["error"][]="\$conf變數須為陣列形態";
15947
 
15947
 
15948
			#如果傳入的參數為 null
15948
			#如果傳入的參數為 null
15949
			if($conf==null){
15949
			if($conf==null){
15950
				
15950
 
15951
				#設置執行錯誤訊息
15951
				#設置執行錯誤訊息
15952
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
15952
				$result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
15953
				
15953
 
15954
				}#if end
15954
				}#if end
15955
 
15955
 
15956
			#回傳結果
15956
			#回傳結果
15957
			return $result;
15957
			return $result;
15958
			
15958
 
15959
			}#if end
15959
			}#if end
15960
		
15960
 
15961
		#檢查參數
15961
		#檢查參數
15962
		#函式說明:
15962
		#函式說明:
15963
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
15963
		#檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
15964
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
15964
		#$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
15965
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
15965
		#$reuslt["error"],執行不正常結束的錯訊息陣列.
Line 15971... Line 15971...
15971
		#必填參數:
15971
		#必填參數:
15972
		#$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
15972
		#$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
15973
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
15973
		$conf["variableCheck.checkArguments"]["varInput"]=&$conf;
15974
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
15974
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
15975
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","dtName");
15975
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","dtName");
15976
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
15976
		#$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double");
15977
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
15977
		$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
15978
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
15978
		#$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
15979
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
15979
		$conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
15980
		#可省略參數:
15980
		#可省略參數:
15981
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
15981
		#$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
15982
		#$conf["canBeEmptyString"]="false";
15982
		#$conf["canBeEmptyString"]="false";
15983
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
15983
		#$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
15984
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
15984
		$conf["variableCheck.checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
15985
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
15985
		#$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double");
15986
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string","string");
15986
		$conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string","string");
15987
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
15987
		#$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
15988
		#$conf["skipableVarDefaultValue"]=array("");
15988
		#$conf["skipableVarDefaultValue"]=array("");
15989
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
15989
		$checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
15990
		unset($conf["variableCheck.checkArguments"]);
15990
		unset($conf["variableCheck.checkArguments"]);
15991
		
15991
 
15992
		#如果 檢查參數 失敗
15992
		#如果 檢查參數 失敗
15993
		if($checkResult["status"]=="false"){
15993
		if($checkResult["status"]=="false"){
15994
			
15994
 
15995
			#設置執行不正常
15995
			#設置執行不正常
15996
			$result["status"]="false";
15996
			$result["status"]="false";
15997
			
15997
 
15998
			#設置執行錯誤
15998
			#設置執行錯誤
15999
			$result["error"]=$checkResult;
15999
			$result["error"]=$checkResult;
16000
			
16000
 
16001
			#回傳節果
16001
			#回傳節果
16002
			return $result;
16002
			return $result;
16003
			
16003
 
16004
			}#if end
16004
			}#if end
16005
			
16005
 
16006
		#如果 檢查參數 不通過
16006
		#如果 檢查參數 不通過
16007
		if($checkResult["passed"]=="false"){
16007
		if($checkResult["passed"]=="false"){
16008
			
16008
 
16009
			#設置執行不正常
16009
			#設置執行不正常
16010
			$result["status"]="false";
16010
			$result["status"]="false";
16011
			
16011
 
16012
			#設置執行錯誤
16012
			#設置執行錯誤
16013
			$result["error"]=$checkResult;
16013
			$result["error"]=$checkResult;
16014
			
16014
 
16015
			#回傳節果
16015
			#回傳節果
16016
			return $result;
16016
			return $result;
16017
			
16017
 
16018
			}#if end
16018
			}#if end
16019
			
16019
 
16020
		#執行一筆筆移除資料的sql語法
16020
		#執行一筆筆移除資料的sql語法
16021
		#函式說明:
16021
		#函式說明:
16022
		#執行mysql指令
16022
		#執行mysql指令
16023
		#回傳結果::
16023
		#回傳結果::
16024
		#$result["status"],"true"為執行成功;"false"為執行失敗。
16024
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 16028... Line 16028...
16028
		#查詢號的解果,需要解析。
16028
		#查詢號的解果,需要解析。
16029
		#必填參數:
16029
		#必填參數:
16030
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
16030
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
16031
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
16031
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
16032
		$conf["db.execMysqlQuery"]["dbSql"]="DELETE FROM `".$conf["dbName"]."`.`".$conf["dtName"]."` ";#要執行sql語法
16032
		$conf["db.execMysqlQuery"]["dbSql"]="DELETE FROM `".$conf["dbName"]."`.`".$conf["dtName"]."` ";#要執行sql語法
16033
		#可省略參數: 
16033
		#可省略參數:
16034
		
16034
 
16035
		#如果有設置 $conf["dbPassword"]
16035
		#如果有設置 $conf["dbPassword"]
16036
		if(isset($conf["dbPassword"])){
16036
		if(isset($conf["dbPassword"])){
16037
			
16037
 
16038
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
16038
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
16039
			
16039
 
16040
			}#if end
16040
			}#if end
16041
			
16041
 
16042
		#如果有設置 $conf["dbPort"]
16042
		#如果有設置 $conf["dbPort"]
16043
		if(isset($conf["dbPort"])){
16043
		if(isset($conf["dbPort"])){
16044
			
16044
 
16045
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
16045
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
16046
			
16046
 
16047
			}#if end
16047
			}#if end
16048
				
16048
 
16049
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
16049
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
16050
		unset($conf["db.execMysqlQuery"]);
16050
		unset($conf["db.execMysqlQuery"]);
16051
				
16051
 
16052
		#如果執行 sql 語法失敗
16052
		#如果執行 sql 語法失敗
16053
		if($queryResult["status"]=="false"){
16053
		if($queryResult["status"]=="false"){
16054
			
16054
 
16055
			#設置執行不正常
16055
			#設置執行不正常
16056
			$result["status"]="false";
16056
			$result["status"]="false";
16057
			
16057
 
16058
			#設置執行錯誤
16058
			#設置執行錯誤
16059
			$result["error"]=$queryResult;
16059
			$result["error"]=$queryResult;
16060
			
16060
 
16061
			#回傳節果
16061
			#回傳節果
16062
			return $result;
16062
			return $result;
16063
			
16063
 
16064
			}#if end
16064
			}#if end
16065
			
16065
 
16066
		#取得所執行的sql語法
16066
		#取得所執行的sql語法
16067
		$result["sql"][]=$queryResult["queryString"];		
16067
		$result["sql"][]=$queryResult["queryString"];
16068
						
16068
 
16069
		#執行重設增量的sql語法
16069
		#執行重設增量的sql語法
16070
		#函式說明:
16070
		#函式說明:
16071
		#執行mysql指令
16071
		#執行mysql指令
16072
		#回傳結果::
16072
		#回傳結果::
16073
		#$result["status"],"true"為執行成功;"false"為執行失敗。
16073
		#$result["status"],"true"為執行成功;"false"為執行失敗。
Line 16079... Line 16079...
16079
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
16079
		$conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
16080
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
16080
		$conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
16081
		$conf["db.execMysqlQuery"]["dbSql"]="ALTER TABLE ".$conf["dbName"].".".$conf["dtName"]." AUTO_INCREMENT = 1";#要執行sql語法
16081
		$conf["db.execMysqlQuery"]["dbSql"]="ALTER TABLE ".$conf["dbName"].".".$conf["dtName"]." AUTO_INCREMENT = 1";#要執行sql語法
16082
		#如果有設置 $conf["dbPassword"]
16082
		#如果有設置 $conf["dbPassword"]
16083
		if(isset($conf["dbPassword"])){
16083
		if(isset($conf["dbPassword"])){
16084
			
16084
 
16085
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
16085
			$conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
16086
			
16086
 
16087
			}#if end
16087
			}#if end
16088
			
16088
 
16089
		#如果有設置 $conf["dbPort"]
16089
		#如果有設置 $conf["dbPort"]
16090
		if(isset($conf["dbPort"])){
16090
		if(isset($conf["dbPort"])){
16091
			
16091
 
16092
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
16092
			$conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
16093
			
16093
 
16094
			}#if end
16094
			}#if end
16095
				
16095
 
16096
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
16096
		$queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
16097
		unset($conf["db.execMysqlQuery"]);
16097
		unset($conf["db.execMysqlQuery"]);
16098
				
16098
 
16099
		#如果執行 sql 語法失敗
16099
		#如果執行 sql 語法失敗
16100
		if($queryResult["status"]=="false"){
16100
		if($queryResult["status"]=="false"){
16101
			
16101
 
16102
			#設置執行不正常
16102
			#設置執行不正常
16103
			$result["status"]="false";
16103
			$result["status"]="false";
16104
			
16104
 
16105
			#設置執行錯誤
16105
			#設置執行錯誤
16106
			$result["error"]=$queryResult;
16106
			$result["error"]=$queryResult;
16107
			
16107
 
16108
			#回傳節果
16108
			#回傳節果
16109
			return $result;
16109
			return $result;
16110
			
16110
 
16111
			}#if end
16111
			}#if end
16112
			
16112
 
16113
		#取得所執行的sql語法
16113
		#取得所執行的sql語法
16114
		$result["sql"][]=$queryResult["queryString"];
16114
		$result["sql"][]=$queryResult["queryString"];
16115
		
16115
 
16116
		#設置執行正常
16116
		#設置執行正常
16117
		$result["status"]="true";
16117
		$result["status"]="true";
16118
		
16118
 
16119
		#回傳結果
16119
		#回傳結果
16120
		return $result;
16120
		return $result;
16121
		
16121
 
16122
		}#function eraseDataInTableThenResetAutoIncrement end
16122
		}#function eraseDataInTableThenResetAutoIncrement end
16123
 
16123
 
16124
	}#db class end
16124
	}#db class end
16125
	
16125
 
16126
?>
16126
?>