Subversion Repositories php-qbpwcf

Rev

Rev 177 | Rev 207 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?php

/*

        QBPWCF, Quick Build PHP website Component base on Fedora Linux.
    Copyright (C) 2014~2025 Min-Jhin,Chen

    This file is part of QBPWCF.

    QBPWCF is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    QBPWCF is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with QBPWCF.  If not, see <http://www.gnu.org/licenses/>.

*/
namespace qbpwcf;

/*
類別說明:
跟mysql/mariadb操作有關的類別
備註:
建議加上pdo的支援,以便無痛支援多種資料庫。
https://www.php.net/manual/en/mysql.php
https://www.php.net/manual/en/mysqlinfo.library.choosing.php
https://blog.markgdi.com/article/quick-start-operation-mysql-using-php-pdo/
*/
class db{

        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #必填參數:
        #$method,物件,為物件實體或類別名稱,會自動置入該參數.
        #$arguments,陣列,為呼叫方法時所用的參數.
        #參考資料:
        #__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
        */
        public function __call($method,$arguments){
                
                #取得當前執行的函式
                $result["function"]=__FUNCTION__;
                
                #設置執行不正常
                $result["status"]="false";
                
                #設置執行錯誤
                $result["error"][]=__NAMESPACE__ ."/".$method."() 不存在!";
                
                #設置所丟入的參數
                $result["error"][]=$arguments;
                
                #回傳結果
                return $result;
                
                }#function __call end
                
        /*
        #函式說明:
        #當前類別被呼叫的靜態方法不存在時,將會執行該函數,回報該方法不存在.
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$reuslt["error"],執行不正常結束的錯訊息陣列.
        #$result["function"],當前執行的函式名稱.
        #必填參數:
        #$method,物件,為物件實體或類別名稱,會自動置入該參數.
        #$arguments,陣列,為呼叫方法時所用的參數.
        #參考資料:
        #__call=>http://php.net/manual/en/language.oop5.overloading.php#object.callstatic
        */
        public static function __callStatic($method,$arguments){
                
                #取得當前執行的函式
                $result["function"]=__FUNCTION__;
                
                #設置執行不正常
                $result["status"]="false";
                
                #設置執行錯誤
                $result["error"][]="欲呼叫的". __NAMESPACE__ ."/".$method."() 不存在!";
                
                #設置所丟入的參數
                $result["error"][]=$arguments;
                
                #回傳結果
                return $result;
                
                }#function __callStatic end

        /*
        #函式說明:
        #連線到mysql-server,會回傳一個陣列
        #回傳結果:
        #$result["status"],若連線成功則爲"true",連線失敗則爲"false"。
        #$result["function"],當前執行的函數名稱
        #$result["connectInformation"],爲回傳的mysql連線資訊。
        #$result["error"],爲錯誤訊息陣列
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置。
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
        $conf["dbAccount"]=$dbAccount;
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,預設不使用
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */      
        public static function mysqlConnect(&$conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #如果 $checkResult["status"]等於"false";
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #如果是 localhost
                if($conf["dbAddress"]==="localhost"){
                
                        #卸除dbPort變數
                        unset($conf["dbPort"]);
                
                        }#if end

                #如果密碼爲空,則爲不使用密碼進行連綫
                if(!isset($conf["dbPassword"])){

                        #如果沒設定 dbPort
                        if(!isset($conf["dbPort"])){

                                #設定資料庫位置與帳號,並連線
                                #若連線失敗
                                if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"],$conf["dbAccount"]))){
                                        
                                        #設置連線失敗的提示
                                        $result["error"][]="連線失敗,請檢查帳號是否正確.";
                                        
                                        #取得連線時的錯誤編號
                                        $result["error"][]=mysqli_connect_errno();
                                        
                                        #取得連線時的錯誤訊息
                                        $result["error"][]=mysqli_connect_error();
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                }#if end
                                
                        #反之
                        else{
                        
                                #設定資料庫位置與port與帳號,並連線
                                #若連線失敗
                                if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"].":".$conf["dbPort"],$conf["dbAccount"]))){
                                        
                                        #設置連線失敗的提示
                                        $result["error"][]="連線失敗,請檢查帳號是否正確.";
                                        
                                        #取得連線時的錯誤編號
                                        $result["error"][]=mysqli_connect_errno();
                                        
                                        #取得連線時的錯誤訊息
                                        $result["error"][]=mysqli_connect_error();
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                        
                                }#else end
                        
                        }#if end
                
                #反之代表要使用密碼
                else{

                        #如果沒設定 dbPort
                        if(!isset($conf["dbPort"])){

                                #設定資料庫位置、帳號、密碼,並連綫
                                if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"],$conf["dbAccount"],$conf["dbPassword"]))){
                                        
                                        #設置連線失敗的提示
                                        $result["error"][]="連線失敗,請檢查帳號密碼是否正確.";
                                        
                                        #取得連線時的錯誤編號
                                        $result["error"][]=mysqli_connect_errno();
                                        
                                        #取得連線時的錯誤訊息
                                        $result["error"][]=mysqli_connect_error();
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end

                                }#if end
                        
                        #反之 
                        else{
                        
                                #設定資料庫位置、帳號、密碼,並連綫
                                if(!($result["connectInformation"]=@mysqli_connect($conf["dbAddress"].":".$conf["dbPort"],$conf["dbAccount"],$conf["dbPassword"]))){
                                        
                                        #設置連線失敗的提示
                                        $result["error"][]="連線失敗,請檢查帳號密碼是否正確.";
                                        
                                        #取得連線時的錯誤編號
                                        $result["error"][]=mysqli_connect_errno();
                                        
                                        #取得連線時的錯誤訊息
                                        $result["error"][]=mysqli_connect_error();
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                        
                                }#else end

                        }#else end
        
                #使編碼為utf8
                if(!(mysqli_query($result["connectInformation"],'SET NAMES UTF8'))){
                        
                        #設置連線編碼失敗的提示
                        $result["error"][]="設置連線編碼失敗.";
                        
                        #取得連線時的錯誤編號
                        $result["error"][]=mysqli_connect_errno();
                        
                        #取得連線時的錯誤訊息
                        $result["error"][]=mysqli_connect_error();
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #設定 CHARACTER_SET_CLIENT 為 utf8
                if(!(mysqli_query($result["connectInformation"],'SET CHARACTER_SET_CLIENT=utf8'))){
                        
                        #設置連線編碼失敗的提示
                        $result["error"][]="設置連線編碼失敗.";
                        
                        #取得連線時的錯誤編號
                        $result["error"][]=mysqli_connect_errno();
                        
                        #取得連線時的錯誤訊息
                        $result["error"][]=mysqli_connect_error();
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                         
                #設定 CHARACTER_SET_RESULTS 為 utf8
                if(!(mysqli_query($result["connectInformation"],'SET CHARACTER_SET_RESULTS=utf8'))){
                        
                        #設置連線編碼失敗的提示
                        $result["error"][]="設置連線編碼失敗.";
                        
                        #取得連線時的錯誤編號
                        $result["error"][]=mysqli_connect_errno();
                        
                        #取得連線時的錯誤訊息
                        $result["error"][]=mysqli_connect_error();
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                         
                #執行正常
                $result["status"]="true";

                #回傳結果
                return $result;  

                }#function mysqlConnect end

        /*
        #函式說明:
        #關閉與mysql的連線,會回傳一個陣列。
        #回傳結果::
        #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
        #$result["connectInformation"],爲回傳的mysql連線資訊。
        #$result["error"],爲錯誤訊息陣列.        
        #必填參數:
        #$conf["mysqli"],字串,mysqli物件.
        $conf["mysqli"]=$mysqli;
        #可省略參數:
        #無.
        #參考資料:
        #無.
        #備註:
        #無.
        */      
        public static function mysqlClose(&$conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("mysqli");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array(null);
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                #$conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                #$conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #如果 $checkResult["status"]等於"false";
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #關閉與資料庫的連線如果成功
                if(@mysqli_close($conf["mysqli"])){
                
                        #則回傳"true"
                        $result["status"]="true";

                        }#if end

                #連線失敗回傳"false"
                else{
                        
                        #設置連線編碼失敗的提示
                        $result["error"][]="關閉連線失敗.";
                        
                        #取得連線時的錯誤編號
                        $result["error"][]=mysqli_connect_errno();
                        
                        #取得連線時的錯誤訊息
                        $result["error"][]=mysqli_connect_error();
                        
                        #設置執行失敗
                        $result["status"]="false";

                        }#else end

                #儲存mysqli物件
                $result["connectInformation"]=$conf["mysqli"];

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;  

                }#funciton mysqlClose end

        /*
        #函式說明:
        #連線到資料庫,結果會回傳一個陣列.
        #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
        #$result["connectInformation"],爲回傳的mysql連線資訊.
        #$result["error"],錯誤訊息  .
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置。
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
        $conf["dbAccount"]=$dbAccount;
        #$conf["dbName"],字串,爲要連的資料庫名稱
        $conf["dbName"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function dbConnect(&$conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #如果 $checkResult["status"]等於"false";
                if($checkResult["passed"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #函式說明:
                #連線到mysql-server,會回傳一個陣列
                #回傳結果:
                #$result["status"],若連線成功則爲"true",連線失敗則爲"false"。
                #$result["function"],當前執行的函數名稱
                #$result["connectInformation"],爲回傳的mysql連線資訊。
                #$result["error"],爲錯誤訊息陣列
                #必填參數:
                $conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
                $conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        
                        }#if end
                                
                #如果有設置 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        $conf["db"]["mysqlConnect"]["dbPort"]=$conf["dbPort"];#字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                
                        }#if end
                
                $con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
                unset($conf["db"]["mysqlConnect"]);

                #如果連線失敗
                if($con["status"]==="false"){
                        
                        #提示訊息
                        $result["error"]=$con;

                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #確認資料庫存在或可以被存取
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["function"],當前執行的涵式
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryConn"],mysql用來查尋的連資源. 
                #$result["queryString"],要執行的sql內容.
                #必填參數:
                #$conf["dbSql"],字串,要執行sql語法
                $conf["db::execMysqlQuery"]["dbSql"]="show databases;";
                #可省略參數:
                #$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
                #$conf["db::execMysqlQuery"]["dbLink"]=$conf["dbName"];
                #$conf["dbAddress"],字串,爲mysql-Server的位置。
                $conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];
                #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
                $conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"]; 
                
                #如果存在 $dbPassword
                if(isset($conf["dbPassword"])){
                
                        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        $conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];
                        
                        }#if end
                        
                #$conf["dbName"],字串,爲要連的資料庫名稱
                #$conf["dbName"]="";
                
                #如果存在 $dbPort
                if(isset($conf["dbPort"])){
                
                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                        $conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                #$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
                #$conf["autoClose"]="true";
                #參考資料:
                #無.
                #備註:
                #無.
                $execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
                unset($conf["db::execMysqlQuery"]);

                #如果執行失敗
                if($execMysqlQuery["status"]==="false"){
                
                        #設置連線失敗的提示
                        $result["error"][]="檢查資料庫可否存取出錯";
                        
                        #設置錯誤訊息
                        $result["error"][]=$execMysqlQuery["error"];
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #解析 $execMysqlQuery["queryResource"] 看是否存在要存取的資料庫
                #函式說明:
                #解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為失敗
                #$result["error"],錯誤訊息
                #$result["function"],儲存當前函數名稱
                #$result["dataColumnName"],為資料欄位的名稱陣列.
                #$result["dataColumnName"][$i]代表第一個欄位名稱.
                #$result["dataContent"],爲資料的內容陣列,第1維度的key為$conf["tableValueName"][$i],亦即第 $i+1 個欄位的名稱,若該欄位不存在,則其value為空字串;第2維度的key為第$i+1筆資料的索引.
                #$result["dataCount"],爲取得的資料筆數.
                #必填參數:
                #$conf["sqlQueryResult"],object,爲執行sql語法所獲得的查詢結果。
                $conf["db::sendQueryDataToVariabele"]["sqlQueryResult"]=$execMysqlQuery["queryResource"];
                #$conf["tableValueName"],字串陣列,爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
                $conf["db::sendQueryDataToVariabele"]["tableValueName"]=array("Database");
                #可省略參數:
                #$conf["dbAddress"],字串,爲mysql-Server的位置,目前沒有用途.
                #$conf["dbAddress"]=$dbAddress;
                #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號,目前沒有用途.
                #$conf["dbAccount"]=$dbAccount;
                #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼,目前沒有用途.
                #$conf["dbPassword"]=$dbPassword;
                #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port,目前沒有用途.
                #$conf["dbPort"]="";
                #$conf["valueName"],字串陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
                #$conf["valueName"]=$conf["tableValueName"];
                #參考資料:
                #http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
                #備註:
                #無.
                $sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
                unset($conf["db::sendQueryDataToVariabele"]);

                #如果執行異常
                if($sendQueryDataToVariabele["status"]==="false"){
                
                        #設置連線失敗的提示
                        $result["error"][]="檢查資料庫可否存取出錯";
                        
                        #設置錯誤訊息
                        $result["error"][]=$sendQueryDataToVariabele["error"];
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #檢查資料庫是否可以存取
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
                #回傳結果:
                #$result["status"],"true"表示執行正確,"false"表示執行錯誤.
                #$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
                #$result["error"],錯誤訊息
                #$result["function"],當前執行的函數名稱
                #$result["argv"],使用的參數
                #$result["equalVarName"],相等的變數名稱或key.
                #$result["equalVarValue"],相等的變數數值內容.
                #必填參數:
                #$conf["conditionElement"],字串,條件元素,要等於的元素內容.
                $conf["search::getEqualVar"]["conditionElement"]=$conf["dbName"];
                #$conf["compareElements"],字串陣列,要比對的陣列變數內容.
                $conf["search::getEqualVar"]["compareElements"]=$sendQueryDataToVariabele["dataContent"]["Database"];
                #可省略參數:
                #無.
                #參考資料:
                #無.
                #備註:
                #無.
                $getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
                unset($conf["search::getEqualVar"]);
                
                #如果執行失敗
                if($getEqualVar["status"]==="false"){
                
                        #設置錯誤的提示
                        $result["error"][]="檢查資料庫可否存取出錯";
                        
                        #設置錯誤訊息
                        $result["error"][]=$sendQueryDataToVariabele["error"];
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                        
                #如果無法存取資料庫
                if($getEqualVar["founded"]==="false"){
                        
                        #設置錯誤的提示
                        $result["error"][]="資料庫(".$conf["dbName"].")無法存取";
                        
                        #設置錯誤訊息
                        $result["error"][]=$sendQueryDataToVariabele;
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                
                        }#if end

                #選取資料庫
                #如果連線失敗
                if(!(mysqli_select_db($con["connectInformation"],$conf["dbName"]))){

                        #設置連線失敗的提示
                        $result["error"][]="選取資料庫失敗";
                        
                        #取得連線時的錯誤編號
                        $result["error"][]=mysqli_connect_errno();
                        
                        #取得連線時的錯誤訊息
                        $result["error"][]=mysqli_connect_error();
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;

                        }#if end

                #取得mysqli物件
                $result["connectInformation"]=$con["connectInformation"];

                #設置執行正常
                $result["status"]="true";

                #回傳結果
                return $result;  

                }#function dbConnect end

        /*
        #函式說明:
        #執行mysql指令
        #回傳結果::
        #$result["status"],"true"為執行成功;"false"為執行失敗。
        #$result["error"],錯誤訊息的陣列
        #$result["function"],當前執行的涵式
        #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
        #$result["queryConn"],mysql用來查尋的連資源. 
        #$result["queryString"],要執行的sql內容.
        #必填參數:
        #$conf["dbSql"],字串,要執行sql語法
        $conf["dbSql"]="";
        #可省略參數:
        #$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
        $conf["dbLink"]="";
        #$conf["dbAddress"],字串,爲mysql-Server的位置。
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
        $conf["dbAccount"]=$dbAccount; 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbName"],字串,爲要連的資料庫名稱
        #$conf["dbName"]="";
        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
        #$conf["dbPort"]="3306";
        #$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
        #$conf["autoClose"]="true";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function execMysqlQuery(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf===null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbSql");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbLink","dbAddress","dbAccount","dbPassword","dbName","dbPort","autoClose","mysqli");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("object","string","string","string","string","string","string",null);
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,"true",null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #如果 $checkResult["status"]等於"false";
                if($checkResult["passed"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end
                
                #如果沒有 dbLink
                if(!isset($conf["dbLink"])){
                
                        #初始化儲存mysqli物件的變數
                        $con="";
                        
                        #如果有指定資料庫
                        if(isset($conf["dbName"])){
                                
                                #函式說明:
                                #連線到資料庫,結果會回傳一個陣列.
                                #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
                                #$result["connectInformation"],爲回傳的mysql連線資訊.
                                #$result["error"],錯誤訊息  .
                                #$result["function"],當前執行的函數名稱.
                                #必填參數:
                                $conf["db::dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                $conf["db::dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                $conf["db::dbConnect"]["dbName"]=$conf["dbName"];#爲要連的資料庫名稱
                                #可省略參數:
                                
                                #如果 $conf["dbPassword"] 有設置
                                if(isset($conf["dbPassword"])){
                                        
                                        $conf["db::dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                                        
                                        }#if end
                                        
                                #如果有設置 $conf["dbPort"] 
                                if(isset($conf["dbPort"])){
                                
                                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                                        $conf["db::dbConnect"]["dbPort"]=$conf["dbPort"];
                                
                                        }#if end
                                
                                $con=db::dbConnect($conf["db::dbConnect"]);
                                unset($conf["db::dbConnect"]);
                                
                                #如果連線失敗
                                if($con["status"]=="false"){
                                        
                                        #設置執行失敗的訊息
                                        $result["status"]="false";
                                        
                                        #紀錄錯誤訊息
                                        $result["error"]=$con;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #儲存mysqli物件
                                $result["queryConn"]=$con["connectInformation"];
                                
                                #解析可以取得的資料庫清單
                                #函式說明:
                                #解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
                                #回傳結果:
                                #$result["status"],執行結果"true"為成功;"false"為失敗
                                #$result["error"],錯誤訊息
                                #$result["function"],儲存當前函數名稱
                                #$result["dataColumnName"],為資料欄位的名稱陣列.
                                #$result["dataColumnName"][$i]代表第一個欄位名稱.
                                #$result["dataContent"],爲資料的內容陣列,第1維度的key為$conf["tableValueName"][$i],亦即第 $i+1 個欄位的名稱,若該欄位不存在,則其value為空字串;第2維度的key為第$i+1筆資料的索引.
                                #$result["dataCount"],爲取得的資料筆數.
                                #必填參數:
                                #$conf["sqlQueryResult"],object,爲執行sql語法所獲得的查詢結果。
                                $conf["db::sendQueryDataToVariabele"]["sqlQueryResult"]=$result["queryConn"];
                                #$conf["tableValueName"],字串陣列,爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
                                $conf["db::sendQueryDataToVariabele"]["tableValueName"]=array("Database");
                                #可省略參數:
                                #$conf["dbAddress"],字串,爲mysql-Server的位置,目前沒有用途.
                                $conf["db::sendQueryDataToVariabele"]["dbAddress"]=$dbAddress;
                                #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號,目前沒有用途.
                                $conf["db::sendQueryDataToVariabele"]["dbAccount"]=$dbAccount;
                                
                                #如果有設置 $conf["dbPassword"]
                                if(isset($conf["dbPassword"])){
                                
                                        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼,目前沒有用途.
                                        $conf["db::sendQueryDataToVariabele"]["dbPassword"]=$dbPassword;
                                
                                        }#if end
                                
                                #如果有設置 $conf["dbPort"]
                                if(isset($conf["dbPort"])){
                                
                                        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port,目前沒有用途.
                                        $conf["db::sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];
                                
                                        }#if end
                                
                                #$conf["valueName"],字串陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
                                #$conf["valueName"]=$conf["tableValueName"];
                                #參考資料:
                                #http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
                                #備註:
                                #無.
                                $sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
                                unset($conf["db::sendQueryDataToVariabele"]);
                                
                                #如果連線失敗
                                if($sendQueryDataToVariabele["status"]==="false"){
                                        
                                        #設置執行失敗的訊息
                                        $result["status"]="false";
                                        
                                        #紀錄錯誤訊息
                                        $result["error"]=$sendQueryDataToVariabele;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #尋找目標資料庫是否存在
                                #函式說明:
                                #檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
                                #回傳結果:
                                #$result["status"],"true"表示執行正確,"false"表示執行錯誤.
                                #$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
                                #$result["error"],錯誤訊息
                                #$result["function"],當前執行的函數名稱
                                #$result["argv"],使用的參數
                                #$result["equalVarName"],相等的變數名稱或key.
                                #$result["equalVarValue"],相等的變數數值內容.
                                #必填參數:
                                #$conf["conditionElement"],字串,條件元素,要等於的元素內容.
                                $conf["search::getEqualVar"]["conditionElement"]=$conf["dbName"];
                                #$conf["compareElements"],字串陣列,要比對的陣列變數內容.
                                $conf["search::getEqualVar"]["compareElements"]=$result["dataContent"]["Database"];
                                #可省略參數:
                                #無.
                                #參考資料:
                                #無.
                                #備註:
                                #無.
                                $getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
                                unset($conf["search::getEqualVar"]);
                                
                                #如果連線失敗
                                if($getEqualVar["status"]==="false"){
                                        
                                        #設置執行失敗的訊息
                                        $result["status"]="false";
                                        
                                        #紀錄錯誤訊息
                                        $result["error"]=$getEqualVar;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                        
                                #如果不存在
                                if($getEqualVar["founded"]==="false"){
                                        
                                        #設置執行失敗的訊息
                                        $result["status"]="false";
                                        
                                        #紀錄錯誤訊息
                                        $result["error"][]="目標資料庫 ".$conf["dbName"]." 不存在";
                                        
                                        #紀錄錯誤訊息
                                        $result["error"][]=$getEqualVar;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                }#if end
                        
                        #反之沒有指定資料庫
                        else{
                                
                                #連線到mysql
                                #函式說明:
                                #連線到mysql-server,會回傳一個陣列
                                #回傳結果:
                                #$result["connectStatus"],若連線成功則爲0,連線失敗則爲1。
                                #$result["connectInformation"],爲回傳的mysql連線資訊。
                                #$result["error"],爲錯誤訊息
                                #必填參數:
                                $conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
                                $conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
                                #可省略參數:
                                
                                #如果 $conf["dbPassword"] 有設置
                                if(isset($conf["dbPassword"])){
                                        
                                        $conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                                        
                                        }#if end
                                        
                                #如果有設置 $conf["dbPort"] 
                                if(isset($conf["dbPort"])){
                                
                                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                                        $conf["db::dbConnect"]["dbPort"]=$conf["dbPort"];
                                
                                        }#if end
                                
                                $con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
                                unset($conf["db"]);
                                
                                #如果連線失敗
                                if($con["status"]==="false"){
                                        
                                        #設置執行失敗的訊息
                                        $result["status"]="false";
                                        
                                        #紀錄錯誤訊息
                                        $result["error"]=$con;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #debug
                                #var_dump(__LINE__,$con);
                                
                                #儲存mysqli物件
                                $result["queryConn"]=$con["connectInformation"];
                                
                                }#else end
                
                        }#if end
                
                #反之存在 $conf["dbLink"]
                else{
                
                        #取得db物件
                        $result["queryConn"]=$conf["dbLink"];
                
                        }#else end
                
                #設置sql的查詢語言
                $result["queryStringOri"]=$conf["dbSql"];
                
                #設置sql的查詢語言
                $result["queryString"]=$conf["dbSql"];
                
                #debug
                #var_dump(__LINE__,$result["queryString"]);
                
                #進行查詢
                #如果有錯誤訊息
                if(!($mysqli_query=mysqli_query($result["queryConn"],$result["queryString"]))){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置提示執行mysql語法失敗
                        $result["error"][]="執行mysql語法失敗";
                        
                        #取得錯誤訊息
                        $result["error"]["mysqlErrorNo"]=mysqli_errno($result["queryConn"]);
                        $result["error"]["mysqlErrorDetail"]=mysqli_error($result["queryConn"]);
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #取得正確的mysqli_resource
                $result["queryResource"]=$mysqli_query;
                
                #如果要自動斷線
                if($conf["autoClose"]==="true"){
                
                        #連線結束
                        #函式說明:
                        #關閉與mysql的連線,會回傳一個陣列。
                        #回傳結果::
                        #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
                        #$result["connectInformation"],爲回傳的mysql連線資訊。
                        #$result["error"],爲錯誤訊息陣列.                
                        #必填參數:
                        #$conf["mysqli"],字串,mysqli物件.
                        $conf["db::mysqlClose"]["mysqli"]=$result["queryConn"];
                        $mysqlClose=db::mysqlClose($conf["db::mysqlClose"]);
                        unset($conf["db::mysqlClose"]);
                                
                        #如果關閉mysql連線失敗
                        if($mysqlClose["status"]=="false"){
                                
                                #設置執行失敗的訊息
                                $result["status"]="false";
                                
                                #紀錄錯誤訊息
                                $result["error"]=$mysqlClose;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                
                        }#if end
                
                #設置執行成功的訊息
                $result["status"]="true";
                
                #回傳查詢後的結果
                return $result;
                
                }#function execMysqlQuery end

        /*
        #函式說明:
        #用shell執行mysql指令.
        #回傳結果::
        #$result["status"],"true"為執行成功;"false"為執行失敗。
        #$result["error"],錯誤訊息的陣列
        #$result["function"],當前執行的涵式
        #$result["queryString"],mysql查詢的語言.
        #必填參數:
        #$conf["fileArgu"],字串,變數__FILE__的內容.
        $conf["fileArgu"]=__FILE__;
        #$conf["dbSql"],字串,要執行sql語法
        $conf["dbSql"]="";      
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
        $conf["dbAccount"]=$dbAccount; 
        #可省略參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置,若設置為"localhost",則會忽略,預設為不指定,會嘗試透過unix domain socket來存取資料庫.
        #$conf["dbAddress"]=$dbAddress;
        #$conf["pre"],陣列,要在本指令前執行的每個指令與參數.$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
        #$conf["pre"]=array();
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbName"],字串,爲要連的資料庫名稱
        #$conf["dbName"]="";
        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function shell(&$conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf===null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("fileArgu","dbSql","dbAccount");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("pre","dbAddress","dbPassword","dbName","dbPort");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("array","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,"3306");
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end

                #如果 $checkResult["status"]等於"false";
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳解果
                        return $result;
                        
                        }#if end
                
                #避免亂碼
                $sql="SET NAMES UTF8;"."SET CHARACTER_SET_CLIENT=utf8;"."SET CHARACTER_SET_RESULTS=utf8;".$conf["dbSql"];
        
                #初始化參數
                $argu=array();
        
                #精簡的參數
                $argu[]=$sql;
                $argu[]="|";
                $argu[]="mysql";
                $argu[]="-u";
                $argu[]=$conf["dbAccount"];
        
                #如果有設置 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                
                        #加上密碼參數
                        $argu[]="-p".$conf["dbPassword"];
                
                        }#if end
                
                #如果有指定 dbAddress
                if(isset($conf["dbAddress"])){
                
                        #如果不為 localhost
                        if($conf["dbAddress"]!=="localhost"){
                        
                                #加上 位置參數
                                $argu[]="-h".$conf["dbAddress"];
                        
                                }#if end
                
                        }#if end
                
                #如果有設置 $conf["dbName"]
                if(isset($conf["dbName"])){
                
                        #加上資料庫名稱參數
                        $argu[]=$conf["dbName"];
                
                        }#if end
                
                #函式說明:
                #呼叫shell執行系統命令,並取得回傳的內容.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函數名稱.
                #$result["argu"],使用的參數.
                #$result["cmd"],執行的指令內容.
                #$result["fullCmd"],如果參數 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["output"],爲執行完二元碼後的輸出陣列,若 $conf["inBackGround"] 為 "true",則為當下的輸出.
                #$result["tmpFileOutput"],儲存輸出的暫存檔案名稱,若 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["running"],是否還在執行.
                #$result["pid"],pid.
                #$result["statusCode"],執行結束後的代碼.
                #必填的參數
                #$conf["command"],字串,要執行的指令與.
                $conf["external::callShell"]["command"]="echo";
                #$conf["fileArgu"],字串,變數__FILE__的內容.
                $conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
                #可省略參數:
                #$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
                $conf["external::callShell"]["argu"]=$argu;
                #$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
                #$conf["arguIsAddr"]=array();   
                
                #如果有參數
                if(count($argu)>0){
                        
                        #$conf["thereIsShellVar"],陣列字串,指令搭配的參數"argu",若含有「\'」,則取代為「"」.每個argu參數都要有對應的元素."true"代表要置換.
                        $conf["external::callShell"]["thereIsShellVar"]=array();
                        
                        #針對每個參數
                        for($i=0;$i<count($argu);$i++){
                        
                                #第一個參數
                                if($i===0){
                                
                                        #含有shell變數
                                        $conf["external::callShell"]["thereIsShellVar"][$i]="true";
                                
                                        }#if end
                                
                                #反之
                                else{
                                
                                        #不含有shell變數
                                        $conf["external::callShell"]["thereIsShellVar"][$i]="false";
                                
                                        }#else 
                        
                                }#for end
                
                        }#if end
                
                #如果有設置 pre
                if(isset($conf["pre"])){
                
                        #$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
                        #$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
                        #$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
                        $conf["external::callShell"]["pre"]=$conf["pre"];
                        
                        }#if end
                
                #$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
                #$conf["enablePrintDescription"]="true";
                #$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
                #$conf["printDescription"]="";
                #$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
                $conf["external::callShell"]["escapeshellarg"]="true";
                #$conf["username"],字串,要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
                #$conf["username"]="";
                #$conf["password"],字串,root的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
                #$conf["password"]="";
                #$conf["useScript"],字串,是否要啟用Linux的script指令來記錄輸出,"true"代表要,Fedora的selinux會擋住該操作;"false"代表不要,預設為"false".
                #$conf["useScript"]="";
                #$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 "/tmp/.qbpwcf_tmp/external/callShell/".
                #$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
                #$conf["inBackGround"],字串,是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用「;」區隔的多個指令將會出錯.
                #$conf["inBackGround"]="";
                #$conf["getErr"],字串,"true"代表將錯誤輸出變成標準輸出,反之"false"為不變動.
                #$conf["getErr"]="false";
                #$conf["doNotRun"],字串,"true"代表不執行指令,預設為"false"會執行指令.
                $conf["external::callShell"]["doNotRun"]="true";
                #備註:
                #不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
                #參考資料:
                #exec=>http://php.net/manual/en/function.exec.php
                #escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
                #escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
                $callShell=external::callShell($conf["external::callShell"]);
                unset($conf["external::callShell"]);

                #debug
                #var_dump(__LINE__,$callShell);

                #如果檢查參數作業出錯
                if($callShell["status"]=="false"){
                        
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$callShell;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #連線到 unixDomainSockServer 提供的 unix domain socket.
                #回傳結果:
                #$result["status"],"true"代表執行正常;"false"代表執行不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["content"],取得的回應.
                #必填參數:
                #$conf["sock"],字串,要連線的unix domain socket.
                $conf["sock::unixDomainSockClient"]["sock"]=qbpwcf_usock_path;
                #可省略參數:
                #$conf["id"],字串,取得的id,若無此值,則會得到新的數值.
                #$conf["id"]="";
                #$conf["cmd"],字串,要執行的指令,當$conf["id"]參數合法時,才會執行.
                $conf["sock::unixDomainSockClient"]["cmd"]=$callShell["escape"]["cmd"];
                #$conf["param"],參數陣列.
                $conf["sock::unixDomainSockClient"]["param"]=$callShell["escape"]["argu"];
                #$conf["escaped"],字串,param參數是否已經escaped了,預設為"false",反之為"true".
                $conf["sock::unixDomainSockClient"]["escaped"]="true";
                #$conf["clear"],字串,設為"true"代表要清除過期的用戶連線.
                #$conf["clear"]="true";
                #參考資料:
                #http://php.net/manual/en/function.stream-socket-client.php
                #http://php.net/manual/en/function.stream-get-contents.php
                #備註:
                #無.
                $paramsOfUnixDomainSockClient=$conf["sock::unixDomainSockClient"];
                $unixDomainSockClient=sock::unixDomainSockClient($conf["sock::unixDomainSockClient"]);
                unset($conf["sock::unixDomainSockClient"]);
                
                #如果執行失敗
                if($unixDomainSockClient["status"]==="false"){
                
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$unixDomainSockClient;
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                
                #取得json回應
                $jsonRes=json_decode($unixDomainSockClient["content"]);
                
                #如果執行失敗
                if($jsonRes===null){
                
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$unixDomainSockClient;
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                        
                #如果沒有產生新id
                if(!isset($jsonRes->id)){
                
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$unixDomainSockClient;
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                        
                #用新的id再傳送一次要求給 qbpwcf_usock_path
                $paramsOfUnixDomainSockClient["id"]=$jsonRes->id;
                $unixDomainSockClient=sock::unixDomainSockClient($paramsOfUnixDomainSockClient);
                unset($paramsOfUnixDomainSockClient);
                
                #var_dump($unixDomainSockClient);
                
                #如果執行失敗
                if($unixDomainSockClient["status"]==="false"){
                
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$unixDomainSockClient;
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                
                #執行正常
                $result["status"]="true";
        
                #設置執行的結果
                $result["content"]=$unixDomainSockClient;
        
                #回傳結果
                return $result;
        
                }#function shell end

        /*
        #函式說明:
        #建立資料庫,會回傳一個陣列。
        #回傳結果:
        #$result["status"],成功爲"true",失敗爲"false".
        #$result["error"],錯誤訊息.
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置。
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
        $conf["dbAccount"]=$dbAccount;
        #$conf["newDatabaseName"],字串,爲要新增的資料庫名稱.
        $conf["newDatabaseName"]="";
        #可省略參數: 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbName"],字串,爲要連的資料庫名稱
        #$conf["dbName"]="";
        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #maraiDB-createDatabase => https://mariadb.com/kb/en/mariadb/mariadb-documentation/data-types/string-data-types/data-types-character-sets-and-collations/setting-character-sets-and-collations/
        #備註:
        #無.
        */
        public static function createDatabase($conf){

                #初始化錯誤訊息 
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbPassword","newDatabaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                #備註:
                #功能與checkExistAndType函式相同
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果 $checkResult["passed"] 等於 "fasle"
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #建立資料庫的sql語法
                $sql="CREATE DATABASE ".$conf["newDatabaseName"]."  CHARACTER SET='utf8' COLLATE='utf8_unicode_ci'";

                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                         
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                
                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                                        
                $db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);

                #如果 $db["execMysqlQuery"]["status"] 等於 "false"
                if($db["execMysqlQuery"]["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$db["execMysqlQuery"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #執行道這邊代表執行正確
                $result["status"]="true";

                #回傳結果
                return $result;
        
                }#function createDatabase end

        /*
        #函式說明:
        #建立資料表,會回傳一個陣列。
        #回傳結果:
        #$result["status"],若成功則爲"true",失敗則爲"false"。
        #$result["error"],錯誤訊息的陣列。
        #$result["sql"],要執行的sql語法。
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,要選取的資料庫名稱       
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["newDataTableName"],字串,爲要新增的資料表名稱.
        $conf["newDataTableName"]="";
        #$conf["newDataTableColmunName"],字串,為新資料表的欄位名稱.
        $conf["newDataTableColmunName"]=array("id","lastUpdatedTime");
        #$conf["newDataTableColmunType"],字串陣列,為新資料表的欄位儲存的型態,常見的有:int,用來儲存整數;double,用來儲存有小數點的數值;timestamp,用來儲存時間;char,用來儲存任何東西,儲存成字元
        $conf["newDataTableColmunType"]=array("int","timestamp");
        #$conf["newDataTableColmunDefault"],字串陣列,為該欄位的預設值,若為currentTime則為當前時間;若為updatedCurrentTime則為初始為當前時間,之後每更動一次就更新為當次時間;若為null則代表空值;若為""則為不設定;以外的內容視為指定的數值.
        $conf["newDataTableColmunDefault"]=array("","updatedCurrentTime");
        #$conf["newDataTableColmunLength"],字串陣列,為新資料表的欄位儲存的長度,""代表不指定長度.
        $conf["newDataTableColmunLength"]=array("","");
        #$conf["newDataTableColmunNull"],字串陣列,為新資料表的欄位是否可為NULL.若為no則代表不能為null;若為yes則代表可以為null.
        $conf["newDataTableColmunNull"]=array("no","no","no","no");     
        #$conf["newDataTableColmunAutoAdd"],字串陣列,"true"為新資料表的欄位自動+1;反之設為""即可.
        $conf["newDataTableColmunAutoAdd"]=array("true","","","");
        #$conf["newDataTableColmunKeyType"],字串陣列,為該欄位的鍵屬性:primary key代表主鍵;留"",代表不指定。
        $conf["newDataTableColmunKeyType"]=array("primary key","","","");
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function createDataTable($conf){
                
                #初始化要回傳的結果
                $result=array();
                
                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;
                
                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","newDataTableName","newDataTableColmunName","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果檢查動作不正常
                if($checkResult["status"]=="false"){
                        
                        #設置執失敗訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳錯誤訊息
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執失敗訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳錯誤訊息
                        return $result;
                        
                        }#if end
                
                #建立資料表的語法
                $sql="create table ".$conf["selectedDataBaseName"].".".$conf["newDataTableName"];
                
                #加上指定欄位內容的開頭
                $sql=$sql."(";
                
                #針對每個欄位
                for($i=0;$i<count($conf["newDataTableColmunName"]);$i++){
                        
                        #接上欄位名稱
                        $sql=$sql.$conf["newDataTableColmunName"][$i];
                        
                        #接上欄位儲存型態
                        $sql=$sql." ".$conf["newDataTableColmunType"][$i];
                        
                        #如果有設定資料長度
                        if($conf["newDataTableColmunLength"][$i]!=""){
                        
                                #接上欄位儲存長度
                                $sql=$sql." (".$conf["newDataTableColmunLength"][$i].")";
                                
                                }#if end
                                
                        #如果有設定值
                        if($conf["newDataTableColmunDefault"][$i]!=""){
                                
                                switch($conf["newDataTableColmunDefault"][$i]){
                                        
                                        #如果設為 currentTime
                                        case "currentTime":
                                        
                                                #設定語法
                                                $sql=$sql." default CURRENT_TIMESTAMP";
                                                
                                                #跳出switch
                                                break;
                                        
                                        #如果設為updatedCurrentTime
                                        case "updatedCurrentTime":
                                        
                                                #設定語法
                                                $sql=$sql." default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP";
                                        
                                                #跳出switch
                                                break;
                                                
                                        #如果設為 null
                                        case "null":
                                        
                                                #設定語法
                                                $sql=$sql." default null";
                                                
                                                #跳出switch
                                                break;
                                                
                                        #如果不為以上數值
                                        default :
                                        
                                                #設定語法
                                                $sql=$sql." default ".$conf["newDataTableColmunDefault"][$i];
                                                
                                                #跳出switch
                                                break;
                                        
                                        }#switch end
                                
                                }#if end
                        
                        #如果有設定不能為NULL
                        if($conf["newDataTableColmunNull"][$i]=="no"){
                                
                                $sql=$sql." NOT NULL";
                                
                                }#if end
                        
                        #如果有設定要自動加1
                        if($conf["newDataTableColmunAutoAdd"][$i]=="true"){
                                
                                #加上自動加1的語句
                                $sql=$sql." auto_increment";
                                
                                }#if end
                                
                        #如果有設定鍵的屬性
                        if($conf["newDataTableColmunKeyType"][$i]!=""){
                                
                                $sql=$sql." ".$conf["newDataTableColmunKeyType"][$i];
                                
                                }#if end
                                
                        #如果不是最後一個欄位
                        if($i!=count($conf["newDataTableColmunName"])-1){
                                
                                #加上逗號
                                $sql=$sql.",";
                                
                                }#if end
                        
                        }#for end
                        
                #加上指定欄位內容的結束
                $sql=$sql.") DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ;";
                
                #取得sql語法
                $result["sql"]=$sql;
                
                #var_dump($sql);
                
                #函式說明:
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果有設定密碼
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                
                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                                
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #如果執行 sql 失敗
                if($queryResult["status"]=="false"){
                        
                        #設置執行失敗訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$queryResult["error"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #設置執成功訊息
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function createDataTable end

        /*
        #函式說明:
        #新增資料表的欄位
        #回傳結果:
        #$result["status"],"true",代表執行成功;"false"代表執行失敗
        #$result["error"],錯誤訊息陣列
        #$result["sql"],執行的sql內容
        #$result["function"],當前執行的函數名稱
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;#爲用於連入mysql-Server時要使用的帳號.
        #$conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataBaseName"]="";
        #$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataTableName"]="";
        #$conf["addedColumnName"],字串,要增加的欄位名稱.
        $conf["addedColumnName"]="";
        #$conf["newDataTableColmunType"],字串,為新資料表的欄位儲存的型態,常見的有:#int,用來儲存整數.#double,用來儲存有小數點的數值.#timestamp,用來儲存時間.#varchar,最多可以儲存65535個字元,請記得使用$conf["newDataTableColmunLength"]參數指定長度.#char,用來儲存任何東西,儲存成字元,最大長限制為255.#tinytext,儲存長度限制為255,根據實際使用大小來調整儲存大小.#text,儲存大量文字,不能當索引鍵.
        $conf["newDataTableColmunType"]="char";
        #可省略參數: 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #$conf["newDataTableColmunLength"],字串,為新資料表的欄位儲存的長度.
        #$conf["newDataTableColmunLength"]="";
        #$conf["newDataTableColmunDefault"],字串,為該欄位的預設值.#currentTime,當前時間.#updatedCurrentTime,初始為當前時間,之後每更動一次就更新為當次時間.#null,代表空值.#以外的內容視為指定的數值.
        #$conf["newDataTableColmunDefault"]="";
        #$conf["newDataTableColmunNotNull"],字串,為新資料表的欄位不可為NULL.#"true"代表不能為null.#"false"代表可以為null.
        #$conf["newDataTableColmunNotNull"]="true";#
        #$conf["newDataTableColmunAutoAdd"],字串,為新資料表的欄位是否自動+1
        #$conf["newDataTableColmunAutoAdd"]="true";
        #$conf["newDataTableColmunKeyType"],字串,為該欄位的鍵屬性:"primary key"爲主鍵、"index"爲索引鍵、"foreign key"爲外鍵
        #$conf["newDataTableColmunKeyType"]="primary key";
        #$conf["foreignDb"]="";#外鍵參考的資料庫,預設為$conf["selectedDataBaseName"].
        #$conf["foreignDb"]=$conf["selectedDataBaseName"];
        #$conf["foreignTable"],字串,外鍵參考的資料表
        #$conf["foreignTable"]="";
        #$conf["foreignTableColumn"],字串,外鍵參考的資料表欄位
        #$conf["foreignTableColumn"]="";
        #$conf["onUpdateAction"],字串,當外鍵參考的欄位資料修改時,外鍵要如何回應?"CASCADE"會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
        #$conf["onUpdateAction"]="CASCADE";#
        #$conf["onDeleteAction"],字串,當外鍵參考的欄位資料移除時,外鍵要如何回應?"CASCADE"會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
        #$conf["onDeleteAction"]="SET NULL";    
        #$conf["comment"],字串,欄位的註解,預設不使用.
        #$conf["comment"]="";
        #參考資料:
        #儲存型態=>https://mariadb.com/kb/en/data-types/
        #備註:
        #無.
        */
        public static function addColumn(&$conf){
                
                #初始化要回傳的結果
                $result=array();
                
                #記錄當前執行的函數名稱
                $result["function"]=__FUNCTION__;
                
                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","addedColumnName");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNotNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType","foreignDb","foreignTable","foreignTableColumn","onUpdateAction","onDeleteAction","comment");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,"\$conf[\"selectedDataBaseName\"]",null,null,null,null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查過程有錯
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #組合sql語言
                $sql="alter table `".$conf["selectedDataTableName"]."` add `".$conf["addedColumnName"]."`";
                
                #接上欄位儲存型態
                $sql=$sql." ".$conf["newDataTableColmunType"];
                        
                #如果資料形態爲 "double、float"
                if($conf["newDataTableColmunType"]=="double" || $conf["newDataTableColmunType"]=="float" ){
                        
                        #則取消資料長度的限制
                        unset($conf["newDataTableColmunLength"]);
                        
                        }#if end        
                        
                #如果有設定資料長度,且資料儲存型態不為 tinytext 與 text
                if(isset($conf["newDataTableColmunLength"]) && $conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
                        
                        #接上欄位儲存長度
                        $sql=$sql." (".$conf["newDataTableColmunLength"].")";
                                
                        }#if end
                
                #如果資料形態不爲 "double、float、"
                if($conf["newDataTableColmunType"]!="double" && $conf["newDataTableColmunType"]!="float" && $conf["newDataTableColmunType"]!="int"){
                        
                        #指定欄CHARACTER SET爲utf8,COLLATE爲utf8_unicode_ci
                        $sql=$sql." CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
                        
                        }#if end
                                                                
                #如果有設定預設值
                if(isset($conf["newDataTableColmunDefault"])){
                        
                        #如果 $conf["newDataTableColmunType"] 不等於 "tinytext" 也不等於 "text"
                        if($conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
                                
                                #根據 $conf["newDataTableColmunDefault"] 的數值內容
                                switch($conf["newDataTableColmunDefault"]){
                                        
                                        #如果設為 currentTime
                                        case "currentTime":
                                                
                                                #設定語法
                                                $sql=$sql." default CURRENT_TIMESTAMP";
                                                        
                                                #跳出switch
                                                break;
                                                
                                        #如果設為updatedCurrentTime
                                        case "updatedCurrentTime":
                                                
                                                #設定語法
                                                $sql=$sql." default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP";
                                                
                                                #跳出switch
                                                break;
                                                        
                                        #如果設為 null
                                        case "null":
                                                
                                                #設定語法
                                                $sql=$sql." default null";
                                                        
                                                #跳出switch
                                                break;
                                                        
                                        #如果不為以上數值
                                        default :
                                                
                                                #設定語法
                                                $sql=$sql." default '".$conf["newDataTableColmunDefault"]."'";
                                                        
                                                #跳出switch
                                                break;
                                                
                                        }#switch end
                                        
                                }#if end
                                
                        }#if end
                        
                #如果有設定不能為NUL
                if(isset($conf["newDataTableColmunNotNull"])){
                
                        #如果 $conf["newDataTableColmunNotNull"] 等於 "true"
                        if($conf["newDataTableColmunNotNull"]=="true"){
                                        
                                $sql=$sql." NOT NULL";
                                        
                                }#if end
                                                                
                        }#if end
                        
                        #如果有設定要自動加1
                        if(isset($conf["newDataTableColmunAutoAdd"])){
                                
                                #如果 $conf["newDataTableColmunAutoAdd"] 設為 "true"
                                if($conf["newDataTableColmunAutoAdd"]=="true"){
                                
                                        #加上自動加1的語句
                                        $sql=$sql." auto_increment";
                                        
                                        }#if end
                                
                                }#if end
                                
                #如果有設定註解
                if(isset($conf["comment"])){
                        
                        #設定其註解
                        $sql=$sql." COMMENT '".$conf["comment"]."' ";
                        
                        }#if end                
                                
                #如果有設定鍵的屬性
                if(isset($conf["newDataTableColmunKeyType"])){
                        
                        #如果爲 primary key 
                        if($conf["newDataTableColmunKeyType"]=="primary key"){
                                
                                #設定其鍵值
                                $sql=$sql." ".$conf["newDataTableColmunKeyType"];
                                
                                }#if end
                        
                        }#if end
                        
                #執行sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql.";";#要執行sql語法
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        #設定其密碼
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                
                $conf["db"]["execMysqlQuery"]["dbName"]=$conf["selectedDataBaseName"];#為是否要指定資料庫,預設不指定.
                                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end                        
                                        
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                                        
                #如果有錯誤
                if($queryResult["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #取得執行的sql語法
                $result["sql"][]=$queryResult["queryString"];
                
                #如果 $conf["newDataTableColmunKeyType"] 存在
                if(isset($conf["newDataTableColmunKeyType"])){
                        
                        #如果爲 index
                        if($conf["newDataTableColmunKeyType"]=="index"){
                                
                                #函式說明:
                                #新增資料表的欄位
                                #回傳結果:
                                #$result["status"],"true",代表執行成功;"false"代表執行失敗.
                                #$result["function"],當前執行的函數名稱.
                                #$result["error"],錯誤訊息陣列.
                                #$result["sql"],執行的sql字串.
                                #必填參數:
                                $conf["db::setColumnIndex"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                $conf["db::setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                $conf["db::setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                $conf["db::setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                $conf["db::setColumnIndex"]["indexedColumnName"]=$conf["addedColumnName"];#要設爲index的欄位名稱
                                #可省略參數:
                                
                                #如果 $conf["dbPassword"] 有設定
                                if(isset($conf["dbPassword"])){
                                
                                        $conf["db::setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                
                                        }#if end
                                
                                #如果有設定 $conf["dbPort"]        
                                if(isset($conf["dbPort"])){
                                
                                        #設定 $conf["dbPort"]
                                        $conf["db::setColumnIndex"]["dbPort"]=$conf["dbPort"];
                                
                                        }#if end        
                                
                                $setColumnIndex=db::setColumnIndex($conf["db::setColumnIndex"]);
                                unset($conf["db::setColumnIndex"]);
                                
                                #如果建立index失敗
                                if($setColumnIndex["status"]=="false"){
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$setColumnIndex;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                        
                                #取得執行的sql語法
                                $result["sql"][]=$setColumnIndex["sql"];
                                
                                }#if end
                                                        
                        }#if end
                        
                #如果 $conf["newDataTableColmunKeyType"] 有設定
                if(isset($conf["newDataTableColmunKeyType"])){  
                        
                        #如果爲 foreign key
                        if($conf["newDataTableColmunKeyType"]=="foreign key"){
                                
                                #函式說明:
                                #修改資料表的欄位
                                #回傳結果:
                                #$result["status"],"true",代表執行成功;"false"代表執行失敗.
                                #$result["error"],錯誤訊息陣列.
                                #$result["function"],當前執行的函數名稱.
                                #$result["sql"][$i],第$i+1個執行的sql語法字串陣列.
                                #必填參數:
                                $conf["db::editColumn"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                $conf["db::editColumn"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                $conf["db::editColumn"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                $conf["db::editColumn"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料表
                                $conf["db::editColumn"]["editedColumnName"]=$conf["addedColumnName"];#要修改的欄位名稱
                                #可省略參數: 
                                
                                #如果 $conf["dbPassword"] 有設定
                                if(isset($conf["dbPassword"])){
                                
                                        $conf["db::editColumn"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                
                                        }#if end
                                
                                #$conf["newColumnName"]="";#要修改成的欄位名稱,預設與$conf["dbInformation"]["editedColumnName"]一樣。
                                #$conf["newDataTableColmunType"]="";#為新資料表的欄位儲存的型態,常見的有:
                                        #int,用來儲存整數.
                                        #double,用來儲存有小數點的數值.
                                        #timestamp,用來儲存時間.
                                        #varchar,可以儲存65536個字元.
                                        #char,用來儲存任何東西,儲存成字元,長度限制為255.
                                        #tinytest,來儲存大量的文字,會更據使用量調整儲存大小,長度限制跟char一樣.
                                        #text,用來儲存大量的文字,不能作為索引值
                                #$conf["newDataTableColmunLength"]="";#為新資料表的欄位儲存的長度,""代表不限制長度
                                #$conf["newDataTableColmunDefault"]="";#為該欄位的預設值
                                        #"",代表不指定預設值
                                        #currentTime,當前時間;
                                        #updatedCurrentTime,初始為當前時間,之後每更動一次就更新為當次時間
                                        #null,代表空值
                                        #以外的內容視為指定的數值
                                #$conf["newDataTableColmunNotNull"]="";#為新資料表的欄位不可為NULL否:
                                        #true代表不能為null,
                                        #false代表可以為null。
                                #$conf["newDataTableColmunAutoAdd"]="true";#為新資料表的欄位是否自動+1
                                $conf["db::editColumn"]["newDataTableColmunKeyType"]="foreign key";#為該欄位的鍵屬性:""為移除鍵的設定、"primary key"爲主鍵、"index"爲索引鍵、"foreign key"為外鍵
                                $conf["db::editColumn"]["foreignKeyDb"]=$conf["foreignDb"];#若要設定foreign key的話,則要提供參考的資料庫,預設為$conf["selectedDataBaseName"].
                                $conf["db::editColumn"]["foreignKeyReferenceTable"]=$conf["foreignTable"];#若要設定foreign key的話,則要提供參考的資料表
                                $conf["db::editColumn"]["foreignKeyReferenceColumn"]=$conf["foreignTableColumn"];#若要設定foreign key的話,則要提供參考的資料表欄位
                                
                                #如果有設定 $conf["onUpdateAction"]
                                if(isset($conf["onUpdateAction"])){
                                        
                                        $conf["db::editColumn"]["foreignKeyUpdateAction"]=$conf["onUpdateAction"];#若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
                                                                                
                                        }#if end
                                
                                #如果有設定 $conf["onDeleteAction"]
                                if(isset($conf["onDeleteAction"])){
                                        
                                        $conf["db::editColumn"]["foreignKeyDeleteAction"]=$conf["onDeleteAction"];#若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
                                                                                
                                        }#if end
                                
                                #如果有設定 $conf["dbPort"]        
                                if(isset($conf["dbPort"])){
                                
                                        #設定 $conf["dbPort"]
                                        $conf["db::editColumn"]["dbPort"]=$conf["dbPort"];
                                
                                        }#if end
                                
                                $editColumn=db::editColumn($conf["db::editColumn"]);
                                unset($conf["db::editColumn"]);
                                        
                                #如果設置為foreign失敗
                                if($editColumn["status"]=="false"){
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$editColumn;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end        
                                        
                                #有幾個執行的sql語法就執行幾次
                                for($i=0;$i<count($editColumn["sql"]);$i++){
                                        
                                        #取得執行的sql語法
                                        $result["sql"][]=$editColumn["sql"][$i];
                                        
                                        }#for end
                                                                        
                                }#if end
                                
                        }#if end
                
                #執行到這邊代表執行成功
                
                #設置成功訊息
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function addColumn end

        /*
        #函式說明:
        #修改資料表的欄位
        #回傳結果:
        #$result["status"],"true",代表執行成功;"false"代表執行失敗.
        #$result["error"],錯誤訊息陣列.
        #$result["function"],當前執行的函數名稱.
        #$result["sql"][$i],第$i+1個執行的sql語法字串陣列.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataBaseName"]="";
        #$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料表.
        $conf["selectedDataTableName"]="";
        #$conf["editedColumnName"],字串,要修改的欄位名稱.
        $conf["editedColumnName"]="";
        #可省略參數: 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #$conf["newColumnName"],字串,要修改成的欄位名稱,預設與$conf["editedColumnName"]一樣。
        #$conf["newColumnName"]=$conf["editedColumnName"];
        #$conf["newDataTableColmunType"],字串,為新資料表的欄位儲存的型態,常見的有:int,用來儲存整數;double,用來儲存有小數點的數值;timestamp,用來儲存時間;varchar,可以儲存65536個字元;char,用來儲存任何東西,儲存成字元,長度限制為255;tinytest,來儲存大量的文字,會更據使用量調整儲存大小,長度限制跟char一樣;text,用來儲存大量的文字,不能作為索引值
        #$conf["newDataTableColmunType"]="";
        #$conf["newDataTableColmunLength"]=,字串,為新資料表的欄位儲存的長度,""代表不限制長度.
        #$conf["newDataTableColmunLength"]="";
        #$conf["newDataTableColmunDefault"],字串,為該欄位的預設值:"",代表不指定預設值;currentTime,當前時間;updatedCurrentTime,初始為當前時間,之後每更動一次就更新為當次時間;null,代表空值;以外的內容視為指定的數值.
        #$conf["newDataTableColmunDefault"]="";
        #$conf["newDataTableColmunNotNull"],字串,為新資料表的欄位不可為NULL否:true代表不能為null;false代表可以為null.
        #$conf["newDataTableColmunNotNull"]="";
        #$conf["newDataTableColmunComment"],字串,欄位的註解.
        #$conf["newDataTableColmunComment"]="";
        #$conf["newDataTableColmunAutoAdd"],字串,為新資料表的欄位是否自動+1
        #$conf["newDataTableColmunAutoAdd"]="true";
        #$conf["newDataTableColmunKeyType"],字串,為該欄位的鍵屬性:""為移除鍵的設定、"primary key"爲主鍵、"index"爲索引鍵、"foreign key"為外鍵.
        #$conf["newDataTableColmunKeyType"]="";
        #$conf["foreignKeyDb"],字串,若要設定foreign key的話,則要提供參考的資料庫,預設為$conf["selectedDataBaseName"].
        #$conf["foreignKeyDb"]="";
        #$conf["foreignKeyReferenceTable"],字串,若要設定foreign key的話,則要提供參考的資料表.
        #$conf["foreignKeyReferenceTable"]="";
        #$conf["foreignKeyReferenceColumn"],字串,若要設定foreign key的話,則要提供參考的資料表欄位.
        #$conf["foreignKeyReferenceColumn"]="";
        #$conf["foreignKeyUpdateAction"],字串,若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
        #$conf["foreignKeyUpdateAction"]="";
        #$conf["foreignKeyDeleteAction"],字串,若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
        #$conf["foreignKeyDeleteAction"]="SET NULL";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function editColumn(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["db::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["db::checkArguments"]["varInput"]=&$conf;
                #$conf["db::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["db::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","editedColumnName");
                #$conf["db::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["db::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
                #$conf["db::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["db::checkArguments"]["referenceVarKey"]="db::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["canBeEmptyString"]="false";
                #$conf["db::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["db::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","newColumnName","newDataTableColmunType","newDataTableColmunLength","newDataTableColmunDefault","newDataTableColmunNotNull","newDataTableColmunAutoAdd","newDataTableColmunKeyType","foreignKeyDb","foreignKeyReferenceTable","foreignKeyReferenceColumn","foreignKeyUpdateAction","foreignKeyDeleteAction","newDataTableColmuComment");
                #$conf["db::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["db::checkArguments"]["skipableVariableType"]=array("string","string","string","string","string","string","string","string","string","string","string","string","string","string","string");
                #$conf["db::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["db::checkArguments"]["skipableVarDefaultValue"]=array(null,null,$conf["editedColumnName"],null,null,null,null,null,null,"\$conf[\"selectedDataBaseName\"]",null,null,null,null,null);
                #$conf["db::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["db::checkArguments"]["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["db::checkArguments"]);
                unset($conf["db::checkArguments"]);
                
                #如果檢查有誤
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得目標資料表的所有資訊
                #函式說明:
                #取得資料表所有欄位的詳細資訊
                #回傳的內容:
                #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                #$result["error"],錯誤訊息陣列
                #$result["sql"],執行的sql語法
                #$result["oriInput"],原始的資料表欄位資訊
                #$result["everyLine"],逐行的欄位資訊
                #$result["tableName"],當前查詢的資料表名稱
                #$result["engine"],資料表使用的儲存引擎
                #$result["charset"],資料表預設的編碼
                #$result["columnName"][$i],各欄位的名稱陣列,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲0開始的數字,也可以使用欄位的名稱.
                #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲0開始的數字,也可以使用欄位的名稱.
                #$result["columnNull"][$i],各欄位是否可以爲null,"true"爲可以爲null;"false"爲可不以爲"null",$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnCollate"][$i],各欄位使用的Collate,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnComment"][$i],各欄位的註解,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["primaryKey"],該資料表的主鍵
                #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲0開始的數字,,也可用欄位的名稱來找value.
                #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲0開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲0開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲0開始的數字,也可用欄位的名稱來找value.
                #必填參數:
                $conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
                $conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
                $conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
                $conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
                #可省略參數:
                
                #如果有設定連線密碼
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
                
                        }#if end        
                
                $oriColumnInfo=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
                unset($conf["db"]["getTableColumnDetailInfo"]);
                
                #debug
                #var_dump($oriColumnInfo);
                #exit;
                
                #如果查詢資料表資訊失敗
                if($oriColumnInfo["status"]=="false"){
                        
                        #設定執行失敗的識別
                        $result["status"]="false";
                        
                        #設定錯誤訊息
                        $result["error"]=$oriColumnInfo;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢視目標欄位的鍵屬性
                #var_dump($oriColumnInfo);
                        
                #如果沒有定新的欄位明稱
                if(!isset($conf["newColumnName"])){
                        
                        #則設定為原始欄位的名稱
                        $conf["newColumnName"]=$oriColumnInfo["columnName"][$conf["editedColumnName"]];
                                                        
                        }#if end
                        
                #如果 $conf["newDataTableColmunType"] 沒有設定 
                if(!isset($conf["newDataTableColmunType"])){
                        
                        #$oriColumnInfo["columnVarTypeAndLengthLimit"][$conf["editedColumnName"]];
                        
                        #則設定為原始欄位的儲存型態
                        $conf["newDataTableColmunType"]=$oriColumnInfo["columnVarType"][$conf["editedColumnName"]];
                        
                        }#if end
                        
                #以下要檢查
                        
                #如果新資料型態不等於 "tinytext" 跟 "text"
                if($conf["newDataTableColmunType"]!="tinytext" && $conf["newDataTableColmunType"]!="text"){
                        
                        #如果沒有設定 $conf["newDataTableColmunLength"]
                        if(!isset($conf["newDataTableColmunLength"])){
                                
                                #則設定為原始欄位的儲存長度
                                $conf["newDataTableColmunLength"]=$oriColumnInfo["columnVarLengthLimit"][$conf["editedColumnName"]];
                                
                                }#if end
                                                                                
                        #如果 $conf["newDataTableColmunLength"] 不為 ""
                        if($conf["newDataTableColmunLength"]!=""){
                                
                                #則加上 「(」與「)」
                                $conf["newDataTableColmunLength"]="(".$conf["newDataTableColmunLength"].")";
                                
                                #屬性後面加上長度
                                $conf["newDataTableColmunType"]=$conf["newDataTableColmunType"].$conf["newDataTableColmunLength"];
                                                                        
                                }#if end
                                
                        }#if end
                
                #如果 $conf["newDataTableColmunDefault"] 不存在
                if(!isset($conf["newDataTableColmunDefault"])){
                        
                        #則設定為原始欄位的預設數值
                        $conf["newDataTableColmunDefault"]="default \"".$oriColumnInfo["columnDefault"][$conf["editedColumnName"]]."\"";
                        
                        #如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 ""
                        if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]==""){
                                
                                #則將 $conf["newDataTableColmunDefault"] 設為
                                $conf["newDataTableColmunDefault"]="";
                                
                                }#if end
                                
                        #如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 "NULL"
                        if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]=="NULL"){
                                
                                #則將 $conf["newDataTableColmunDefault"] 設為
                                $conf["newDataTableColmunDefault"]="";
                                
                                }#if end
                                
                        #如果 $oriColumnInfo["columnDefault"][$conf["editedColumnName"]] 為 "沒有指定"
                        if($oriColumnInfo["columnDefault"][$conf["editedColumnName"]]=="沒有指定"){
                                
                                #則將 $conf["newDataTableColmunDefault"] 設為
                                $conf["newDataTableColmunDefault"]="";
                                
                                }#if end
                        
                        }#if end
                        
                #反之有設定 $conf["newDataTableColmunDefault"]
                else{
                        
                        #當 $conf["newDataTableColmunType"] 不等於 "text" 與 "tinytest" 時,才能用預設值。
                        if($conf["newDataTableColmunType"]!="text" && $conf["newDataTableColmunType"]!="tinytest" ){
                                                                
                                #判斷 $conf["newDataTableColmunDefault"] 的數值
                                #currentTime,當前時間;
                                #updatedCurrentTime,初始為當前時間,之後每更動一次就更新為當次時間
                                #null,代表空值
                                #以外的內容視為指定的數值
                                switch($conf["newDataTableColmunDefault"]){
                                        
                                        #如果是
                                        case "currentTime":
                                        
                                                #則將 $conf["newDataTableColmunDefault"] 設為 " default CURRENT_TIMESTAMP "
                                                $conf["newDataTableColmunDefault"]=" default CURRENT_TIMESTAMP ";
                                        
                                                #跳出 switch 
                                                break;
                                                
                                        #如果是 "updatedCurrentTime"
                                        case "updatedCurrentTime":
                                        
                                                #則將 $conf["newDataTableColmunDefault"] 設為 " default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP "
                                                $conf["newDataTableColmunDefault"]=" default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP ";
                                        
                                                #跳出 switch 
                                                break;
                                                
                                        #如果是 "null"
                                        case "null":
                                        
                                                #則將 $conf["newDataTableColmunDefault"] 設為 " default null "
                                                $conf["newDataTableColmunDefault"]=" default null ";
                                        
                                                #跳出 switch 
                                                break;
                                                
                                        #如果是 "NULL"
                                        case "NULL":
                                        
                                                #則將 $conf["newDataTableColmunDefault"] 設為 " default null "
                                                $conf["newDataTableColmunDefault"]=" default NULL ";
                                        
                                                #跳出 switch 
                                                break;
                                        
                                        #如果是 ""
                                        case "":
                                        
                                                #則代表不設定預設值
                                                $conf["newDataTableColmunDefault"]="";

                                                break;
                                        
                                        #如果為其他內容  
                                        default :
                                        
                                                #套用自訂的預設值
                                                $conf["newDataTableColmunDefault"]=" default '".$conf["newDataTableColmunDefault"]."'";         
                                        
                                        }#switch end
                                        
                                }#if end
                        
                        }#else end
                        
                #如果 $conf["newDataTableColmunNotNull"] 沒有設定
                if(!isset($conf["newDataTableColmunNotNull"])){
                        
                        #則按照原始欄位的設定
                        
                        #如果 $oriColumnInfo["columnNotNull"][$conf["editedColumnName"]] 等於 "true"
                        if($oriColumnInfo["columnNotNull"][$conf["editedColumnName"]]=="true"){
                                
                                #則代表不能為 null
                                $conf["newDataTableColmunNotNull"]=" not null";
                                
                                }#if end
                        
                        #反之 $oriColumnInfo["columnNotNull"][$conf["editedColumnName"]] 等於 "false"
                        else{
                                
                                #則代表可以為 null
                                #將 $conf["newDataTableColmunNotNull"] 置換為 ""
                                $conf["newDataTableColmunNotNull"]="";
                                
                                }#if end
                                                        
                        }#if end
                        
                #反之 如果 $conf["newDataTableColmunNotNull"] 有設定
                else{
                        
                        #如果 $conf["newDataTableColmunNotNull"] 為 "true"
                        if($conf["newDataTableColmunNotNull"]=="true"){
                                
                                #則置換為 "not null"
                                $conf["newDataTableColmunNotNull"]="not null";
                                                                        
                                }#if end
                                
                        #如果 $conf["newDataTableColmunNotNull"] 為 "false"
                        if($conf["newDataTableColmunNotNull"]=="false"){
                                
                                #則置換為 ""
                                $conf["newDataTableColmunNotNull"]="";
                                
                                }#if end
                        
                        }#else end
                        
                #如果 $conf["newDataTableColmunAutoAdd"] 沒有設定
                if(!isset($conf["newDataTableColmunAutoAdd"])){
                        
                        #原始欄位的設定為 true 的話
                        if($oriColumnInfo["columnAutoIncrement"][$conf["editedColumnName"]]=="true"){
                                
                                #則按照原始欄位的設定
                                $conf["newDataTableColmunAutoAdd"]="auto_increment";
                                
                                }#if end
                                
                        #反之代表沒有設定
                        else{
                                
                                #設為 ""
                                $conf["newDataTableColmunAutoAdd"]="";
                                
                                }#else end
                                                        
                        }#if end
                        
                #反之代表 $conf["newDataTableColmunAutoAdd"] 有設定
                else{
                        
                        #如果 $conf["newDataTableColmunAutoAdd"] 等於 "true"
                        if($conf["newDataTableColmunAutoAdd"]=="true"){
                                
                                #則將 $conf["newDataTableColmunAutoAdd"] 設為 auto_increment
                                $conf["newDataTableColmunAutoAdd"]="auto_increment";
                                                                        
                                }#if end
                                
                        #反之 $conf["newDataTableColmunAutoAdd"] 不等於 "true"
                        else{
                                
                                #則將 $conf["newDataTableColmunAutoAdd"] 設為 ""
                                $conf["newDataTableColmunAutoAdd"]="";
                                
                                }#else end                              
                        
                        }#else end
                
                #如果 $conf["newDataTableColmunType"] 為 "char" 或 "text"   
                if($conf["newDataTableColmunType"]=="char" || $conf["newDataTableColmunType"]=="text"){
                        
                        #CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci',設定為utf8
                        $utf8="CHARACTER SET 'utf8' COLLATE 'utf8_unicode_ci'";
                        
                        }#if end
                        
                #反之不是字元或文字
                else{
                        
                        #則設為""
                        $utf8="";
                        
                        }#else end      
                
                #如果有設定 $conf["newDataTableColmunComment"]
                if(isset($conf["newDataTableColmunComment"])){
                        
                        #如果 $conf["newDataTableColmunComment"] 等於 ""
                        if($conf["newDataTableColmunComment"]==""){
                                
                                #設置為"沒有註解"
                                $comment=" COMMENT '沒有註解'";
                                
                                }#if end
                        
                        #反之設置指定的註解字串
                        else{
                                
                                #設置註解
                                $comment=" COMMENT '".$conf["newDataTableColmunComment"]."'";
                                
                                }#else end
                                                        
                        }#if end
                        
                #反之
                else{
                        
                        #如果原始沒有註解
                        if(!isset($oriColumnInfo["colmunComment"][$conf["editedColumnName"]])){
                                
                                #設為空字串
                                $comment="";
                                
                                }#if end
                        
                        #反之
                        else{
                                
                                #設為原始的註解
                                $comment=" COMMENT '".$oriColumnInfo["colmunComment"][$conf["editedColumnName"]]."'";
                                                                
                                }#else end
                                                                                                                        
                        }#else end      
                        
                #組合sql語法
                $sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." change `".$conf["editedColumnName"]."` `".$conf["newColumnName"]."` ".$conf["newDataTableColmunType"]." ".$utf8." ".$conf["newDataTableColmunDefault"]." ".$conf["newDataTableColmunNotNull"]." ".$conf["newDataTableColmunAutoAdd"]." ".$comment." ;";
                
                #執行 sql 語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果有設定連線密碼
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end        
                
                $sqlExecResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #如果執行 sql 語法錯誤
                if($sqlExecResult["status"]=="false"){
                        
                        #設定執行失敗的識別
                        $result["status"]="false";
                        
                        #設定錯誤訊息
                        $result["error"]=$sqlExecResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #取得執行的sql語法
                $result["sql"][]=$sqlExecResult["queryString"];
                
                #如果 $conf["newDataTableColmunKeyType"] 有設定
                if(isset($conf["newDataTableColmunKeyType"])){
                        
                        #取得其key為何種
                        #函式說明:
                        #取得資料表所有欄位的詳細資訊
                        #回傳的內容:
                        #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                        #$result["error"],錯誤訊息陣列
                        #$result["sql"],執行的sql語法
                        #$result["oriInput"],原始的資料表欄位資訊
                        #$result["everyLine"],逐行的欄位資訊
                        #$result["tableName"],當前查詢的資料表名稱
                        #$result["engine"],資料表使用的儲存引擎
                        #$result["charset"],資料表預設的編碼
                        #$result["columnName"][$i],各欄位的名稱陣列,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnNotNull"][$i],各欄位是否可以不爲null,"true"爲可以不爲null;"false"爲可以爲"null",$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnCollate"][$i],各欄位使用的Collate,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                        #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                        #$result["primaryKey"],該資料表的主鍵
                        #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                        #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                        #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列
                        #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲0開始的數字
                        #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲0開始的數字
                        #$result["foreignKey"]["OnUpdateAction"][$l],當參照的欄位資料更新時,會怎麼同步,$l爲0開始的數字
                        #$result["foreignKey"]["OnDeleteAction"][$m],當參照的欄位資料移除時,會怎麼同步,$m爲0開始的數字
                        #必填參數:
                        $conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];
                        $conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];
                        $conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];
                        $conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];
                        #可省略參數:
                        
                        #如果 $conf["dbPassword"] 有設定
                        if(isset($conf["dbPassword"])){
                                
                                #套用連限時的密碼
                                $conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];
                                
                                }#if end
                                                        
                        #如果有設定 $conf["dbPort"]        
                        if(isset($conf["dbPort"])){
                        
                                #設定 $conf["dbPort"]
                                $conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
                        
                                }#if end        
                                                
                        $tableColumnDetial=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
                        unset($conf["db"]["getTableColumnDetailInfo"]);#卸除變數,避免錯誤產生.
                        
                        #如果取得資料表結構失敗
                        if($tableColumnDetial["status"]=="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置執行錯誤訊息
                                $result["error"]=$tableColumnDetial;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #判斷 $conf["newDataTableColmunKeyType"] 來進行處理
                        #"index"爲索引鍵,"foreign key"為外鍵,""為將鍵屬性取消。
                        switch($conf["newDataTableColmunKeyType"]){
                                
                                #如果 $conf["newDataTableColmunKeyType"] 是 ""
                                case "":
                                
                                        #檢查目標欄位是主鍵或是索引鍵或是外鍵
                                        
                                        #debug  
                                        #var_dump($tableColumnDetial);
                                        
                                        #如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
                                        if($tableColumnDetial["foreignKey"]["exist"]=="true"){
                                                
                                                #如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["dbInformation"]["newColumnName"]] 存在,則代表該欄位為索引鍵
                                                if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
                                                
                                                        #移除外鍵
                                                        #函式說明:
                                                        #移除資料表單1欄位的外鍵
                                                        #回傳結果:
                                                        #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                        #$result["error"],錯誤訊息陣列
                                                        #$result["sql"],執行的sql字串.
                                                        #必填參數:
                                                        $conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                        $conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                        $conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
                                                        #可省略參數: 
                                                        
                                                        #如果 $conf["dbPassword"] 存在
                                                        if(isset($conf["dbPassword"])){
                                                                
                                                                #則設定連線的密碼
                                                                $conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                
                                                                }#if end
                                                        
                                                        #如果有設定 $conf["dbPort"]        
                                                        if(isset($conf["dbPort"])){
                                                        
                                                                #設定 $conf["dbPort"]
                                                                $conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
                                                        
                                                                }#if end        
                                                                                                                
                                                        $eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
                                                        unset($conf["db"]["eraseForeignKey"]);
                                                
                                                        #取得執行的sql字串
                                                        $result["sql"][]=$eraseForeignKeyResult["sql"];
                                                
                                                        #如果 $eraseForeignKeyResult["status"]等於"fasle"
                                                        if($eraseForeignKeyResult["status"]=="false"){
                                                                
                                                                #設置出錯的識別
                                                                $result["status"]="fasle";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$eraseForeignKeyResult;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                
                                                        }#if end
                                                
                                                }#if end
                                                                                        
                                        #如果 $tableColumnDetial["key"]["exist"] 等於 "true",代表有索引鍵
                                        if($tableColumnDetial["key"]["exist"]=="true"){
                                                
                                                #如果 $tableColumnDetial["key"][$conf["newColumnName"]] 存在,則代表該欄位為索引鍵
                                                if(isset($tableColumnDetial["key"][$conf["newColumnName"]])){
                                                        
                                                        #移除索引鍵
                                                        #函式說明:
                                                        #移除資料表單1欄位的索引鍵
                                                        #回傳結果:
                                                        #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                        #$result["error"],錯誤訊息陣列
                                                        #$result["sql"],執行的sql字串.
                                                        #必填參數:
                                                        $conf["db"]["eraseIndexKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                        $conf["db"]["eraseIndexKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                        $conf["db"]["eraseIndexKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseIndexKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料表
                                                        $conf["db"]["eraseIndexKey"]["erasedIndexKeyColumnConstraintName"]=$tableColumnDetial["keyConstraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
                                                        #可省略參數:
                                                        
                                                        #如果 $conf["dbPassword"] 存在
                                                        if(isset($conf["dbPassword"])){
                                                                
                                                                #則設定連線的密碼
                                                                $conf["db"]["eraseIndexKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                
                                                                }#if end
                                                        
                                                        #如果有設定 $conf["dbPort"]        
                                                        if(isset($conf["dbPort"])){
                                                        
                                                                #設定 $conf["dbPort"]
                                                                $conf["db"]["eraseIndexKey"]["dbPort"]=$conf["dbPort"];
                                                        
                                                                }#if end        
                                                        
                                                        $eraseIndexKeyResult=db::eraseIndexKey($conf["db"]["eraseIndexKey"]);
                                                        #var_dump($conf["db"]["eraseIndexKey"]);
                                                        unset($conf["db"]);
                                                        
                                                        #debug
                                                        #var_dump($eraseIndexKeyResult);
                                                        
                                                        #取得執行的sql語言
                                                        $result["sql"][]=$eraseIndexKeyResult["sql"];
                                                        
                                                        #如果 $eraseIndexKeyResult["status"]等於"fasle"
                                                        if($eraseIndexKeyResult["status"]=="false"){
                                                                
                                                                #設置出錯的識別
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$eraseIndexKeyResult;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        }#if end
                                                
                                                }#if end
                                
                                        #中斷switch
                                        break;
                                
                                #如果 $conf["newDataTableColmunKeyType"] 是 "index"
                                case "index":
                                                                        
                                        #如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
                                        if($tableColumnDetial["foreignKey"]["exist"]=="true"){
                                                
                                                #echo "have foreign key";
                                                
                                                #如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]] 存在,則代表該欄位為索引鍵
                                                if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
                                                
                                                        #移除外鍵
                                                        #函式說明:
                                                        #移除資料表單1欄位的外鍵
                                                        #回傳結果:
                                                        #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                        #$result["error"],錯誤訊息陣列
                                                        #必填參數:
                                                        $conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                        $conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                        $conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
                                                        #可省略參數: 
                                                        
                                                        #如果 $conf["dbPassword"] 存在
                                                        if(isset($conf["dbPassword"])){
                                                                
                                                                #則設定連線的密碼
                                                                $conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                
                                                                }#if end
                                                                        
                                                        #如果有設定 $conf["dbPort"]        
                                                        if(isset($conf["dbPort"])){
                                                        
                                                                #設定 $conf["dbPort"]
                                                                $conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
                                                        
                                                                }#if end                        
                                                                                                                
                                                        $eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
                                                        unset($conf["db"]["eraseForeignKey"]);
                                                
                                                        #執行的sql字串
                                                        $result["sql"][]=$eraseForeignKeyResult["sql"];
                                                
                                                        #如果 $eraseForeignKeyResult["status"]等於"fasle"
                                                        if($eraseForeignKeyResult["status"]=="false"){
                                                                
                                                                #設置出錯的識別
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$eraseForeignKeyResult;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                
                                                        }#if end
                                                
                                                }#if end
                                        
                                        #如果 $tableColumnDetial["key"]["exist"] 等於 "true",代表有索引鍵
                                        if($tableColumnDetial["key"]["exist"]=="true"){
                                
                                                #檢查目標欄位是否為索引鍵
                                                if(!isset($tableColumnDetial["index"][$conf["newColumnName"]])){
                                                        
                                                        #代表目標欄位不為索引鍵
                                                        
                                                        #建立索引鍵
                                                        #函式說明:
                                                        #新增資料表的欄位
                                                        #回傳結果:
                                                        #$result["status"],"true",代表執行成功;"false"代表執行失敗.
                                                        #$result["function"],當前執行的函數名稱.
                                                        #$result["error"],錯誤訊息陣列.
                                                        #$result["warning"],警告訊息.
                                                        #$result["sql"],執行的sql字串.
                                                        #必填參數:
                                                        $conf["db"]["setColumnIndex"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                        $conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                        $conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
                                                        #可省略參數:
                                                        
                                                        #如果 $conf["dbPassword"] 存在
                                                        if(isset($conf["dbPassword"])){
                                                                                
                                                                #則設定連線的密碼
                                                                $conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                                
                                                                }#if end
                                                                
                                                        #如果有設定 $conf["dbPort"]        
                                                        if(isset($conf["dbPort"])){
                                                        
                                                                #設定 $conf["dbPort"]
                                                                $conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
                                                        
                                                                }#if end        
                                                                                                
                                                        $setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
                                                        unset($conf["db"]["setColumnIndex"]);
                                                
                                                        #如果設置 column index 失敗
                                                        if($setColumnIndexResult["status"]==="false"){
                                                        
                                                                #設置出錯的識別
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$setColumnIndexResult;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                        
                                                                }#if end
                                                
                                                        #如果有執行 sql
                                                        if(isset($setColumnIndexResult["sql"])){
                                                
                                                                #取得執行的sql字串
                                                                $result["sql"][]=$setColumnIndexResult["sql"];
                                                
                                                                }#if end
                                                
                                                        #如果 $setColumnIndexResult["status"] 為 "fasle"
                                                        if($setColumnIndexResult["status"]=="fasle"){
                                                                
                                                                #設置出錯的識別
                                                                $result["status"]="false";
                                                                        
                                                                #設置錯誤訊息
                                                                $result["error"]=$setColumnIndexResult;
                                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        }#if end
                                
                                                }#if end
                                                
                                        #如果 $tableColumnDetial["key"]["exist"] 等於 "fasle",代表沒有索引鍵
                                        if($tableColumnDetial["key"]["exist"]=="false"){
                                
                                                #建立索引鍵
                                                #函式說明:
                                                #新增資料表的欄位
                                                #回傳結果:
                                                #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                #$result["error"],錯誤訊息陣列
                                                #必填參數:
                                                $conf["db"]["setColumnIndex"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                $conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                $conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                $conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                $conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
                                                #可省略參數:
                                                
                                                #如果 $conf["dbPassword"] 存在
                                                if(isset($conf["dbPassword"])){
                                                                        
                                                        #則設定連線的密碼
                                                        $conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                        
                                                        }#if end
                                                        
                                                #如果有設定 $conf["dbPort"]        
                                                if(isset($conf["dbPort"])){
                                                
                                                        #設定 $conf["dbPort"]
                                                        $conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
                                                
                                                        }#if end        
                                                                                        
                                                $setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
                                                unset($conf["db"]["setColumnIndex"]);
                                        
                                                #取得執行的sql字串.
                                                $result["sql"][]=$setColumnIndexResult["sql"];
                                        
                                                #如果 $setColumnIndexResult["status"] 為 "fasle"
                                                if($setColumnIndexResult["status"]=="fasle"){
                                                        
                                                        #設置出錯的識別
                                                        $result["status"]="false";
                                                                
                                                        #設置錯誤訊息
                                                        $result["error"]=$setColumnIndexResult;
                                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end
                                                
                                                }#if end
                                        
                                        #中斷switch
                                        break;
                                        
                                #如果是 foreign key
                                case "foreign key":
                                
                                        #echo "enter foreign key";
                                
                                        #檢查該欄位是否為foreign key
                                        #如果 $tableColumnDetial["foreignKey"]["exist"] 等於 "true",代表有外鍵
                                        if($tableColumnDetial["foreignKey"]["exist"]=="true"){
                                                
                                                #echo "have foreig key";
                                                
                                                #如果 $tableColumnDetial["foreignKey"]["columnName"][$conf["dbInformation"]["newColumnName"]] 存在,則代表該欄位為索引鍵
                                                if(isset($tableColumnDetial["foreignKey"]["columnName"][$conf["newColumnName"]])){
                                                
                                                        #移除外鍵
                                                        #函式說明:
                                                        #移除資料表單1欄位的外鍵
                                                        #回傳結果:
                                                        #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                        #$result["error"],錯誤訊息陣列
                                                        #必填參數:
                                                        $conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                        $conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                        $conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                        $conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableColumnDetial["foreignKey"]["constraintName"][$conf["newColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
                                                        #可省略參數: 
                                                        
                                                        #如果 $conf["dbPassword"] 存在
                                                        if(isset($conf["dbPassword"])){
                                                                
                                                                #則設定連線的密碼
                                                                $conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                
                                                                }#if end
                                                        
                                                        #如果有設定 $conf["dbPort"]        
                                                        if(isset($conf["dbPort"])){
                                                        
                                                                #設定 $conf["dbPort"]
                                                                $conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
                                                        
                                                                }#if end
                                                                                                                
                                                        $eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
                                                        unset($conf["db"]["eraseForeignKey"]);
                                                
                                                        #取得執行的sql字串
                                                        $result["sql"][]=$eraseForeignKeyResult["sql"];
                                                
                                                        #如果 $eraseForeignKeyResult["status"]等於"fasle"
                                                        if($eraseForeignKeyResult["status"]=="false"){
                                                                
                                                                #設置出錯的識別
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$eraseForeignKeyResult;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                
                                                        }#if end
                                                
                                                }#if end
                                
                                        #檢查該欄位是否為index
                                        #如果 $tableColumnDetial["key"]["exist"] 等於 "false",代表沒有索引鍵
                                        if($tableColumnDetial["key"]["exist"]=="false"){
                                
                                                #echo "have no index";
                                
                                                #建立索引鍵
                                                #函式說明:
                                                #新增資料表的欄位
                                                #回傳結果:
                                                #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                #$result["error"],錯誤訊息陣列
                                                #必填參數:
                                                $conf["db"]["setColumnIndex"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                $conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                $conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                $conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                $conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
                                                #可省略參數:
                                                
                                                #如果 $conf["dbPassword"] 存在
                                                if(isset($conf["dbPassword"])){
                                                                        
                                                        #則設定連線的密碼
                                                        $conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                        
                                                        }#if end
                                                        
                                                #如果有設定 $conf["dbPort"]        
                                                if(isset($conf["dbPort"])){
                                                
                                                        #設定 $conf["dbPort"]
                                                        $conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
                                                
                                                        }#if end        
                                                                                        
                                                $setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
                                                unset($conf["db"]["setColumnIndex"]);
                                        
                                                #取得執行的sql字串
                                                $result["sql"][]=$setColumnIndexResult["sql"];
                                        
                                                #如果 $setColumnIndexResult["status"] 為 "false"
                                                if($setColumnIndexResult["status"]=="false"){
                                                        
                                                        #設置出錯的識別
                                                        $result["status"]="false";
                                                                
                                                        #設置錯誤訊息
                                                        $result["error"]=$setColumnIndexResult;
                                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end
                                                
                                                }#if end
                                        
                                        #反之有索引鍵     
                                        #如果目標欄位不是索引鍵
                                        else if(!isset($tableColumnDetial["key"][$conf["newColumnName"]])){
                                                
                                                #建立索引鍵
                                                #函式說明:
                                                #新增資料表的欄位
                                                #回傳結果:
                                                #$result["status"],"true",代表執行成功;"false"代表執行失敗
                                                #$result["error"],錯誤訊息陣列
                                                #必填參數:
                                                $conf["db"]["setColumnIndex"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                                $conf["db"]["setColumnIndex"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                                $conf["db"]["setColumnIndex"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                                                $conf["db"]["setColumnIndex"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                                                $conf["db"]["setColumnIndex"]["indexedColumnName"]=$conf["newColumnName"];#要設爲index的欄位名稱
                                                #可省略參數:
                                                
                                                #如果 $conf["dbPassword"] 存在
                                                if(isset($conf["dbPassword"])){
                                                                        
                                                        #則設定連線的密碼
                                                        $conf["db"]["setColumnIndex"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                        
                                                        }#if end
                                                                
                                                #如果有設定 $conf["dbPort"]        
                                                if(isset($conf["dbPort"])){
                                                
                                                        #設定 $conf["dbPort"]
                                                        $conf["db"]["setColumnIndex"]["dbPort"]=$conf["dbPort"];
                                                
                                                        }#if end                        
                                                                                        
                                                $setColumnIndexResult=db::setColumnIndex($conf["db"]["setColumnIndex"]);
                                                unset($conf["db"]["setColumnIndex"]);
                                        
                                                #取得執行的sql字串
                                                $result["sql"][]=$setColumnIndexResult["sql"];
                                        
                                                #如果 $setColumnIndexResult["status"] 為 "false"
                                                if($setColumnIndexResult["status"]=="false"){
                                                        
                                                        #設置出錯的識別
                                                        $result["status"]="false";
                                                                
                                                        #設置錯誤訊息
                                                        $result["error"]=$setColumnIndexResult;
                                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end                                        
                                                
                                                }#else end
                                                
                                        #檢查該欄位的foreign key設定參數是否存在
                                        #函式說明:
                                        #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                                        #回傳結果:
                                        #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                                        #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                                        #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                                        #必填參數:
                                        $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                                        $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("foreignKeyReferenceTable","foreignKeyReferenceColumn");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                                        #可省略參數:
                                        #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                                        #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                                        $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                                        unset($conf["variableCheck"]["isexistMuti"]);
                                        
                                        #如果檢查失敗
                                        if($checkResult["status"]=="false"){
                                                
                                                #設置執行失敗的訊息
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$checkResult;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #如果檢查不通過
                                        if($checkResult["passed"]=="false"){
                                                
                                                #設置執行失敗的訊息
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$checkResult;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #如果 $conf["foreignKeyUpdateAction"] 不存在
                                        if(!isset($conf["foreignKeyUpdateAction"])){
                                                
                                                #則預設為"CASCADE"將有所關聯的紀錄行也會進行刪除或修改。
                                                $conf["foreignKeyUpdateAction"]="CASCADE";#若要設定foreign key的話,可以指定參考的資料表欄位更新時該欄位該怎麼處理,預設為"CASCADE",會將有所關聯的紀錄行也會進行刪除或修改。"SET NULL"代表會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
                                                
                                                }#if end
                                        
                                        #如果 $conf["foreignKeyDeleteAction"] 沒有設定
                                        if(!isset($conf["foreignKeyDeleteAction"])){
                                                
                                                #預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。
                                                $conf["foreignKeyDeleteAction"]="SET NULL";#若要設定foreign key的話,可以指定參考的資料表欄位移除時該欄位該怎麼處理,預設為"SET NULL",會將有所關聯的紀錄行設定成 NULL。"NO ACTION"代表有存在的關聯紀錄行時,會禁止父資料表的刪除或修改動作。
                                                
                                                }#if end
                                        
                                        #檢查目標欄位的 key constraint 名稱
                                        #取得其key為何種
                                        #函式說明:
                                        #取得資料表所有欄位的詳細資訊
                                        #回傳的內容:
                                        #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                                        #$result["error"],錯誤訊息陣列
                                        #$result["sql"],執行的sql語法
                                        #$result["oriInput"],原始的資料表欄位資訊
                                        #$result["everyLine"],逐行的欄位資訊
                                        #$result["tableName"],當前查詢的資料表名稱
                                        #$result["engine"],資料表使用的儲存引擎
                                        #$result["charset"],資料表預設的編碼
                                        #$result["columnName"][$i],各欄位的名稱陣列,$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnNotNull"][$i],各欄位是否可以不爲null,"true"爲可以不爲null;"false"爲可以爲"null",$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["columnCollate"][$i],各欄位使用的Collate,$i爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                                        #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["primaryKey"],該資料表的主鍵
                                        #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                                        #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                                        #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列
                                        #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲0開始的數字
                                        #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲0開始的數字
                                        #$result["foreignKey"]["OnUpdateAction"][$l],當參照的欄位資料更新時,會怎麼同步,$l爲0開始的數字
                                        #$result["foreignKey"]["OnDeleteAction"][$m],當參照的欄位資料移除時,會怎麼同步,$m爲0開始的數字
                                        #必填參數:
                                        $conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];
                                        $conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];
                                        $conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];
                                        $conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];
                                        #可省略參數:
                                        
                                        #如果 $conf["dbPassword"] 有設定
                                        if(isset($conf["dbPassword"])){
                                                
                                                #套用連限時的密碼
                                                $conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];
                                                
                                                }#if end
                                                                
                                        #如果有設定 $conf["dbPort"]        
                                        if(isset($conf["dbPort"])){
                                        
                                                #設定 $conf["dbPort"]
                                                $conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
                                        
                                                }#if end                        
                                                                
                                        $tableColumnDetial=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
                                        unset($conf["db"]["getTableColumnDetailInfo"]);#卸除變數,避免錯誤產生.
                                                
                                        #如果取得資料表結構失敗
                                        if($tableColumnDetial["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置執行錯誤訊息
                                                $result["error"]=$tableColumnDetial;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end        
                                        
                                        #依據設定將該欄位設定為foreign key
                                        
                                        #設定其參照的資料表與欄位的sql語法
                                        $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"];
                                                                                                                                        
                                        #執行 sql 語法
                                        #函式說明:
                                        #執行mysql指令
                                        #回傳結果::
                                        #$result["status"],"true"為執行成功;"false"為執行失敗。
                                        #$result["error"],錯誤訊息的陣列
                                        #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                                        #$result["queryString"],mysql查詢的語言
                                        #查詢號的解果,需要解析。
                                        #必填參數:
                                        $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                                        $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                                        $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                                        #可省略參數: 
                                        
                                        #如果有設定連線密碼
                                        if(isset($conf["dbPassword"])){
                                                
                                                $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                
                                                }#if end
                                                                                        
                                        #$conf["db"]["execMysqlQuery"]["dbName"]=$conf["selectedDataBaseName"];#為是否要指定資料庫,預設不指定.
                                        
                                        #如果有設定 $conf["dbPort"]        
                                        if(isset($conf["dbPort"])){
                                        
                                                #設定 $conf["dbPort"]
                                                $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                                        
                                                }#if end        
                                        
                                        $sqlExecResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                                        unset($conf["db"]["execMysqlQuery"]);
                                        
                                        #var_dump($sqlExecResult);
                                        
                                        #取得執行的sql語法
                                        $result["sql"][]=$sqlExecResult["queryString"];
                                        
                                        #如果執行 sql 語法錯誤
                                        if($sqlExecResult["status"]=="false"){
                                                
                                                #echo "fasle";
                                                
                                                #設定執行失敗的識別
                                                $result["status"]="false";
                                                
                                                #設定錯誤訊息
                                                $result["error"]=$sqlExecResult;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end                                        
                                                                
                                        #跳出 foreign key
                                        break;
                                                                
                                #如果不是以上參數
                                default:
                                                        
                                        #設定執行錯誤的識別
                                        $result["status"]="false";
                                                                
                                        #設定錯誤訊息
                                        $result["error"]="可用的鍵型為index、foregin key、primary key";
                                                                
                                        #回傳結果
                                        return $result;
                                        
                                }#switch end
                                                                                
                        }#if end
                        
                #執行到這邊代表執行成功
                #設定執行成功的識別
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function editColumn end

        /*
        #函式說明:
        #新增資料表的欄位
        #回傳結果:
        #$result["status"],"true",代表執行成功;"false"代表執行失敗.
        #$result["function"],當前執行的函數名稱.
        #$result["error"],錯誤訊息陣列.
        #$result["warning"],警告訊息.
        #$result["sql"],執行的sql字串.
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        $conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataBaseName"]="";
        $conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataTableName"]="";
        $conf["indexedColumnName"],字串,要設爲index的欄位名稱.
        $conf["indexedColumnName"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function setColumnIndex($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","indexedColumnName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #查詢該欄位是否已經是index了
                #函式說明:
                #取得資料表所有欄位的詳細資訊
                #回傳的內容:
                #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                #$result["error"],錯誤訊息陣列
                #$result["function"],當前執行的函數名稱.
                #$result["sql"],執行的sql語法
                #$result["oriInput"],原始的資料表欄位資訊
                #$result["everyLine"],逐行的欄位資訊
                #$result["tableName"],當前查詢的資料表名稱
                #$result["engine"],資料表使用的儲存引擎
                #$result["charset"],資料表預設的編碼
                #$result["columnName"][$i],各欄位的名稱陣列,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲1開始的數字,也可以使用欄位的名稱.
                #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲1開始的數字,也可以使用欄位的名稱.
                #$result["columnNotNull"][$i],各欄位是否不可爲null,"true"爲不可以爲null;"false"爲可爲"null",$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnCollate"][$i],各欄位使用的Collate,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲1開始的數字,也可以使用欄位的名稱。
                #$result["primaryKey"],該資料表的主鍵
                #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲1開始的數字,,也可用欄位的名稱來找value.
                #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲1開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
                #必填參數:
                $conf["db::getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
                $conf["db::getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
                $conf["db::getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
                $conf["db::getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        #設定其密碼
                        $conf["db::getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db::getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                #備註:
                #如果forign key參照的是別的資料庫,將無法取得參照的資料庫名稱?
                $getTableColumnDetailInfo=db::getTableColumnDetailInfo($conf["db::getTableColumnDetailInfo"]);
                unset($conf["db::getTableColumnDetailInfo"]);   
                        
                #如果取得資料表資訊失敗
                if($getTableColumnDetailInfo["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$getTableColumnDetailInfo;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end        
                        
                #如果該欄位已經是index了
                if(isset($getTableColumnDetailInfo["key"][$conf["indexedColumnName"]])){
                        
                        #設置執行正常
                        $result["status"]="true";
                        
                        #設置警告提示
                        $result["warning"][]="已經是index key了";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #組合sql語言
                $sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." add index(`".$conf["indexedColumnName"]."`)";
                
                #執行sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        #設定其密碼
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                                        
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #取得執行的sql語法
                $result["sql"]=$queryResult["queryString"];
                
                #如果有錯誤
                if($queryResult["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #執行到這邊代表執行成功
                
                #設置成功訊息
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function setColumnIndex end

        /*
        #函式說明:
        #取得資料表所有欄位的詳細資訊
        #回傳的內容:
        #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
        #$result["error"],錯誤訊息陣列
        #$result["function"],當前執行的函數名稱.
        #$result["sql"],執行的sql語法
        #$result["oriInput"],原始的資料表欄位資訊
        #$result["everyLine"],逐行的欄位資訊
        #$result["tableName"],當前查詢的資料表名稱
        #$result["engine"],資料表使用的儲存引擎
        #$result["charset"],資料表預設的編碼
        #$result["columnName"][$i],各欄位的名稱陣列,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲1開始的數字,也可以使用欄位的名稱.
        #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲1開始的數字,也可以使用欄位的名稱.
        #$result["columnNotNull"][$i],各欄位是否不可爲null,"true"爲不可以爲null;"false"爲可爲"null",$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnCollate"][$i],各欄位使用的Collate,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnComment"][$i],各欄位的註解,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
        #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
        #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲1開始的數字,也可以使用欄位的名稱。
        #$result["primaryKey"],該資料表的主鍵
        #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
        #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
        #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
        #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲1開始的數字,,也可用欄位的名稱來找value.
        #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲1開始的數字,也可用欄位的名稱來找value.
        #$result["foreignKey"]["onUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
        #$result["foreignKey"]["onDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
        #必填參數:
        #$conf["dbAddress"],字串,資料庫的網路位置
        $conf["dbAddress"]="";
        #$conf["dbAccount"],字串,連線到資料庫要用的帳號
        $conf["dbAccount"]="";連線到資料庫要用的帳號
        #$conf["selectedDataBase"]字串,連線到資料庫要選擇的資料庫
        $conf["selectedDataBase"]=$dbName;
        #$conf["selectedDataTable"],字串,連線到資料庫要檢視的資料表
        $conf["selectedDataTable"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,連線到資料庫要用的密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #如果forign key參照的是別的資料庫,將無法取得參照的資料庫名稱?
        */
        public static function getTableColumnDetailInfo(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數設定是否正確
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBase","selectedDataTable");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkArguments["passed"]==="false"){
                        
                        #設置執行失敗識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息陣列
                        $result["error"]=$checkArguments;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkArguments["passed"]==="false"){
                        
                        #設置執行失敗識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息陣列
                        $result["error"]=$checkArguments;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查資料庫 $conf["selectedDataBase"] 是否可以存取
                #確認資料庫存在或可以被存取
                #函式說明:
                #執行mysql指令
                #回傳結果:
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["function"],當前執行的涵式
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryConn"],mysql用來查尋的連資源.
                #$result["queryString"],要執行的sql內容.
                #必填參數:
                #$conf["dbSql"],字串,要執行sql語法
                $conf["db::execMysqlQuery"]["dbSql"]="show databases;";
                #可省略參數:
                #$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
                #$conf["db::execMysqlQuery"]["dbLink"]=$conf["connectInformation"];
                #$conf["dbAddress"],字串,爲mysql-Server的位置。
                $conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];
                #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
                $conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"]; 
                
                #如果存在 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                
                        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        $conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];
                        
                        }#if end
                        
                #$conf["dbName"],字串,爲要連的資料庫名稱
                #$conf["dbName"]="";
                
                #如果存在 $dbPort
                if(isset($conf["dbPort"])){
                
                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                        $conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                #$conf["autoClose"],字串,"true"代表要自動斷線,預設為"true"會自動斷線
                #$conf["autoClose"]="true";
                #參考資料:
                #無.
                #備註:
                #無.
                $execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
                unset($conf["db::execMysqlQuery"]);

                #如果執行失敗
                if($execMysqlQuery["status"]==="false"){
                
                        #設置連線失敗的提示
                        $result["error"][]="檢查資料庫可否存取出錯";
                        
                        #設置錯誤訊息
                        $result["error"][]=$execMysqlQuery["error"];
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #解析 $execMysqlQuery["queryResource"] 看是否存在要存取的資料庫
                #函式說明:
                #解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為失敗
                #$result["error"],錯誤訊息
                #$result["function"],儲存當前函數名稱
                #$result["dataColumnName"],為資料欄位的名稱陣列.
                #$result["dataColumnName"][$i]代表第一個欄位名稱.
                #$result["dataContent"],爲資料的內容陣列,第1維度的key為$conf["tableValueName"][$i],亦即第 $i+1 個欄位的名稱,若該欄位不存在,則其value為空字串;第2維度的key為第$i+1筆資料的索引.
                #$result["dataCount"],爲取得的資料筆數.
                #必填參數:
                #$conf["sqlQueryResult"],object,爲執行sql語法所獲得的查詢結果。
                $conf["db::sendQueryDataToVariabele"]["sqlQueryResult"]=$execMysqlQuery["queryResource"];
                #$conf["tableValueName"],字串陣列,爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
                $conf["db::sendQueryDataToVariabele"]["tableValueName"]=array("Database");
                #可省略參數:
                #$conf["dbAddress"],字串,爲mysql-Server的位置,目前沒有用途.
                #$conf["dbAddress"]=$dbAddress;
                #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號,目前沒有用途.
                #$conf["dbAccount"]=$dbAccount;
                #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼,目前沒有用途.
                #$conf["dbPassword"]=$dbPassword;
                #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port,目前沒有用途.
                #$conf["dbPort"]="";
                #$conf["valueName"],字串陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
                #$conf["valueName"]=$conf["tableValueName"];
                #參考資料:
                #http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
                #備註:
                #無.
                $sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db::sendQueryDataToVariabele"]);
                unset($conf["db::sendQueryDataToVariabele"]);

                #如果執行異常
                if($sendQueryDataToVariabele["status"]==="false"){
                
                        #設置連線失敗的提示
                        $result["error"][]="檢查資料庫可否存取出錯";
                        
                        #設置錯誤訊息
                        $result["error"][]=$sendQueryDataToVariabele["error"];
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #檢查資料庫是否可以存取
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同,找到一個相符合的元素後就會停止搜尋.
                #回傳結果:
                #$result["status"],"true"表示執行正確,"false"表示執行錯誤.
                #$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
                #$result["error"],錯誤訊息
                #$result["function"],當前執行的函數名稱
                #$result["argv"],使用的參數
                #$result["equalVarName"],相等的變數名稱或key.
                #$result["equalVarValue"],相等的變數數值內容.
                #必填參數:
                #$conf["conditionElement"],字串,條件元素,要等於的元素內容.
                $conf["search::getEqualVar"]["conditionElement"]=$conf["selectedDataBase"];
                #$conf["compareElements"],字串陣列,要比對的陣列變數內容.
                $conf["search::getEqualVar"]["compareElements"]=$sendQueryDataToVariabele["dataContent"]["Database"];
                #可省略參數:
                #無.
                #參考資料:
                #無.
                #備註:
                #無.
                $getEqualVar=search::getEqualVar($conf["search::getEqualVar"]);
                unset($conf["search::getEqualVar"]);
                
                #如果執行失敗
                if($getEqualVar["status"]==="false"){
                
                        #設置錯誤的提示
                        $result["error"][]="檢查資料庫可否存取出錯";
                        
                        #設置錯誤訊息
                        $result["error"][]=$getEqualVar["error"];
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                        
                #如果無法存取資料庫
                if($getEqualVar["founded"]==="false"){
                
                        #設置錯誤的提示
                        $result["error"][]="資料庫(".$conf["selectedDataBase"].")無法存取";
                        
                        #設置錯誤訊息
                        $result["error"][]=$getEqualVar;
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                
                #設置要執行的sql語法
                $sql="SHOW CREATE TABLE ".$conf["selectedDataBase"].".".$conf["selectedDataTable"].";";
                
                #執行sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果:
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        #設定其密碼
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                
                #如果有設定 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #如果有錯誤
                if($queryResult["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #解析mysql resource
                
                #初始化暫存的變數
                $temp="";
                
                #將讀取到的資料一次只讀取一列
                while($row = mysqli_fetch_array($queryResult["queryResource"])){

                        #$i筆項列資料,則運行$i次。
                        foreach($row as $key=>$value){          
                                
                                #如果key爲"Create Table"
                                if($key=="Create Table"){
                                
                                        #將解析的資料內容結果放進$temp變數裏面
                                        $temp=$value;   
                                        
                                        }#if end
                                                                                                                
                                }#foreach end

                        }#while end
                
                #逐行解析$temp
                #函式說明:
                #將多行內容的字串,依行切割
                #回傳的參數:
                #$result["status"],執行成功與否,若爲"true",代表執行成功,若爲"false"代表執失敗。
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函數名稱.#$result["oriStr"],要分割的原始字串內容
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲以行分割好的字串陣列內容,$result["dataArray"][$i]爲第($i+1)行的內容。
                #$result["dataCounts"],爲總共分成幾行
                #必填參數:
                $conf["stringProcess"]["spiltMutiLineString"]["stringIn"]=$temp;#要處理的多行文字字串。
                #參考資料來源:
                #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 換行字元
                $everyLine=stringProcess::spiltMutiLineString($conf["stringProcess"]["spiltMutiLineString"]);
                unset($conf["stringProcess"]["spiltMutiLineString"]);
                
                #如果 逐行解析$temp 失敗
                if($everyLine["status"]==="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$everyLine;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #針對每列內容
                foreach($everyLine["dataArray"] as $no => $line){

                        #函式說明:
                        #取得符合特定字首與字尾的字串
                        #回傳結果::
                        #$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
                        #$result["function"],當前執行的函數名稱.
                        #$result["error"],錯誤訊息陣列.
                        #$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
                        #$result["returnString"],爲符合字首條件的字串內容。
                        #$result["argu"],使用的參數.
                        #必填參數:
                        #$conf["checkString"],字串,要檢查的字串.
                        $conf["search::getMeetConditionsString"]["checkString"]=$line;
                        #可省略參數:
                        #$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
                        $conf["search::getMeetConditionsString"]["frontWord"]="/*";
                        #$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
                        #$conf["tailWord"]="";
                        #參考資料:
                        #str_spilt(),可以將字串依照字母分割成一個個陣列字串。
                        $getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
                        unset($conf["search::getMeetConditionsString"]);                        

                        #如果執行失敗
                        if($getMeetConditionsString["status"]==="false"){

                                #設置錯誤訊息
                                $result["status"]="false";
                                
                                #設置錯誤提示
                                $result["error"]=$getMeetConditionsString;
                                
                                #回傳結果
                                return $result;

                                }#if end

                        #如果執行失敗
                        if($getMeetConditionsString["founded"]==="true"){

                                #while loop
                                while(true){

                                        #移除 partion 描述 - start 

                                        #如果存在該列
                                        if(isset($everyLine["dataArray"][$no])){

                                                #卸除之
                                                unset($everyLine["dataArray"][$no]);

                                                #行數加1
                                                $no++;

                                                }#if end

                                        #移除 partion 描述 - end

                                        #反之
                                        else{

                                                //end while
                                                break;

                                                }#else end                                              

                                        }#while loop end

                                #end foreach
                                break;

                                }#if end

                        }#foreach end
                
                #重新更新總行數
                $everyLine["dataCounts"]=count($everyLine["dataArray"]);

                #取得原始輸入的多行字串
                $result["oriInput"]=$everyLine["oriStr"];
                
                #取得原始的每一行
                $result["everyLine"]=$everyLine["dataArray"];
                
                #取得資料表名稱
                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][0];#要處理的字串。
                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
                $tableName=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                unset($conf["stringProcess"]["spiltString"]);
                
                #如果 取得資料表名稱 失敗
                if($tableName["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$tableName;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得資料表名稱
                $result["tableName"]=$tableName["dataArray"][1];
                
                #取得資料表用的 ENGINE 與 DEFAULT CHARSET",亦即最後一行的內容.
                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$everyLine["dataCounts"]-1];#要處理的字串。
                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                $engineAndCharset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                unset($conf["stringProcess"]["spiltString"]);
                
                #如果 取得資料表用的 ENGINE與DEFAULT CHARSET" 失敗
                if($engineAndCharset["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$engineAndCharset;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #get engine string
                $engine=$engineAndCharset["dataArray"][1];
                
                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess"]["spiltString"]["stringIn"]=$engine;#要處理的字串。
                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="=";#爲以哪個符號作爲分割
                $engine=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                unset($conf["stringProcess"]["spiltString"]);
                
                #如果 取得資料表用的 ENGINE與DEFAULT CHARSET" 失敗
                if($engine["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$engine;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果不存在 engine
                if(!isset($engine["dataArray"][1])){

                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$engine;

                        return $result;

                        }#if end

                #get engine
                $result["engine"]=$engine["dataArray"][1];
                
                #取得字元編碼
                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess"]["spiltString"]["stringIn"]=$engineAndCharset["oriStr"];#要處理的字串。
                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="CHARSET=";#爲以哪個符號作爲分割
                $charset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                unset($conf["stringProcess"]["spiltString"]);
                
                #如果 取得字元編碼 失敗
                if($charset["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$charset;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得字元編碼
                #函式說明:
                #將固定格式的字串分開,並回傳分開的結果。
                #回傳的參數:
                #$result["oriStr"],要分割的原始字串內容
                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                #$result["dataCounts"],爲總共分成幾段
                #必填參數:
                $conf["stringProcess"]["spiltString"]["stringIn"]=$charset["dataArray"][1];#要處理的字串。
                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                $charset=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                unset($conf["stringProcess"]["spiltString"]);
                
                #如果 取得字元編碼 失敗
                if($charset["status"]=="false"){
                        
                        #設置錯誤訊息
                        $result["status"]="false";
                        
                        #設置錯誤提示
                        $result["error"]=$charset;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得字元編碼
                $result["charset"]=$charset["dataArray"][0];
                
                #初始化,儲存鍵值定義的陣列變數
                $keyDefine=array();
                
                #逐行取得各欄位詳細資料
                for($i=1;$i<$everyLine["dataCounts"]-1;$i++){
                                
                        #檢查開頭是否爲 "  `"
                        #函式說明:
                        #取得符合特定字首與字尾的字串
                        #回傳結果::
                        #$result["status"],若爲"true"則代表執行正常;若爲"false"則代表執行失敗。
                        #$result["function"],當前執行的函數名稱.
                        #$result["error"],錯誤訊息陣列.
                        #$result["founded"],若為"true"則代表有找到符合字首條件的結果;若爲"false"則代表沒有找到。
                        #$result["returnString"],爲符合字首條件的字串內容。
                        #必填參數:
                        #$conf["checkString"],字串,要檢查的字串.
                        $conf["search::getMeetConditionsString"]["checkString"]=$everyLine["dataArray"][$i];
                        #可省略參數:
                        #$conf["frontWord"],字串,用來檢查字首應該要有什麼字串,預設不指定.
                        $conf["search::getMeetConditionsString"]["frontWord"]="  `";
                        #$conf["tailWord"],字串,用來檢查字尾應該要有什麼字串,預設不指定.
                        #$conf["tailWord"]="";
                        #參考資料:
                        #str_spilt(),可以將字串依照字母分割成一個個陣列字串。
                        $getMeetConditionsString=search::getMeetConditionsString($conf["search::getMeetConditionsString"]);
                        unset($conf["search::getMeetConditionsString"]);
                
                        #如果分割失敗
                        if($getMeetConditionsString["status"]==="false"){

                                #設置錯誤訊息
                                $result["status"]="false";
                                
                                #設置錯誤提示
                                $result["error"]=$getMeetConditionsString;
                                
                                #回傳結果
                                return $result;

                                }#if end
        
                        #如果有符合的前戳
                        if($getMeetConditionsString["founded"]==="true"){
                        
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
                                $columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);

                                #如果 分割字串失敗 失敗
                                if($columnString["status"]==="false"){
                                
                                        #設置錯誤訊息
                                        $result["status"]="false";
                                
                                        #設置錯誤提示
                                        $result["error"]=$columnString;
                                
                                        #回傳結果
                                        return $result;
                                
                                        }#if end

                                #取得欄位名稱
                                $result["columnName"][$i]=$columnString["dataArray"][1];
                                $result["columnName"][$result["columnName"][$i]]=$result["columnName"][$i];

                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$columnString["dataArray"][2];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                $columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);

                                #debug
                                #var_dump($columnString);

                                #如果 分割字串失敗 失敗
                                if($columnString["status"]==="false"){
                                
                                        #設置錯誤訊息
                                        $result["status"]="false";
                                
                                        #設置錯誤提示
                                        $result["error"]=$columnString;
                                
                                        #回傳結果
                                        return $result;
                                
                                        }#if end
                
                                #取得欄位屬性與長度
                                $result["columnVarTypeAndLengthLimit"][$i]=$columnString["dataArray"][0];
                                $result["columnVarTypeAndLengthLimit"][$result["columnName"][$i]]=$columnString["dataArray"][0];
                
                                }#if end
        
                        #函式說明:
                        #將固定格式的字串分開,並回傳分開的結果。
                        #回傳的參數:
                        #$result["oriStr"],要分割的原始字串內容
                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                        #$result["dataCounts"],爲總共分成幾段
                        #必填參數:
                        $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                        $columnString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                        unset($conf["stringProcess"]["spiltString"]);   

                        #如果 分割字串失敗 失敗
                        if($columnString["status"]=="false"){
                                
                                #設置錯誤訊息
                                $result["status"]="false";
                                
                                #設置錯誤提示
                                $result["error"]=$columnString;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end

                        #如果分割字串失敗
                        if($columnString["status"]==="false"){
                                
                                #設置執行失敗
                                $reuslt["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$columnString;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #debug
                        #var_dump($columnString);
                                                
                        #判斷該 $columnString["dataArray"][2]是一般名稱,還是鍵值定義。
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="`";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$columnString["dataArray"][2];#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]["findKeyWord"]);
                        
                        #如果尋找失敗
                        if($searchResult["status"]==="false"){
                                
                                #設置執行失敗
                                $reuslt["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$columnString;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #如果有找到,且沒有長度與形態資訊
                        if($searchResult["founded"]==="true" && !isset($result["columnVarTypeAndLengthLimit"][$i]) ){
                                
                                #代表是屬於鍵值的定義
                                $keyDefine[]=$everyLine["dataArray"][$i];
                        
                                #var_dump($keyDefine);
                        
                                #跳過該行內容
                                continue;
                                                                        
                                }#if end
                        
                        #判斷該 $columnString["dataArray"][0]是否為 "CONSTRAINT" 或 "KEY"
                        if($columnString["dataArray"][0]==="CONSTRAINT" || $columnString["dataArray"][0]==="KEY"){
                                
                                #代表是屬於定義 外鍵 的 CONSTRAINT 定義
                                $keyDefine[]=$everyLine["dataArray"][$i];
                        
                                #跳過該行內容
                                continue;
                                                                        
                                }#if end
                        
                        #函式說明:
                        #處理字串避免網頁出錯
                        #回傳結果::
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["function"],當前執行的函數.
                        #$result["content"],爲處理好的字串.
                        #$result["error"],錯誤訊息陣列.
                        #必填參數:
                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$columnString["dataArray"][0];#爲要處理的字串
                        #可省略參數:
                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
                        #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                        $correctCharacterResult=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                        unset($conf["stringProcess"]);

                        #如果處理字串失敗
                        if($correctCharacterResult["status"]==="false"){
                                
                                #設置執行失敗
                                $reuslt["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$correctCharacterResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #如果不是 "CONSTRAINT" 且 存在 $result["columnVarTypeAndLengthLimit"][$i]
                        if($correctCharacterResult["content"]!=="CONSTRAINT" && isset($result["columnVarTypeAndLengthLimit"][$i])){
                                
                                #取得欄位名稱,遇到有空格的欄位名稱會出錯
                                #$result["columnName"][$i]=$correctCharacterResult["content"];
                                #$result["columnName"][$correctCharacterResult["content"]]=$correctCharacterResult["content"];
                        
                                #取得欄位變數形態與長度限制,遇到有空格的欄位名稱會出錯
                                #$result["columnVarTypeAndLengthLimit"][$i]=$columnString["dataArray"][1];
                                #$result["columnVarTypeAndLengthLimit"][$result["columnName"][$i]]=$columnString["dataArray"][1];
                                
                                #檢查是否有欄位的長度限制關鍵字 "(" ")"
                                #函式說明:
                                #檢查一個字串裡面是否有多個關鍵字
                                #回傳結果::
                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                #$result["error"],錯誤訊息
                                #$result["founded"],是否找到所有的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                #必填參數:
                                $conf["search"]["findManyKeyWords"]["keyWords"]=array("(",")");#想要搜尋的關鍵字
                                $conf["search"]["findManyKeyWords"]["string"]=$result["columnVarTypeAndLengthLimit"][$i];#要被搜尋的字串內容
                                #可省略參數:
                                #$conf["search"]["findManyKeyWords"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                $lengthLimitKeyWordSearchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
                                unset($conf["search"]["findManyKeyWords"]);
                                
                                #如果  檢查是否有欄位的長度限制關鍵字 "(" ")" 失敗
                                if($lengthLimitKeyWordSearchResult["status"]==="false"){
                                
                                        #設置執行失敗
                                        $reuslt["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$lengthLimitKeyWordSearchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果 $lengthLimitKeyWordSearchResult["founded"] 等於 "true"
                                if($lengthLimitKeyWordSearchResult["foundedAll"]==="true"){
                                        
                                        #代表有長度限制的字串
                                        
                                        #以"("為關鍵字進行分割
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$result["columnVarTypeAndLengthLimit"][$i];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]="(";#爲以哪個符號作爲分割
                                        $columnTypeAndLengthLimitSpiledStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($columnTypeAndLengthLimitSpiledStr["status"]==="false"){
                                                
                                                #設置執行失敗
                                                $reuslt["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$columnTypeAndLengthLimitSpiledStr;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #取得欄位變數型別
                                        $result["columnVarType"][$i]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
                                        $result["columnVarType"][$result["columnName"][$i]]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
                                        
                                        #以")"為關鍵字進行分割
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$columnTypeAndLengthLimitSpiledStr["dataArray"][1];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=")";#爲以哪個符號作爲分割
                                        $columnTypeAndLengthLimitSpiledStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($columnTypeAndLengthLimitSpiledStr["status"]==="false"){
                                                
                                                #設置執行失敗
                                                $reuslt["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$columnTypeAndLengthLimitSpiledStr;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #取得欄位的長度限制
                                        $result["columnVarLengthLimit"][$i]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
                                        $result["columnVarLengthLimit"][$result["columnName"][$i]]=$columnTypeAndLengthLimitSpiledStr["dataArray"][0];
                                        
                                        }#if end
                                
                                #反之代表沒有長度限制的字串
                                else{
                                        
                                        #取得欄位變數型別
                                        $result["columnVarType"][$i]=$result["columnVarTypeAndLengthLimit"][$i];
                                        $result["columnVarType"][$result["columnName"][$i]]=$result["columnVarTypeAndLengthLimit"][$i];
                                        
                                        #取得欄位變數長度限制
                                        $result["columnVarLengthLimit"][$i]="";
                                        $result["columnVarLengthLimit"][$result["columnName"][$i]]="";
        
                                        }#else
                                
                                #欄位是否不可為null
                                #函式說明:
                                #檢查字串裡面有無指定的關鍵字
                                #回傳結果::
                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                #$result["error"],錯誤訊息
                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                #必填參數:
                                $conf["search"]["findKeyWord"]["keyWord"]="NOT NULL";#想要搜尋的關鍵字
                                $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                                #可省略參數:
                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                unset($conf["search"]["findKeyWord"]);
                                
                                #如果取得 欄位是否不可為null 失敗
                                if($searchResult["status"]==="false"){
                                        
                                        #設置執行失敗
                                        $reuslt["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果有找到 NOT NULL
                                if($searchResult["founded"]==="true"){
                                        
                                        $result["columnNotNull"][$i]="true";
                                        $result["columnNotNull"][$result["columnName"][$i]]="true";
                                        
                                        }#if end
                                        
                                #反之沒有找到 NOT NULL
                                else{
                                
                                        $result["columnNotNull"][$i]="false";
                                        $result["columnNotNull"][$result["columnName"][$i]]="false";
                                        
                                        }#else end
                                        
                                #欄位是否會自動加1
                                #函式說明:
                                #檢查字串裡面有無指定的關鍵字
                                #回傳結果::
                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                #$result["error"],錯誤訊息
                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                #必填參數:
                                $conf["search"]["findKeyWord"]["keyWord"]="AUTO_INCREMENT";#想要搜尋的關鍵字
                                $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                                #可省略參數:
                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                unset($conf["search"]["findKeyWord"]);
                                
                                #如果取得 欄位是否會自動加1 失敗
                                if($searchResult["status"]==="false"){
                                        
                                        #設置執行失敗
                                        $reuslt["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果有找到 AUTO_INCREMENT
                                if($searchResult["founded"]==="true"){
                                        
                                        $result["columnAutoIncrement"][$i]="true";
                                        $result["columnAutoIncrement"][$result["columnName"][$i]]="true";
                                        
                                        }#if end
                                        
                                #反之沒有 AUTO_INCREMENT
                                else{
                                        
                                        $result["columnAutoIncrement"][$i]="false";
                                        $result["columnAutoIncrement"][$result["columnName"][$i]]="false";
                                        
                                        }#else end
                                        
                                #欄位是否有預設內容
                                
                                #函式說明:
                                #檢查字串裡面有無指定的關鍵字
                                #回傳結果::
                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                #$result["error"],錯誤訊息
                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                #必填參數:
                                $conf["search"]["findKeyWord"]["keyWord"]="DEFAULT";#想要搜尋的關鍵字
                                $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                                #可省略參數:
                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                unset($conf["search"]["findKeyWord"]);
                                
                                #如果取得 欄位是否有預設內容 失敗
                                if($searchResult["status"]==="false"){
                                        
                                        #設置執行失敗
                                        $reuslt["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果有找到 DEFAULT
                                if($searchResult["founded"]==="true"){
                                        
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]="DEFAULT ";#爲以哪個符號作爲分割
                                        $defaultString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($defaultString["status"]=="false"){
                                                
                                                #設置執行失敗
                                                $result["status"]="false";
                                                
                                                #設置執行錯誤訊息
                                                $result["error"]=$defaultString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$defaultString["dataArray"][1];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                        $defaultString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($defaultString["status"]=="false"){
                                                
                                                #設置執行失敗
                                                $result["status"]="false";
                                                
                                                #設置執行錯誤訊息
                                                $result["error"]=$defaultString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #將「,」,「'」去掉 
                                        #函式說明:
                                        #處理字串避免網頁出錯
                                        #回傳結果::
                                        #$result,爲處理好的字串。
                                        #必填參數:
                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$defaultString["dataArray"][0];#爲要處理的字串
                                        #可省略參數:
                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","'");#爲被選擇要處理的字串/字元,須爲陣列值。
                                        #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                        $thisColumnDefaultValue=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                        unset($conf["stringProcess"]["correctCharacter"]);
                                        
                                        #如果處理字串失敗
                                        if($thisColumnDefaultValue["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$thisColumnDefaultValue;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #取得該欄位的預設內容
                                        $result["columnDefault"][$i]=$thisColumnDefaultValue["content"];
                                        $result["columnDefault"][$result["columnName"][$i]]=$thisColumnDefaultValue["content"];
                                        
                                        }#if end
                                
                                #反之沒有找到 DEFAULT     
                                else{
                                        
                                        $result["columnDefault"][$i]="沒有指定";
                                        $result["columnDefault"][$result["columnName"][$i]]=$result["columnDefault"][$i];
                                        
                                        }#else end
                                        
                                #如果有欄位內有 ON UPDATE 的字樣
                                
                                #函式說明:
                                #檢查字串裡面有無指定的關鍵字
                                #回傳結果::
                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                #$result["error"],錯誤訊息
                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                #必填參數:
                                $conf["search"]["findKeyWord"]["keyWord"]="ON UPDATE";#想要搜尋的關鍵字
                                $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                                #可省略參數:
                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                unset($conf["search"]["findKeyWord"]);
                                
                                #如果尋找 欄位內是否有 ON UPDATE 的字樣失敗
                                if($searchResult["status"]==="false"){
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #設置執行錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果有找到 ON UPDATE
                                if($searchResult["founded"]==="true"){ 
                                        
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON UPDATE ";#爲以哪個符號作爲分割
                                        $onUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                                                                
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$onUpdateString["dataArray"][1];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                        $onUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($onUpdateString["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$onUpdateString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #將「,」去掉 
                                        #函式說明:
                                        #處理字串避免網頁出錯
                                        #回傳結果::
                                        #$result,爲處理好的字串。
                                        #必填參數:
                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$onUpdateString["dataArray"][0];#爲要處理的字串
                                        #可省略參數:
                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                        #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                        $columnOnUpdateActionStr=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                        unset($conf["stringProcess"]["correctCharacter"]);
                                        
                                        #如果 處理字串失敗
                                        if($columnOnUpdateActionStr["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$columnOnUpdateActionStr;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #取得 ON UPDATE 的對應動作
                                        $result["columnOnUpdateAction"][$result["columnName"][$i]]=$columnOnUpdateActionStr["content"];
                                        $result["columnOnUpdateAction"][$i]=$columnOnUpdateActionStr["content"];
                                                                                                                        
                                        }#if end
                                        
                                #反之,沒有 ON UPDATE 的對應動作
                                else{
                                        
                                        $result["columnOnUpdateAction"][$i]="沒有指定";
                                        $result["columnOnUpdateAction"][$result["columnName"][$i]]=$result["columnOnUpdateAction"][$i];
                                        
                                        }#else end
                                
                                }#if end
                        
                        #如果有欄位內有 CHARACTER SET 的字樣
                        
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="CHARACTER SET";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]["findKeyWord"]);
                        
                        #如果尋找關鍵字失敗
                        if($searchResult["status"]==="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$searchResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #如果有找到 CHARACTER SET
                        if($searchResult["founded"]==="true"){ 
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="CHARACTER SET ";#爲以哪個符號作爲分割
                                $characterSetString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($characterSetString["status"]==="false"){
                                                
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$characterSetString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$characterSetString["dataArray"][1];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                $characterSetString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($characterSetString["status"]==="false"){
                                                
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$characterSetString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #將「,」去掉 
                                #函式說明:
                                #處理字串避免網頁出錯
                                #回傳結果::
                                #$result,爲處理好的字串。
                                #必填參數:
                                $conf["stringProcess"]["correctCharacter"]["stringIn"]=$characterSetString["dataArray"][0];#爲要處理的字串
                                #可省略參數:
                                $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                $processedCharacterSetStr=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                unset($conf["stringProcess"]["correctCharacter"]);
                                
                                #如果處理字串失敗
                                if($processedCharacterSetStr["status"]==="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$processedCharacterSetStr;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #取得CHARACTER SET的設定字串
                                $result["columnCharacterSet"][$i]=$processedCharacterSetStr["content"];
                                $result["columnCharacterSet"][$result["columnName"][$i]]=$processedCharacterSetStr["content"];
                                
                                }#if end
                                
                        #反之,沒有 CHARACTER SET 字樣
                        else{
                                
                                #如果存在該欄位
                                if(isset($result["columnName"][$i])){
                                
                                        #採用預設的 $result["charset"]
                                        $result["columnCharacterSet"][$i]=$result["charset"];
                                        $result["columnCharacterSet"][$result["columnName"][$i]]=$result["columnCharacterSet"][$i];
                                
                                        }#if end
                                
                                }#else end
                                
                        #檢查是否有 COLLATE 字樣...
                        
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="COLLATE";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]["findKeyWord"]);
                        
                        #如果尋找關鍵字失敗
                        if($searchResult["status"]==="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$searchResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #如果有找到 CHARACTER SET
                        if($searchResult["founded"]==="true"){ 
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="COLLATE ";#爲以哪個符號作爲分割
                                $collateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($collateString["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$collateString["dataArray"][1];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                $collateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($collateString["status"]==="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #將「,」去掉 
                                #函式說明:
                                #處理字串避免網頁出錯
                                #回傳結果::
                                #$result,爲處理好的字串。
                                #必填參數:
                                $conf["stringProcess"]["correctCharacter"]["stringIn"]=$collateString["dataArray"][0];#爲要處理的字串
                                #可省略參數:
                                $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                $thisColumnCollate=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                unset($conf["stringProcess"]["correctCharacter"]);
                                
                                #如果處理字串失敗
                                if($thisColumnCollate["status"]==="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$thisColumnCollate;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #儲存 COLLATE 資訊字串
                                $result["columnCollate"][$i]=$thisColumnCollate["content"];
                                $result["columnCollate"][$result["columnName"][$i]]=$thisColumnCollate["content"];
                                
                                }#if end
                                
                        #反之,沒有 COLLATE  字樣
                        else{
                                #如果存在該欄位
                                if(isset($result["columnName"][$i])){
                                                                
                                        $result["columnCollate"][$i]="沒有指定";
                                        $result["columnCollate"][$result["columnName"][$i]]=$result["columnCollate"][$i];
                                
                                        }#if end
                                
                                }#else end
                                
                        #檢查是否有COMMENT字樣
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="COMMENT";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$everyLine["dataArray"][$i];#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]);
                        
                        #如果尋找關鍵字失敗
                        if($searchResult["status"]==="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$searchResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #如果有 COMMENT 字樣
                        if($searchResult["founded"]==="true"){
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$everyLine["dataArray"][$i];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="COMMENT ";#爲以哪個符號作爲分割
                                $commentString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($commentString["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$commentString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$commentString["dataArray"][1];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="'";#爲以哪個符號作爲分割
                                $commentString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($commentString["status"]==="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$commentString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #取得該欄位的註解內容
                                $result["columnComment"][$i]=$commentString["dataArray"][0];
                                $result["columnComment"][$result["columnName"][$i]]=$commentString["dataArray"][0];
                                                                                        
                                }#if end
                        
                        #反之,沒有 COMMENT 字樣
                        else{
                                #如果存在該欄位
                                if(isset($result["columnName"][$i])){
                                                                
                                        #設置該欄位沒有註解
                                        $result["columnComment"][$i]="沒有註解";
                                        $result["columnComment"][$result["columnName"][$i]]="沒有註解";
                                
                                        }#if end
                                
                                }#else end
                                                                                        
                        }#for end
                
                #初始化索引鍵的陣列
                $result["key"]=array();
                        
                #依據有幾個鍵值的定義來執行
                foreach($keyDefine as $unClassifyString){
                                        
                        #依據第一個單字來進行判斷
                        #可能的有:
                        #PRIMARY KEY,主鍵
                        #KEY,索引鍵
                        #CONSTRAINT,外鍵
                        
                        #如果找到 PRIMARY KEY
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="PRIMARY KEY";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]["findKeyWord"]);
                        
                        #如果尋找關鍵字失敗
                        if($searchResult["status"]=="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$searchResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #如果有找到 PRIMARY KEY
                        if($searchResult["founded"]=="true"){ 
                                
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="PRIMARY KEY ";#爲以哪個符號作爲分割
                                $primaryKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #如果分割字串失敗
                                if($primaryKeyString["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$primaryKeyString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #取得主鍵的欄位名稱
                                $primaryKey=$primaryKeyString["dataArray"][1];
                                
                                #將「,」、「`」、「(」、「)」去掉 
                                #函式說明:
                                #處理字串避免網頁出錯
                                #回傳結果::
                                #$result,爲處理好的字串。
                                #必填參數:
                                $conf["stringProcess"]["correctCharacter"]["stringIn"]=$primaryKey;#爲要處理的字串
                                #可省略參數:
                                $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                $getPrimaryKey=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                unset($conf["stringProcess"]["correctCharacter"]);
                                
                                #如果 處理字串失敗
                                if($getPrimaryKey["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$getPrimaryKey;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #取得主鍵欄位名稱
                                $result["primaryKey"]=$getPrimaryKey["content"];
                                
                                #後續省略
                                continue;
                                
                                }#if end
                        
                        #尋找是否有 KEY 關鍵字
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="  KEY ";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]["findKeyWord"]);
                        
                        #如果尋找關鍵字失敗
                        if($searchResult["status"]=="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$searchResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #如果有找到 "  KEY "
                        if($searchResult["founded"]=="true"){
                        
                                # 用 "  KEY " 來分割
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="  KEY ";#爲以哪個符號作爲分割
                                $keyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                        
                                #如果分割字串失敗
                                if($keyString["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$keyString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                        
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$keyString["dataArray"][0];#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="`";#爲以哪個符號作爲分割
                                $keyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                
                                #debug
                                #var_dump($keyString);
                                
                                #如果分割字串失敗
                                if($keyString["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$keyString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #取得索引的欄位名稱
                                $thisKeyColumnName=$keyString["dataArray"][2];
                                
                                #取得要回傳的key欄位名稱
                                $result["key"][]=$thisKeyColumnName;
                                
                                #用index key欄位的名稱來儲存index key的欄位
                                $result["key"][$thisKeyColumnName]=$thisKeyColumnName;
                                
                                #取得用於識別 key 的 Constraint
                                $keyConstraintName=$keyString["dataArray"][0];
                                
                                #將「`」去掉 
                                #函式說明:
                                #處理字串避免網頁出錯
                                #回傳結果::
                                #$result,爲處理好的字串。
                                #必填參數:
                                $conf["stringProcess"]["correctCharacter"]["stringIn"]=$keyConstraintName;#爲要處理的字串
                                #可省略參數:
                                $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                $thisKeyConstraintName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                unset($conf["stringProcess"]["correctCharacter"]);
                                
                                #如果處理字串失敗
                                if($thisKeyConstraintName["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$thisKeyConstraintName;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #儲存 key 的名稱
                                $result["keyConstraintName"][]=$thisKeyConstraintName["content"];
                                
                                #將 $result["keyConstraintName"] 用 欄位的名稱去儲存
                                $result["keyConstraintName"][$thisKeyColumnName]=$thisKeyConstraintName["content"];
                                
                                #後續省略
                                continue;
                                        
                                }#if end
                                
                        #尋找是否有 CONSTRAINT 關鍵字
                        #函式說明:
                        #檢查字串裡面有無指定的關鍵字
                        #回傳結果::
                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                        #$result["error"],錯誤訊息
                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                        #必填參數:
                        $conf["search"]["findKeyWord"]["keyWord"]="CONSTRAINT";#想要搜尋的關鍵字
                        $conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
                        #可省略參數:
                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                        unset($conf["search"]["findKeyWord"]);
                        
                        #如果尋找關鍵字失敗
                        if($searchResult["status"]=="false"){
                                
                                #設置執行不正常
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$searchResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #如果有找到 "CONSTRAINT"
                        if($searchResult["founded"]=="true"){
                                
                                #取得 CONSTRAINT 的名稱
                                
                                #用 " " 來分割字串
                                #函式說明:
                                #將固定格式的字串分開,並回傳分開的結果。
                                #回傳的參數:
                                #$result["oriStr"],要分割的原始字串內容
                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                #$result["dataCounts"],爲總共分成幾段
                                #必填參數:
                                $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                $foreignKeyConstraintString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                unset($conf["stringProcess"]["spiltString"]);
                                        
                                #如果分割字串失敗
                                if($foreignKeyConstraintString["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$foreignKeyConstraintString;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end        
                                                                                        
                                #將 $foreignKeyString[0] 的非必要字元踢除
                                #將「,」、「`」、「(」、「)」去掉 
                                #函式說明:
                                #處理字串避免網頁出錯
                                #回傳結果::
                                #$result,爲處理好的字串。
                                #必填參數:
                                $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyConstraintString["dataArray"][1];#爲要處理的字串
                                #可省略參數:
                                $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                $foreignConstraintName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                unset($conf["stringProcess"]["correctCharacter"]);              
                                        
                                #如果處理 CONSTRAINT 字串失敗
                                if($foreignConstraintName["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$foreignConstraintName;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end        
                                        
                                #儲存 foreignKey 的 CONSTRAINT 名稱
                                $result["foreignKey"]["constraintName"][]=$foreignConstraintName["content"];    
                                                                        
                                #尋找 "FOREIGN KEY"
                                #函式說明:
                                #檢查字串裡面有無指定的關鍵字
                                #回傳結果::
                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                #$result["error"],錯誤訊息
                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                #必填參數:
                                $conf["search"]["findKeyWord"]["keyWord"]="FOREIGN KEY";#想要搜尋的關鍵字
                                $conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
                                #可省略參數:
                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                unset($conf["search"]["findKeyWord"]);
                                
                                #如果尋找關鍵字失敗
                                if($searchResult["status"]=="false"){
                                        
                                        #設置執行不正常
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$searchResult;
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果有找到 "FOREIGN KEY"
                                if($searchResult["founded"]=="true"){
                                        
                                        #用 "FOREIGN KEY " 來分割字串
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]="FOREIGN KEY ";#爲以哪個符號作爲分割
                                        $foreignKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($foreignKeyString["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$foreignKeyString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end        
                                        
                                        #用 " " 來分割字串
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyString["dataArray"][1];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                        $foreignKeyString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($foreignKeyString["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$foreignKeyString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end        
                                        
                                        #將 $foreignKeyString[0] 的非必要字元踢除
                                        #將「,」、「`」、「(」、「)」去掉 
                                        #函式說明:
                                        #處理字串避免網頁出錯
                                        #回傳結果::
                                        #$result,爲處理好的字串。
                                        #必填參數:
                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyString["dataArray"][0];#爲要處理的字串
                                        #可省略參數:
                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
                                        #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                        $thisForeignKeyColumnName=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                        unset($conf["stringProcess"]["correctCharacter"]);
                                        
                                        #如果 處理字串失敗
                                        if($thisForeignKeyColumnName["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$thisForeignKeyColumnName;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #儲存外鍵欄位的名稱
                                        $result["foreignKey"]["columnName"][]=$thisForeignKeyColumnName["content"];
                                                                                        
                                        #用該外鍵欄位的名稱,作為key來存放外鍵欄位的名稱
                                        $result["foreignKey"]["columnName"][$thisForeignKeyColumnName["content"]]=$thisForeignKeyColumnName["content"];
                                                                                        
                                        #用 "REFERENCES " 來分割字串
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]="REFERENCES ";#爲以哪個符號作爲分割
                                        $foreignKeyReferencesString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($foreignKeyReferencesString["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$foreignKeyReferencesString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #用 " " 來分割字串
                                        #函式說明:
                                        #將固定格式的字串分開,並回傳分開的結果。
                                        #回傳的參數:
                                        #$result["oriStr"],要分割的原始字串內容
                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                        #$result["dataCounts"],爲總共分成幾段
                                        #必填參數:
                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyReferencesString["dataArray"][1];#要處理的字串。
                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ";#爲以哪個符號作爲分割
                                        $foreignKeyReferencesString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                        unset($conf["stringProcess"]["spiltString"]);
                                        
                                        #如果分割字串失敗
                                        if($foreignKeyReferencesString["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$foreignKeyReferencesString;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #將 $foreignKeyString[0] 的非必要字元踢除
                                        #將「,」、「`」、「(」、「)」去掉 
                                        #函式說明:
                                        #處理字串避免網頁出錯
                                        #回傳結果::
                                        #$result,爲處理好的字串。
                                        #必填參數:
                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyReferencesString["dataArray"][1];#爲要處理的字串
                                        #可省略參數:
                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",","`","(",")");#爲被選擇要處理的字串/字元,須爲陣列值。
                                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                        $tempReferencesColumn=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                        unset($conf["stringProcess"]["correctCharacter"]);
                                        
                                        #如果 處理字串失敗
                                        if($tempReferencesColumn["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$tempReferencesColumn;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #取得參照的欄位名稱
                                        $result["foreignKey"]["referencesColumn"][]=$tempReferencesColumn["content"];
                                        
                                        #用欄位名稱來儲存參照的資料表
                                        $result["foreignKey"]["referencesColumn"][$thisForeignKeyColumnName["content"]]=$tempReferencesColumn["content"];
                                        
                                        #將 $foreignKeyString[0] 的非必要字元踢除
                                        #將「,」、「`」、「(」、「)」去掉 
                                        #函式說明:
                                        #處理字串避免網頁出錯
                                        #回傳結果::
                                        #$result,爲處理好的字串。
                                        #必填參數:
                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyReferencesString["dataArray"][0];#爲要處理的字串
                                        #可省略參數:
                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array("`");#爲被選擇要處理的字串/字元,須爲陣列值。
                                        #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                        $tempReferencesTable=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                        unset($conf["stringProcess"]["correctCharacter"]);
                                                
                                        #如果處理字串失敗
                                        if($tempReferencesTable["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$tempReferencesTable;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end        
                                                
                                        #取得參照的資料表
                                        $result["foreignKey"]["referencesTable"][]=$tempReferencesTable["content"];
                                                                                
                                        #用欄位名稱來儲存參照的欄位
                                        $result["foreignKey"]["referencesTable"][$thisForeignKeyColumnName["content"]]=$tempReferencesTable["content"];
                                                                                        
                                        #如果有 "ON UPDATE" 存在
                                        #函式說明:
                                        #檢查字串裡面有無指定的關鍵字
                                        #回傳結果::
                                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                        #$result["error"],錯誤訊息
                                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                        #必填參數:
                                        $conf["search"]["findKeyWord"]["keyWord"]="ON UPDATE";#想要搜尋的關鍵字
                                        $conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
                                        #可省略參數:
                                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                        unset($conf["search"]["findKeyWord"]);
                                        
                                        #如果尋找關鍵字失敗
                                        if($searchResult["status"]=="false"){
                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$searchResult;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #如果有找到 "ON UPDATE"
                                        if($searchResult["founded"]=="true"){
                                                
                                                #用 "ON UPDATE " 來分割字串
                                                #函式說明:
                                                #將固定格式的字串分開,並回傳分開的結果。
                                                #回傳的參數:
                                                #$result["oriStr"],要分割的原始字串內容
                                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                                #$result["dataCounts"],爲總共分成幾段
                                                #必填參數:
                                                $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON UPDATE ";#爲以哪個符號作爲分割
                                                $foreignKeyOnUpdateString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                                unset($conf["stringProcess"]["spiltString"]);
                                                
                                                #如果分割字串失敗
                                                if($foreignKeyOnUpdateString["status"]=="false"){
                                                        
                                                        #設置執行不正常
                                                        $result["status"]="false";
                                                        
                                                        #設置錯誤訊息
                                                        $result["error"]=$searchResult;
                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end
                                                
                                                #檢查裏面是否含有 " ON DELETE " 字樣
                                                #函式說明:
                                                #檢查字串裡面有無指定的關鍵字
                                                #回傳結果::
                                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                                #$result["error"],錯誤訊息
                                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                                #必填參數:
                                                $conf["search"]["findKeyWord"]["keyWord"]=" ON DELETE ";#想要搜尋的關鍵字
                                                $conf["search"]["findKeyWord"]["string"]=$foreignKeyOnUpdateString["dataArray"][1];#要被搜尋的字串內容
                                                #可省略參數:
                                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                                unset($conf["search"]["findKeyWord"]);
                                                
                                                #如果尋找關鍵字失敗
                                                if($searchResult["status"]=="false"){
                                                        
                                                        #設置執行不正常
                                                        $result["status"]="false";
                                                        
                                                        #設置錯誤訊息
                                                        $result["error"]=$searchResult;
                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end
                                                
                                                #如果裏面含有 "ON DELETE " 字樣
                                                if($searchResult["founded"]=="true"){
                                                        
                                                        #我們只要取得 "ON DELETE " 前面的內容
                                                        #用"ON UPDATE "來分割
                                                        #函式說明:
                                                        #將固定格式的字串分開,並回傳分開的結果。
                                                        #回傳的參數:
                                                        #$result["oriStr"],要分割的原始字串內容
                                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                                        #$result["dataCounts"],爲總共分成幾段
                                                        #必填參數:
                                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyOnUpdateString["dataArray"][1];#要處理的字串。
                                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ON DELETE ";#爲以哪個符號作爲分割
                                                        $foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                                        unset($conf["stringProcess"]["spiltString"]);
                                                        #var_dump($foreignKeyOnDeleteString);
                                                        
                                                        #如果分割字串失敗
                                                        if($foreignKeyOnDeleteString["status"]=="false"){
                                                        
                                                                #設置執行不正常
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$foreignKeyOnDeleteString;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        $foreignKeyOnUpdateString=$foreignKeyOnUpdateString["dataArray"][0];
                                                        
                                                        #將 $foreignKeyOnUpdateString 的非必要字元踢除
                                                        #將「,」、「`」、「(」、「)」去掉 
                                                        #函式說明:
                                                        #處理字串避免網頁出錯
                                                        #回傳結果::
                                                        #$result,爲處理好的字串。
                                                        #必填參數:
                                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyOnUpdateString;#爲要處理的字串
                                                        #可省略參數:
                                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                                        $tempOnUpdateAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                                        unset($conf["stringProcess"]["correctCharacter"]);
                                                        
                                                        #如果 處理字串 失敗
                                                        if($tempOnUpdateAction["status"]=="false"){
                                                                
                                                                #設置執行不正常
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$tempOnUpdateAction;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        #紀錄 ON UPDATE 的動作字串
                                                        $result["foreignKey"]["onUpdateAction"][]=$tempOnUpdateAction["content"];
                                                        
                                                        #用 freign key 的名稱來紀錄外鍵更新的動作
                                                        $result["foreignKey"]["onUpdateAction"][$thisForeignKeyColumnName]=$tempOnUpdateAction["content"];
                                                        
                                                        }#if end

                                                #反之 沒有 "ON DELETE " 字樣
                                                else{   
                                                        
                                                        #var_dump($foreignKeyOnUpdateString["dataArray"][1]);
                                                                                                                
                                                        #將 $foreignKeyOnUpdateString 的非必要字元踢除
                                                        #將「,」、「`」、「(」、「)」去掉 
                                                        #函式說明:
                                                        #處理字串避免網頁出錯
                                                        #回傳結果::
                                                        #$result,爲處理好的字串。
                                                        #必填參數:
                                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyOnUpdateString["dataArray"][1];#爲要處理的字串
                                                        #可省略參數:
                                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                                        $tempOnUpdateAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                                        unset($conf["stringProcess"]["correctCharacter"]);
                                                        
                                                        #如果處理字串失敗
                                                        if($tempOnUpdateAction["status"]=="false"){
                                                                
                                                                #設置執行不正常
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$tempOnUpdateAction;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        #紀錄外鍵更新的動作
                                                        $result["foreignKey"]["onUpdateAction"][]=$tempOnUpdateAction["content"];
                                                        
                                                        #用 freign key 的名稱來紀錄外鍵更新的動作
                                                        $result["foreignKey"]["onUpdateAction"][$thisForeignKeyColumnName["content"]]=$tempOnUpdateAction["content"];
                                                
                                                        }#else end
                                                
                                                }#if end
                                                
                                        #如果有 "ON DELETE" 存在
                                        #函式說明:
                                        #檢查字串裡面有無指定的關鍵字
                                        #回傳結果::
                                        #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                        #$result["error"],錯誤訊息
                                        #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                        #必填參數:
                                        $conf["search"]["findKeyWord"]["keyWord"]="ON DELETE";#想要搜尋的關鍵字
                                        $conf["search"]["findKeyWord"]["string"]=$unClassifyString;#要被搜尋的字串內容
                                        #可省略參數:
                                        #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                        $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                        unset($conf["search"]["findKeyWord"]);
                                        
                                        #如果尋找關鍵字失敗
                                        if($searchResult["status"]=="false"){
                                                                
                                                #設置執行不正常
                                                $result["status"]="false";
                                                
                                                #設置錯誤訊息
                                                $result["error"]=$searchResult;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end
                                        
                                        #如果有找到 "ON DELETE"
                                        if($searchResult["founded"]=="true"){                                                   
                                        
                                                #用 "ON DELETE " 來分割字串
                                                #函式說明:
                                                #將固定格式的字串分開,並回傳分開的結果。
                                                #回傳的參數:
                                                #$result["oriStr"],要分割的原始字串內容
                                                #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                                #$result["dataCounts"],爲總共分成幾段
                                                #必填參數:
                                                $conf["stringProcess"]["spiltString"]["stringIn"]=$unClassifyString;#要處理的字串。
                                                $conf["stringProcess"]["spiltString"]["spiltSymbol"]="ON DELETE ";#爲以哪個符號作爲分割
                                                $foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                                unset($conf["stringProcess"]["spiltString"]);
                                                
                                                #如果分割字串失敗
                                                if($foreignKeyOnDeleteString["status"]=="false"){
                                                                
                                                        #設置執行不正常
                                                        $result["status"]="false";
                                                        
                                                        #設置錯誤訊息
                                                        $result["error"]=$foreignKeyOnDeleteString;
                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end
                                                
                                                #檢查裏面是否含有 " ON UPDATE " 字樣
                                                #函式說明:
                                                #檢查字串裡面有無指定的關鍵字
                                                #回傳結果::
                                                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                                                #$result["error"],錯誤訊息
                                                #$result["founded"],是否找到關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                                                #必填參數:
                                                $conf["search"]["findKeyWord"]["keyWord"]="ON UPDATE ";#想要搜尋的關鍵字
                                                $conf["search"]["findKeyWord"]["string"]=$foreignKeyOnDeleteString["dataArray"][1];#要被搜尋的字串內容
                                                #可省略參數:
                                                #$conf["search"]["findKeyWord"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                                                $searchResult=search::findKeyWord($conf["search"]["findKeyWord"]);
                                                unset($conf["search"]["findKeyWord"]);
                                                
                                                #如果分割字串失敗
                                                if($searchResult["status"]=="false"){
                                                                
                                                        #設置執行不正常
                                                        $result["status"]="false";
                                                        
                                                        #設置錯誤訊息
                                                        $result["error"]=$searchResult;
                                                        
                                                        #回傳結果
                                                        return $result;
                                                        
                                                        }#if end
                                                
                                                #如果裏面含有 "ON UPDATE " 字樣
                                                if($searchResult["founded"]=="true"){
                                                        
                                                        #我們只要取得 "ON UPDATE " 前面的內容
                                                        #用"ON UPDATE "來分割
                                                        #函式說明:
                                                        #將固定格式的字串分開,並回傳分開的結果。
                                                        #回傳的參數:
                                                        #$result["oriStr"],要分割的原始字串內容
                                                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                                                        #$result["dataCounts"],爲總共分成幾段
                                                        #必填參數:
                                                        $conf["stringProcess"]["spiltString"]["stringIn"]=$foreignKeyOnDeleteString["dataArray"][1];#要處理的字串。
                                                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]=" ON UPDATE ";#爲以哪個符號作爲分割
                                                        $foreignKeyOnDeleteString=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                                                        unset($conf["stringProcess"]["spiltString"]);
                                                        
                                                        #如果分割字串失敗
                                                        if($searchResult["status"]=="false"){
                                                                        
                                                                #設置執行不正常
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$searchResult;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        $foreignKeyOnDeleteString=$foreignKeyOnDeleteString["dataArray"][0];
                                                        
                                                        #將 $foreignKeyString[0] 的非必要字元踢除
                                                        #將「,」、「`」、「(」、「)」去掉 
                                                        #函式說明:
                                                        #處理字串避免網頁出錯
                                                        #回傳結果::
                                                        #$result,爲處理好的字串。
                                                        #必填參數:
                                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyOnDeleteString;#爲要處理的字串
                                                        #可省略參數:
                                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                                                #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                                        $tempOneleteAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                                        unset($conf["stringProcess"]["correctCharacter"]);
                                                        
                                                        #如果處理字串失敗
                                                        if($tempOneleteAction["status"]=="false"){
                                                                
                                                                #設置執行不正常
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$tempOneleteAction;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        #儲存外鍵移除後的動作
                                                        $result["foreignKey"]["onDeleteAction"][]=$tempOneleteAction["content"];
                                                        
                                                        #用 freign key 的名稱來紀錄外鍵移除後的動作
                                                        $result["foreignKey"]["onDeleteAction"][$thisForeignKeyColumnName["content"]]=$tempOneleteAction["content"];
                                                        
                                                        }#if end
                                                        
                                                #反之裏面沒有 "ON UPDATE " 字樣
                                                else{
                                                
                                                        #將 $foreignKeyString[0] 的非必要字元踢除
                                                        #將「,」、「`」、「(」、「)」去掉 
                                                        #函式說明:
                                                        #處理字串避免網頁出錯
                                                        #回傳結果::
                                                        #$result,爲處理好的字串。
                                                        #必填參數:
                                                        $conf["stringProcess"]["correctCharacter"]["stringIn"]=$foreignKeyOnDeleteString["dataArray"][1];#爲要處理的字串
                                                        #可省略參數:
                                                        $conf["stringProcess"]["correctCharacter"]["selectedCharacter"]=array(",");#爲被選擇要處理的字串/字元,須爲陣列值。
                                                        #若不設定則預設爲要將這些字串作替換("<",">",";","=","//","'","$","%","&","|","/*","*\/","#")。
                                                        #$conf["stringProcess"]["correctCharacter"]["changeTo"]=array();#爲被選擇的字元要換成什麼字串/字元,須爲陣列值。若不設定,則預設爲更換成""(空字串)。
                                                        $tempOneleteAction=stringProcess::correctCharacter($conf["stringProcess"]["correctCharacter"]);
                                                        unset($conf["stringProcess"]["correctCharacter"]);
                                                        
                                                        #如果處理字串失敗
                                                        if($tempOneleteAction["status"]=="false"){
                                                                
                                                                #設置執行不正常
                                                                $result["status"]="false";
                                                                
                                                                #設置錯誤訊息
                                                                $result["error"]=$tempOneleteAction;
                                                                
                                                                #回傳結果
                                                                return $result;
                                                                
                                                                }#if end
                                                        
                                                        #取得 外鍵移除後的動作
                                                        $result["foreignKey"]["OnDeleteAction"][]=$tempOneleteAction["content"];
                                                        
                                                        #用 freign key 的名稱來紀錄外鍵移除後的動作
                                                        $result["foreignKey"]["onDeleteAction"][$thisForeignKeyColumnName]=$tempOneleteAction["content"];
                                                        
                                                        }#else end
                                        
                                                }#if end
                                        
                                        }#if end
                                
                                }#if end
                        
                        }#foreach end
                        
                #如果儲存索引鍵資訊的變數存在
                if(isset($result["key"])){
                        
                        #如果索引鍵的數量大於0
                        if(count($result["key"])>0){
                                
                                #設置 $result["key"]["exist"] 為 "true";
                                $result["key"]["exist"]="true";
                                
                                }#if end
                        
                        #反之沒有索引鍵  
                        else{
                                
                                #設置 $result["key"]["exist"] 為 "false";
                                $result["key"]["exist"]="false";
                                
                                }#else end
                        
                        }#if end
                
                #如果 $result["foreignKey"]["constraintName"] 存在
                if(isset($result["foreignKey"]["constraintName"])){
                
                        #如果 $result["foreignKey"]["constraintName"] 數量大於 0
                        if(count($result["foreignKey"]["constraintName"])>0){
                                
                                #針對每個 $result["foreignKey"]["constraintName"][$k] 
                                for($i=0;$i<count($result["foreignKey"]["columnName"])/2;$i++){
                                        
                                        #指派 $result["foreignKey"]["constraintName"][$k] 的內容同時指派給 $result["foreignKey"]["constraintName"][$result["foreignKey"]["columnName"][$k]]
                                        $result["foreignKey"]["constraintName"][$result["foreignKey"]["columnName"][$i]]=$result["foreignKey"]["constraintName"][$i];
                                        
                                        }#if end
                                
                                #將 $result["foreignKey"]["exist"] 設為 "true"
                                $result["foreignKey"]["exist"]="true";
                                
                                }#if end
                        
                        #反之 $result["foreignKey"]["exist"] 數量等於 0
                        else{
                                
                                #將 $result["foreignKey"]["exist"] 設為 "fasle"
                                $result["foreignKey"]["exist"]="false";
                                
                                }#else end
                        
                        }#if end        
                        
                #反之 $result["foreignKey"]["constraintName"] 不存在
                else{
                        
                        #將 $result["foreignKey"]["exist"] 設為 "fasle"
                        $result["foreignKey"]["exist"]="false";
                        
                        }#else end
                        
                #執行到這邊代表執行成功
                
                #設置成功訊息
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function getTableColumnDetailInfo end

        /*
        #函式說明:
        #移除資料表單1欄位的外鍵
        #回傳結果:
        #$result["status"],"true",代表執行成功;"false"代表執行失敗
        #$result["function"],當前執行的函數名稱.
        #$result["error"],錯誤訊息陣列
        #$result["sql"],執行的sql字串.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataBaseName"]="";
        #$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataTableName"]="";
        #$conf["erasedForeignKeyColumnConstraintName"],字串,要移除外鍵欄位的CONSTRAINT名稱.
        $conf["erasedForeignKeyColumnConstraintName"]="";
        #可省略參數: 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */ 
        public static function eraseForeignKey($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","erasedForeignKeyColumnConstraintName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #移除foreignKey的語法
                $sql="ALTER TABLE ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." DROP FOREIGN KEY ".$conf["erasedForeignKeyColumnConstraintName"];
                
                #函式說明:
                #執行mysql查詢的指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果有設定密碼
                if(isset($conf["dbPassword"])){
                
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end        
                
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #取得執行的sql語法
                $result["sql"]=$queryResult["queryString"];
                
                #如果執行sql語法錯誤
                if($queryResult["status"]=="false"){
                        
                        #設置執行失敗的識別
                        $result["status"]="false";
                        
                        #設置執行錯誤資訊
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #執行到這邊代表執行無誤
                
                #設置執行成功的識別
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function eraseForeignKey end

        /*
        #函式說明:
        #移除資料表單1欄位的索引鍵
        #回傳結果:
        #$result["status"],"true",代表執行成功;"false"代表執行失敗
        #$result["error"],錯誤訊息陣列
        #$result["sql"],執行的sql字串.
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        $conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataBaseName"]="";
        $conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataTableName"]="";
        $conf["erasedIndexKeyColumnConstraintName"],字串,要移除外鍵欄位的CONSTRAINT名稱.
        $conf["erasedIndexKeyColumnConstraintName"]="";
        #可省略參數: 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */ 
        public static function eraseIndexKey($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","erasedIndexKeyColumnConstraintName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #檢查有誤
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #移除Key的語法
                $sql="ALTER TABLE ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." DROP INDEX `".$conf["erasedIndexKeyColumnConstraintName"]."`";
                
                #函式說明:
                #執行mysql查詢的指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果有設定密碼
                if(isset($conf["dbPassword"])){
                
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end        
                
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #取得執行的sql語法
                $result["sql"]=$queryResult["queryString"];
                
                #如果執行sql語法錯誤
                if($queryResult["status"]=="false"){
                        
                        #設置執行失敗的識別
                        $result["status"]="false";
                        
                        #設置執行錯誤資訊
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #執行到這邊代表執行無誤
                
                #設置執行失敗的識別
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function eraseIndexKey end

        /*
        #函式說明:
        #移除資料表的欄位
        #回傳結果:
        #$result["status"],若成功則爲"true",失敗則爲,"false"
        #$result["error"],錯誤訊息.
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataBaseName"]="";
        #$conf["selectedDataTableName"],字串,爲目標資料表所屬的資料庫.
        $conf["selectedDataTableName"]="";
        #$conf["removedColumnName"],字串,要移除的欄位名稱.
        $conf["removedColumnName"]="";
        #可省略參數: 
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function dropColumn($conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","removedColumnName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableType"]=array("string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #取得資料表所有欄位的詳細資訊
                #回傳的內容:
                #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                #$result["error"],錯誤訊息陣列
                #$result["sql"],執行的sql語法
                #$result["oriInput"],原始的資料表欄位資訊
                #$result["everyLine"],逐行的欄位資訊
                #$result["tableName"],當前查詢的資料表名稱
                #$result["engine"],資料表使用的儲存引擎
                #$result["charset"],資料表預設的編碼
                #$result["columnName"][$i],各欄位的名稱陣列,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnNotNull"][$i],各欄位是否可以不爲null,"true"爲可以不爲null;"false"爲可以爲"null",$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["columnCollate"][$i],各欄位使用的Collate,$i爲0開始的數字,也可以使用欄位的名稱。
                #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["primaryKey"],該資料表的主鍵
                #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲0開始的數字
                #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲0開始的數字
                #$result["columnOnUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲0開始的數字,"沒有指定"為沒有設定
                #$result["columnOnDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲0開始的數字,"沒有指定"為沒有設定
                #必填參數:
                $conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
                $conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
                $conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
                $conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$conf["selectedDataTableName"];#連線到資料庫要檢視的資料表
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){
                
                        $conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#連線到資料庫要用的密碼
                
                        }#if end
                        
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];
                
                        }#if end        
                
                $tableDetail=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
                unset($conf["db"]["getTableColumnDetailInfo"]);
                
                #如果取得資料表結構詳細資料失敗
                if($tableDetail["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$tableDetail;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #var_dump($tableDetail["foreignKey"]);
                                
                #判斷該欄位是否爲 foreign key
                if(isset($tableDetail["foreignKey"]["columnName"][$conf["removedColumnName"]])){
                        
                        #代表該欄位等於 foreign key 
                        
                        #先移除foreign key...
                        #函式說明:
                        #移除資料表單1欄位的外鍵
                        #回傳結果:
                        #$result["status"],"true",代表執行成功;"false"代表執行失敗
                        #$result["error"],錯誤訊息陣列
                        #必填參數:
                        $conf["db"]["eraseForeignKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                        $conf["db"]["eraseForeignKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                        $conf["db"]["eraseForeignKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                        $conf["db"]["eraseForeignKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                        $conf["db"]["eraseForeignKey"]["erasedForeignKeyColumnConstraintName"]=$tableDetail["foreignKey"]["constraintName"][$conf["removedColumnName"]];#要移除外鍵欄位的CONSTRAINT名稱
                        #可省略參數: 
                        
                        #如果 $conf["dbPassword"] 有設置
                        if(isset($conf["dbPassword"])){
                        
                                $conf["db"]["eraseForeignKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                
                                }#if end
                        
                        #如果有設定 $conf["dbPort"]        
                        if(isset($conf["dbPort"])){
                        
                                #設定 $conf["dbPort"]
                                $conf["db"]["eraseForeignKey"]["dbPort"]=$conf["dbPort"];
                        
                                }#if end        
                                
                        $eraseForeignKeyResult=db::eraseForeignKey($conf["db"]["eraseForeignKey"]);
                        unset($conf["db"]["eraseForeignKey"]);
                        
                        #var_dump($eraseForeignKeyResult);
                        
                        #如果執行失敗
                        if($eraseForeignKeyResult["status"]=="false"){
                                
                                #var_dump($eraseForeignKeyResult);
                                
                                #設置錯誤識別
                                $result["status"]="fasle";
                                
                                #設置錯誤提示
                                $result["error"]=$eraseForeignKeyResult;
                                
                                #回傳結果
                                return $result;
                                                                        
                                }#if end
                        
                        }#if end
                        
                #如果要移除欄位是index
                if(isset($tableDetail["key"][$conf["removedColumnName"]])){
                        
                        #移除索引鍵
                        #函式說明:
                        #移除資料表單1欄位的索引鍵
                        #回傳結果:
                        #$result["status"],"true",代表執行成功;"false"代表執行失敗
                        #$result["error"],錯誤訊息陣列
                        #必填參數:
                        $conf["db"]["eraseIndexKey"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                        $conf["db"]["eraseIndexKey"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                        $conf["db"]["eraseIndexKey"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲目標資料表所屬的資料庫
                        $conf["db"]["eraseIndexKey"]["selectedDataTableName"]=$conf["selectedDataTableName"];#爲目標資料表所屬的資料庫
                        $conf["db"]["eraseIndexKey"]["erasedIndexKeyColumnConstraintName"]=$tableDetail["keyConstraintName"][$conf["removedColumnName"]];#要移除索引鍵欄位的CONSTRAINT名稱
                        #可省略參數: 
                                
                        #如果 $conf["dbPassword"] 有設置
                        if(isset($conf["dbPassword"])){
                        
                                $conf["db"]["eraseIndexKey"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                                                                
                                }#if end
                        
                        #如果有設定 $conf["dbPort"]        
                        if(isset($conf["dbPort"])){
                        
                                #設定 $conf["dbPort"]
                                $conf["db"]["eraseIndexKey"]["dbPort"]=$conf["dbPort"];
                        
                                }#if end
                        
                        $eraseIndexKeyResult=db::eraseIndexKey($conf["db"]["eraseIndexKey"]);
                        unset($conf["db"]["eraseIndexKey"]);
                                                
                        #如果執行失敗
                        if($eraseIndexKeyResult["status"]=="false"){
                                
                                #var_dump($eraseIndexKeyResult);
                                
                                #設置錯誤識別
                                $result["status"]="fasle";
                                
                                #設置錯誤提示
                                $result["error"]=$eraseIndexKeyResult;
                                
                                #回傳結果
                                return $result;
                                                                        
                                }#if end
                        
                        }#if end                
                                                
                #組合sql語言
                $sql="alter table ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." drop `".$conf["removedColumnName"]."`;";
                                                        
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果有設定連線密碼
                if(isset($conf["dbPassword"])){
                
                        #就套用密碼
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #如果執行失敗
                if($queryResult["status"]=="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #取得錯誤訊息
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #設置執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function dropColumn end

        /*
        #函式說明:
        #清空資料表儲存的資料
        #回傳結果::
        #$result["status"],執行成功與否,"true"代表執行成功;"fasle"代表執行失敗
        #$result["error"],錯誤訊息
        #$result["function"],當前執行的涵式.
        #必填參數:
        $conf["dbAddress"]="字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        $conf["dbName"]=$dbName;#爲目標資料表所屬的資料庫
        $conf["dtName"]="";#爲要移除的資料表名稱
        #可省略參數:               
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #https://dev.mysql.com/doc/refman/5.0/en/truncate-table.html
        #備註:
        #無.
        */
        public static function emptyTable($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dbName","dtName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]);

                #如果檢查不通過
                if($checkResult["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;

                        #回傳結果
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkResult["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;

                        #回傳結果
                        return $result;

                        }#if end
                
                #設定要執行的sql語法
                $sql="TRUNCATE TABLE ".$conf["dbName"].".".$conf["dtName"].";";
                
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db.execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){
                        
                        $conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                                
                #如果有設定 $conf["dbPort"]        
                if(isset($conf["dbPort"])){
                
                        #設定 $conf["dbPort"]
                        $conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end                                
                                        
                $queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
                unset($conf["db.execMysqlQuery"]);
                                                
                #如果 $queryResult["status"] 為 "false"
                if($queryResult["status"]=="false"){
                        
                        #函式說明:
                        #透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
                        #$result["error"],錯誤訊息.
                        #$result["function"],當前執行的函數名稱.
                        #$result["sql"],執行的sql語法陣列.
                        #必填參數:
                        #$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbAddress"],字串,連線到資料庫的位置.
                        $conf["db.eraseDataInTableThenResetAutoIncrement"]["dbAddress"]=$conf["dbAddress"];
                        #$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbAccount"],字串,連線到資料庫的帳號.
                        $conf["db.eraseDataInTableThenResetAutoIncrement"]["dbAccount"]=$conf["dbAccount"];
                        #$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbName"],字串,要連線到哪個資料庫.
                        $conf["db.eraseDataInTableThenResetAutoIncrement"]["dbName"]=$conf["dbName"];
                        #$conf["db.eraseDataInTableThenResetAutoIncrement"]["dtName"],字串,要重設重設識別欄位的自動增量為0的資料表名稱.
                        $conf["db.eraseDataInTableThenResetAutoIncrement"]["dtName"]=$conf["dtName"];
                        #可省略參數:
                        
                        #如果 $conf["dbPassword"] 有設置
                        if(isset($conf["dbPassword"])){
                        
                                #$conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPassword"],字串,連線到資料庫的密碼.
                                $conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPassword"]=$conf["dbPassword"];
                        
                                }#if end
                        
                        #如果有設定 $conf["dbPort"]        
                        if(isset($conf["dbPort"])){
                        
                                #設定 $conf["dbPort"]
                                $conf["db.eraseDataInTableThenResetAutoIncrement"]["dbPort"]=$conf["dbPort"];
                        
                                }#if end        
                        
                        #參考資料:
                        #http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
                        #參考語法:
                        #ALTER TABLE dbName.dtName AUTO_INCREMENT = 1;
                        $eraseDataInTableThenResetAutoIncrementResult=db::eraseDataInTableThenResetAutoIncrement($conf["db.eraseDataInTableThenResetAutoIncrement"]);
                        unset($conf["db.eraseDataInTableThenResetAutoIncrement"]);
                        
                        #如果 透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1 失敗
                        if($eraseDataInTableThenResetAutoIncrementResult["status"]=="false"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$eraseDataInTableThenResetAutoIncrementResult;

                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        }#if end        
                                                
                #值行到這邊代表執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                                                                
                }#function emptyTable end

        /*
        #函式說明:
        #更改資料庫的名稱 
        #回傳結果::
        #$result["status"],"true"代表執行成功
        #$result["function"],當前執行的函數名稱.
        #$result["error"],錯誤訊息陣列.
        #必填參數:
        #$conf["editedDatabaseName"],爲要更改的資料庫名稱.
        $conf["editedDatabaseName"]=$editedDbName;
        #$conf["newDatabaseName"],新的資料庫名稱
        $conf["newDatabaseName"]="";
        #$conf["dbAccount"],爲用於連入資料庫server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["dbAddress"],爲資料庫server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["fileArgu"],字串,__FILE__的內容.
        $conf["fileArgu"]=__FILE__;
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #http://stackoverflow.com/questions/1708651/how-can-i-change-case-of-database-name-in-mysql
        #備註:
        #無.
        */
        public static function editDatabaseName($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","editedDatabaseName","newDatabaseName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果檢查失敗
                if($checkResult["status"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkResult;

                        #回傳錯誤訊息
                        return $result;

                        }#if end

                #如果檢查不通過
                if($checkResult["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";

                        #設置錯誤訊息
                        $result["error"]=$checkResult;

                        #回傳錯誤訊息
                        return $result;

                        }#if end
                
                #檢查要修改名稱的資料庫是否爲系統資料庫
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同
                #回傳結果::
                #$result["status"],"true"表示執行正確,"false"表示執行錯誤.
                #$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
                #$result["error"],錯誤訊息
                #$result["function"],當前執行的函數名稱
                #$result["equalVarName"],相等的變數名稱或key.
                #$result["equalVarValue"],相等的變數數值內容.
                #必填參數:
                $conf["search"]["getEqualVar"]["conditionElement"]=$conf["editedDatabaseName"];#條件元素,要等於的元素內容。
                $conf["search"]["getEqualVar"]["compareElements"]=array("information_schema","mysql","performance_schema");#要比對的陣列變數內容。
                $searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
                unset($conf["search"]["getEqualVar"]);

                #如果檢查失敗
                if($searchResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$searchResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #如果要移除的資料庫爲系統資料庫
                if($searchResult["founded"]=="true"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"][]="您不能更改系統資料庫";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果 $conf["dbPassword"] 不存在
                if(!isset($conf["dbPassword"])){
                        
                        #設爲空值
                        $conf["dbPassword"]="";
                        
                        }#if end
                        
                #反之有設定
                else{
                        
                        #設定連線用的密碼
                        $formatedPassword="--password=".$conf["dbPassword"];
                        
                        }#else end
                        
                #檢查新名字的資料庫是否存在
                #函式說明:
                #檢查該資料庫是否存在,結果會回傳一個陣列。
                #回傳結果:
                #$result["status"],執行正常則回傳"true",執行失敗則回傳"false".
                #$result["error"],錯誤訊息
                #$result["exist"],有為"true",無為"false".
                #必填的參數
                $conf["db"]["checkDataBaseExists"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["checkDataBaseExists"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["checkDataBaseExists"]["checkDataBaseName"]=$conf["newDatabaseName"];#爲要檢查是否存在的資料庫名稱
                #可省略參數
                
                #如果 $conf["dbPassword"] 存在
                if(isset($conf["dbPassword"])){
                        
                        #設置密碼
                        $conf["db"]["checkDataBaseExists"]["dbPassword"]=$conf["dbPassword"];
                        
                        }#if end
                                
                #如果 $conf["dbPort"] 存在
                if(isset($conf["dbPort"])){
                
                        #設置密碼
                        $conf["db"]["checkDataBaseExists"]["dbPort"]=$conf["dbPort"];
                
                        }#if end                
                                        
                $checkResult=db::checkDataBaseExists($conf["db"]["checkDataBaseExists"]);
                unset($conf["db"]["checkDataBaseExists"]);
                
                #如果 $checkResult["status"] 等於 "false"
                if($checkResult["status"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                                                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果跟現有的資料庫名稱一樣
                if($checkResult["exist"]==="true"){
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果沒有跟現有的資料庫名稱一樣  
                if($checkResult["exist"]==="false"){
                        
                        #建立新的資料庫
                        #函式說明:
                        #建立資料庫,會回傳一個陣列。
                        #回傳結果:
                        #$result["status"],若成功則爲"true",失敗則爲"false".
                        #$result["error"],錯誤訊息 
                        #必填參數:
                        $conf["db"]["createDatabase"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                        $conf["db"]["createDatabase"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                        $conf["db"]["createDatabase"]["newDatabaseName"]=$conf["newDatabaseName"];#爲要新增的資料庫名稱
                        #可省略參數:
                        
                        #如果 $conf["dbPassword"] 存在
                        if(isset($conf["dbPassword"])){
                                
                                #設置密碼
                                $conf["db"]["createDatabase"]["dbPassword"]=$conf["dbPassword"];
                                
                                }#if end
                                
                        #如果 $conf["dbPort"] 存在
                        if(isset($conf["dbPort"])){
                        
                                #設置密碼
                                $conf["db"]["createDatabase"]["dbPort"]=$conf["dbPort"];
                        
                                }#if end        
                        
                        $createNewDbResult=db::createDatabase($conf["db"]["createDatabase"]);
                        unset($conf["db"]["createDatabase"]);
                                        
                        #如果新資料庫建立失敗
                        if($createNewDbResult["status"]=="false"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$createNewDbResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                        
                        #將舊的資料庫內容完整複製到新的資料庫
                        #函式說明:
                        #呼叫shell執行系統命令,並取得回傳的內容.
                        #回傳結果:
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$result["error"],錯誤訊息陣列.
                        #$result["function"],當前執行的函數名稱.
                        #$result["argu"],使用的參數.
                        #$result["cmd"],執行的指令內容.
                        #$result["fullCmd"],如果參數 $conf["inBackGround"] 為 "true" 則會回傳該值.
                        #$result["output"],爲執行完二元碼後的輸出陣列,若 $conf["inBackGround"] 為 "true",則為當下的輸出.
                        #$result["tmpFileOutput"],儲存輸出的暫存檔案名稱,若 $conf["inBackGround"] 為 "true" 則會回傳該值.
                        #$result["running"],是否還在執行.
                        #$result["pid"],pid.
                        #$result["statusCode"],執行結束後的代碼.
                        #$result["escape"],陣列,儲存出新排序過且已經escape過的指令(key為"cmd")與參數(key為"argu").
                        #必填參數:
                        #$conf["command"],字串,要執行的指令.
                        $conf["external::callShell"]["command"]="mysqldump";
                        #$conf["fileArgu"],字串,變數__FILE__的內容.
                        $conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
                        #可省略參數:
                        #$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
                        $conf["external::callShell"]["argu"]=array("-u".$conf["dbAccount"],$formatedPassword,$conf["editedDatabaseName"],"|","mysql","-u".$conf["dbAccount"],$formatedPassword,$conf["newDatabaseName"]);
                        #$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
                        #$conf["arguIsAddr"]=array();
                        #$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
                        #$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
                        #$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
                        #$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
                        #$conf["enablePrintDescription"]="true";
                        #$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
                        #$conf["printDescription"]="";
                        #$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".如果參數為"< 、<< 、> 、>> 、| 、2>&1"之一則不會過濾.
                        #$conf["escapeshellarg"]="false";
                        #$conf["thereIsShellVar"],陣列字串,指令搭配的參數"argu",若含有「\'」,則取代為「"」.每個argu參數都要有對應的元素."true"代表要置換.
                        #$conf["thereIsShellVar"]=array();
                        #$conf["username"],字串,要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
                        #$conf["username"]="";
                        #$conf["password"],字串,root的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
                        #$conf["password"]="";
                        #$conf["useScript"],字串,是否要啟用Linux的script指令來記錄輸出,"true"代表要,Fedora的selinux會擋住該操作;"false"代表不要,預設為"false".
                        #$conf["useScript"]="";
                        #$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 "/tmp/.qbpwcf_tmp/external/callShell/".
                        #$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
                        #$conf["inBackGround"],字串,是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用「;」區隔的多個指令將會出錯.
                        #$conf["inBackGround"]="";
                        #$conf["getErr"],字串,"true"代表將錯誤輸出變成標準輸出,反之"false"為不變動.
                        #$conf["getErr"]="false";
                        #$conf["doNotRun"],字串,"true"代表不執行指令,預設為"false"會執行指令.
                        #$conf["doNotRun"]="false";
                        #參考資料:
                        #exec=>http://php.net/manual/en/function.exec.php
                        #escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
                        #escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
                        #備註:
                        #不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
                        #若使用的 command、argu 參數,含有 ~ 則會被視為字串,若有需要其於 shell 中代表的家目錄位置,可用 fileAccess::tildeToPath 來進行轉換.
                        $callShell=external::callShell($conf["external::callShell"]);
                        unset($conf["external::callShell"]);
                        
                        #若執行shell失敗
                        if($callShell["status"]=="false"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$callShell;
                                
                                #回傳結果
                                return $result;                                 
                                
                                }#if end
                                                        
                        #將舊的資料庫丟棄
                        #函式說明:
                        #移除資料庫,會回傳一個陣列。
                        #回傳結果:
                        #$result["status"],若成功則爲0,失敗則爲1。
                        #$result["error"],錯誤訊息
                        #必填參數:
                        $conf["db"]["dropDatabase"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                        $conf["db"]["dropDatabase"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                        $conf["db"]["dropDatabase"]["dropedDatabaseName"]=$conf["editedDatabaseName"];#爲要移除的資料庫名稱
                        #可省略參數:               
                                
                        #如果 $conf["dbPassword"] 存在
                        if(isset($conf["dbPassword"])){
                                        
                                #設置密碼
                                $conf["db"]["dropDatabase"]["dbPassword"]=$conf["dbPassword"];
                                        
                                }#if end
                                
                        #如果 $conf["dbPort"] 存在
                        if(isset($conf["dbPort"])){
                        
                                #設置密碼
                                $conf["db"]["dropDatabase"]["dbPort"]=$conf["dbPort"];
                        
                                }#if end        
                                                        
                        $dropDbResult=db::dropDatabase($conf["db"]["dropDatabase"]);
                        unset($conf["db"]["dropDatabase"]);
                                
                        #如果舊資料庫丟棄失敗
                        if($dropDbResult["status"]=="false"){
                                        
                                #設置錯誤識別
                                $result["status"]="false";
                                        
                                #設置錯誤訊息
                                $result["error"][]="舊名稱資料庫丟棄失敗";
                                        
                                #回傳結果
                                return $result;
                                        
                                }#if end                                
                        
                        }#if end
                
                #執行到這邊代表執行正確
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function editDatabaseName

        /*
        #函式說明:
        #更改資料表的名稱. 
        #回傳結果:
        #$result["status"],"true"代表執行成功;若失敗會回傳錯誤訊息.
        #$resuly["function"],當前執行的函數名稱.
        #$result["error"],錯誤訊息.
        #$result["sql"],執行的sql字串.
        #必填參數:
        #$conf["editedDataBaseName"],爲要更改的資料表所屬的資料庫名稱.
        $conf["editedDataBaseName"]="";
        #$conf["editedDataTableName"],爲要更改的資料表原始名稱.
        $conf["editedDataTableName"]="";
        #$conf["newDataTableName"],新的資料庫名稱.
        $conf["newDataTableName"]="";
        #$conf["dbAccount"],爲用於連入資料庫server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        #conf["dbAddress"],爲資料庫server的位置.
        $conf["dbAddress"]=$dbAddress;
        #可省略參數:
        #$conf["dbPassword"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function editDataTableName($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("editedDataBaseName","editedDataTableName","newDataTableName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableType"]=array("string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果 $checkResult["passed"]等於"false".
                if($checkResult["passed"]=="false"){
                        
                        #代表參數有錯
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #設定要執行的sql語法
                $sql="rename table ".$conf["editedDataBaseName"].".".$conf["editedDataTableName"]." to ".$conf["editedDataBaseName"].".".$conf["newDataTableName"].";";
                        
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port.
                        
                        }#if end                        
                
                $db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);
                
                #如果 $db["execMysqlQuery"]["status"] 等於 "false".
                if($db["execMysqlQuery"]["status"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$db["execMysqlQuery"]["error"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得執行的sql語法
                $result["sql"]=$db["execMysqlQuery"]["queryString"];
                
                #執行到這邊代表執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function editDataTableName end

        /*
        #函式說明:
        #移除資料庫,會回傳一個陣列。
        #回傳結果:
        #$result["status"],若成功則爲"true",失敗則爲,"false"
        #$result["error"],錯誤訊息.
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        $conf["dbAddress"]=$dbAddress;#爲mysql-Server的位置
        $conf["dbAccount"]=$dbAccount;#爲用於連入mysql-Server時要使用的帳號
        $conf["dropedDatabaseName"]=$dbName;#爲要移除的資料庫名稱
        #可省略參數:               
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function dropDatabase($conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dropedDatabaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果 $checkResult["passed"] 等於 "fasle"
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查要移除的資料庫爲系統資料庫
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同
                #回傳結果::
                #$result["status"],"true"表示有找到相同的,"false"表示沒有找到相同的。
                #$result["equalVarName"],相等的變數內容。
                #$result["equalVarPosition"],相同的元素內容其位置爲該陣列元素的第幾個位置。
                #必填參數:
                $conf["search"]["getEqualVar"]["conditionElement"]=$conf["dropedDatabaseName"];#條件元素,要等於的元素內容。
                $conf["search"]["getEqualVar"]["compareElements"]=array("information_schema","mysql","performance_schema");#要比對的陣列變數內容。
                $searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
                unset($conf["search"]["getEqualVar"]);

                #如果檢查失敗
                if($searchResult["status"]=="false"){
                        
                        #設置失敗代碼
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$searchResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #如果要移除的資料庫爲系統資料庫
                if($searchResult["founded"]=="true"){
                        
                        #設置失敗代碼
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]="您不能丟棄系統資料庫";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #丟棄資料庫的sql語法
                $sql="DROP DATABASE ".$conf["dropedDatabaseName"];

                #執行sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表不使用密碼
                        
                        }#if end
                                        
                $db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);

                #如果 $db["execMysqlQuery"]["status"] 等於 "false"
                if($db["execMysqlQuery"]["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$db["execMysqlQuery"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #執行到這邊代表執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function dropDatabase end

        /*
        #函式說明:
        #備份資料庫
        #回傳結果::
        #$result["status"],"true"代表執行正常,"false"代表執行有誤.
        #$result["error"],錯誤訊息陣列.
        #$result["sqlAddress"],sql檔案的位置.
        #$result["function"],當前執行的函數名稱
        #必填參數:
        #$conf["backedDatabaseName"],字串.
        $conf["backedDatabaseName"]=$dbName;#爲要備份的資料庫名稱.
        #$conf["dbAddress"],字串,資料庫的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        #$conf["fileArgu"],字串,php變數__FILE__的內容,亦即該檔案在檔案系統的絕對路徑
        $conf["fileArgu"]=__FILE__;
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["storePlace"],字串,要將輸出檔案儲存到哪邊,預設爲當前目錄.
        #$conf["storePlace"]="";
        #$conf["exportFileName"],字串,要輸出的檔案名稱,預設爲其export
        #$conf["exportFileName"]="export";
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設不使用.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function backupDatabase($conf){

                #原始語法
                # mysqldump --column-statistics=0 -u account --password=Password -Pport --default-character-set=utf8 --events --routines --single-transaction --skip-lock-tables --quick databaseName > "all.sql"

                #初始化要回傳的變數
                $result=array();
                
                #紀錄當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","backedDatabaseName","dbAccount","dbAddress");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳錯誤訊息
                        return $result;
                        
                        }#if end

                #如果檢查不通過
                if($checkResult["passed"]=="false"){

                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳錯誤訊息
                        return $result;

                        }#if end
                        
                #檢查要備份的資料庫是否爲系統資料庫
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同
                #回傳結果::
                #$result["status"],"true"表示有找到相同的,"false"表示沒有找到相同的。
                #$result["error"],錯誤訊息
                #$result["equalVarName"],相等的變數內容。
                #$result["equalVarPosition"],相同的元素內容其位置爲該陣列元素的第幾個位置。
                #必填參數:
                $conf["search"]["getEqualVar"]["conditionElement"]=$conf["backedDatabaseName"];#條件元素,要等於的元素內容。
                $conf["search"]["getEqualVar"]["compareElements"]=array("information_schema","mysql","performance_schema");#要比對的陣列變數內容。
                $searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
                unset($conf["search"]["getEqualVar"]);

                #如果檢查失敗
                if($searchResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$searchResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果要備份的資料庫爲系統資料庫
                if($searchResult["founded"]=="true"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]="您不能備份系統資料庫";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #初始化連線的密碼
                $dbPassword="";
        
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){

                        #令存密碼
                        $dbPassword=$conf["dbPassword"];

                        #設置其連線密碼
                        $conf["dbPassword"]="-p".$conf["dbPassword"];

                        }#if end

                #反之
                else{

                        #設爲空值
                        $conf["dbPassword"]="";

                        }#else end
                
                #如果 $conf["storePlace"] 沒有設置
                if(!isset($conf["storePlace"])){

                        #將其設爲空值
                        $conf["storePlace"]="";

                        }#if end
                
                #反之有設定且結尾不為 "/"
                else if($conf["storePlace"][strlen($conf["storePlace"])-1]!=="/"){
                
                        #在其路徑後方加上 /
                        $conf["storePlace"]=$conf["storePlace"]."/";

                        }#if end

                #如果 $conf["exportFileName"] 沒有設置
                if(!isset($conf["exportFileName"])){

                        #設置預設名稱
                        $conf["exportFileName"]="export.sql";

                        }#if end

                #反之有設定
                else{

                        #名稱結尾加上 .sql
                        $conf["exportFileName"]=$conf["exportFileName"].".sql";

                        }#else end

                #檢查資料庫是否存在
                #函式說明:
                #檢查該資料庫是否存在,結果會回傳一個陣列。
                #回傳結果:
                #$result["status"],設置執行錯誤.
                #$result["error"],錯誤訊息.
                #$result["exist"],有為"true",無為"false".
                #$result["function"],當前執行的函數名稱.
                #必填的參數
                $conf["db::checkDataBaseExists"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db::checkDataBaseExists"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db::checkDataBaseExists"]["checkDataBaseName"]=$conf["backedDatabaseName"];#爲要檢查是否存在的資料庫名稱
                #可省略參數
                
                #如果密碼不為""
                if($dbPassword!=""){
                        
                        $conf["db::checkDataBaseExists"]["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果有設置 $conf["dnPort"]
                if(isset($conf["dbPort"])){
                
                        $conf["db::checkDataBaseExists"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                        
                $checkDataBaseExists=db::checkDataBaseExists($conf["db::checkDataBaseExists"]);
                unset($conf["db::checkDataBaseExists"]);

                #如果檢查資料庫是否存在失敗
                if($checkDataBaseExists["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkDataBaseExists;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果資料庫不存在
                if($checkDataBaseExists["exist"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkDataBaseExists;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #若有設置port
                if(isset($conf["dbPort"])){
                
                        #指定port
                        $port="-P".$conf["dbPort"];
                
                        }#if end
                
                #反之
                else{
                        #設置為空
                        $port="";
                        
                        }#else end

                #透過以下指令判斷是否支援 --column-statistics 參數
                #mysqldump --help | grep "\--column-statistics" | wc -l
                #函式說明:
                #呼叫shell執行系統命令,並取得回傳的內容.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函數名稱.
                #$result["argu"],使用的參數.
                #$result["cmd"],執行的指令內容.
                #$result["fullCmd"],如果參數 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["output"],爲執行完二元碼後的輸出陣列,若 $conf["inBackGround"] 為 "true",則為當下的輸出.
                #$result["tmpFileOutput"],儲存輸出的暫存檔案名稱,若 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["running"],是否還在執行.
                #$result["pid"],pid.
                #$result["statusCode"],執行結束後的代碼.
                #必填參數:
                #$conf["command"],字串,要執行的指令與.
                $conf["external::callShell"]["command"]="mysqldump";
                #$conf["fileArgu"],字串,變數__FILE__的內容.
                $conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
                #可省略參數:
                #$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
                $conf["external::callShell"]["argu"]=array("--help","|","grep","\--column-statistics","|","wc","-l");
                #$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
                #$conf["arguIsAddr"]=array();
                #$conf["plainArgu"],字串陣列,哪幾個參數不要加上"".
                #$conf["external::callShell"]["plainArgu"]=array("true","true","true","false","true","true","true");
                #$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
                #$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
                #$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
                #$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
                #$conf["enablePrintDescription"]="true";
                #$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
                #$conf["printDescription"]="";
                #$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
                $conf["external::callShell"]["escapeshellarg"]="true";
                #$conf["username"],字串,要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
                #$conf["username"]="";
                #$conf["password"],字串,root的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
                #$conf["password"]="";
                #$conf["useScript"],字串,是否要啟用Linux的script指令來記錄輸出,"true"代表要,Fedora的selinux會擋住該操作;"false"代表不要,預設為"false".
                #$conf["useScript"]="";
                #$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 "/tmp/.qbpwcf_tmp/external/callShell/".
                #$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
                #$conf["inBackGround"],字串,是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用「;」區隔的多個指令將會出錯.
                #$conf["inBackGround"]="";
                #$conf["getErr"],字串,"true"代表將錯誤輸出變成標準輸出,反之"false"為不變動.
                #$conf["getErr"]="false";
                #備註:
                #不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
                #參考資料:
                #exec=>http://php.net/manual/en/function.exec.php
                #escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
                #escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
                $callShell=external::callShell($conf["external::callShell"]);
                unset($conf["external::callShell"]);
                
                #如果執行shell失敗
                if($callShell["status"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$callShell;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #初始化參數
                $conf["external::callShell"]["argu"]=array();

                #如果支援 --column-statistics 參數
                if($callShell["output"][0]==="1"){
                
                        #增加參數
                        $conf["external::callShell"]["argu"][]="--column-statistics=0";
                
                        }#if end

                #輸出資料庫sql檔案               
                #函式說明:
                #呼叫shell執行系統命令,並取得回傳的內容.
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["error"],錯誤訊息陣列.
                #$result["function"],當前執行的函數名稱.
                #$result["argu"],使用的參數.
                #$result["cmd"],執行的指令內容.
                #$result["fullCmd"],如果參數 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["output"],爲執行完二元碼後的輸出陣列,若 $conf["inBackGround"] 為 "true",則為當下的輸出.
                #$result["tmpFileOutput"],儲存輸出的暫存檔案名稱,若 $conf["inBackGround"] 為 "true" 則會回傳該值.
                #$result["running"],是否還在執行.
                #$result["pid"],pid.
                #$result["statusCode"],執行結束後的代碼.
                #必填參數:
                #$conf["command"],字串,要執行的指令與.
                $conf["external::callShell"]["command"]="mysqldump";
                #$conf["fileArgu"],字串,變數__FILE__的內容.
                $conf["external::callShell"]["fileArgu"]=$conf["fileArgu"];
                #可省略參數:
                #$conf["argu"],陣列字串,指令搭配的參數,預設為空陣列.
                $conf["external::callShell"]["argu"][]="-u";
                $conf["external::callShell"]["argu"][]=$conf["dbAccount"];
                $conf["external::callShell"]["argu"][]=$conf["dbPassword"];
                $conf["external::callShell"]["argu"][]="-h";
                $conf["external::callShell"]["argu"][]=$conf["dbAddress"];
                
                #如果有指定 port
                if($port!==""){
                
                        #設置port
                        $conf["external::callShell"]["argu"][]=$port;
                
                        }#if end

                $conf["external::callShell"]["argu"][]="--default-character-set=utf8";
                $conf["external::callShell"]["argu"][]="--events";
                $conf["external::callShell"]["argu"][]="--routines";
                $conf["external::callShell"]["argu"][]="--single-transaction";
                $conf["external::callShell"]["argu"][]="--skip-lock-tables";
                $conf["external::callShell"]["argu"][]="--quick";
                $conf["external::callShell"]["argu"][]=$conf["backedDatabaseName"];
                $conf["external::callShell"]["argu"][]=">";
                $conf["external::callShell"]["argu"][]=$conf["storePlace"].$conf["exportFileName"];
                #$conf["arguIsAddr"],陣列字串,指令搭配的哪些參數為路徑,為路徑的參數會進行轉換以便符合呼叫當前函數的位置,預設不指定,若有3個參數,其中第3個參數為路徑,則表示為array("false","false","true").
                #$conf["arguIsAddr"]=array();
                #$conf["pre"],陣列,要在本指令前執行的每個指令與參數.
                #$conf["pre"][$i]["cmd"],字串,要在本指令前執行的第$i+1個指令.
                #$conf["pre"][$i]["param"],陣列字串,要在本指令前執行的第$i+1個指令的參數.
                #$conf["enablePrintDescription"],字串,是否要印出$conf["printDescription"]的內容,"true"代表要,"false"代表不要,預設為"false".
                #$conf["enablePrintDescription"]="true";
                #$conf["printDescription"],字串,執行該外部程式前要印出來的的文字,預設為$conf["command"]的內容加上使用的$conf["argu"]參數.
                #$conf["printDescription"]="";
                #$conf["escapeshellarg"],字串,是否要啟用過濾參數,用了比較安全,但可能會出錯,"true"為啟用,"false"為不啟用,預設為"false".
                $conf["external::callShell"]["escapeshellarg"]="true";
                #$conf["username"],字串,要用什麼使用者來執行,預設為執行php的使用者,該參數不適用於apache環境.
                #$conf["username"]="";
                #$conf["password"],字串,root的使用者密碼,預設不使用密碼,該參數不適用於apache環境.
                #$conf["password"]="";
                #$conf["useScript"],字串,是否要啟用Linux的script指令來記錄輸出,"true"代表要,Fedora的selinux會擋住該操作;"false"代表不要,預設為"false".
                #$conf["useScript"]="";
                #$conf["logFilePath"],字串,當 $conf["useScript"] 為 "true" 時,輸出的內容要暫存到哪裡,預設為 "/tmp/.qbpwcf_tmp/external/callShell/".
                #$conf["logFilePath"]=".qbpwcf_tmp/external/callShell/";
                #$conf["inBackGround"],字串,是否要在背景執行,且不會等待程式執行結束再執行下一個指令,"true"代表是,"false"代表不要,預設為"false",如果$conf["command"]有用「;」區隔的多個指令將會出錯.
                #$conf["inBackGround"]="";
                #$conf["getErr"],字串,"true"代表將錯誤輸出變成標準輸出,反之"false"為不變動.
                #$conf["getErr"]="false";
                #備註:
                #不是所有指令都能用apache的身份執行,目前已知java,javac指令無法執行,使用root身份可能會被selinux阻擋.
                #參考資料:
                #exec=>http://php.net/manual/en/function.exec.php
                #escapeshellcmd=>http://php.net/manual/en/function.escapeshellcmd.php
                #escapeshellarg=>http://php.net/manual/en/function.escapeshellarg.php
                $callShell=external::callShell($conf["external::callShell"]);
                unset($conf["external::callShell"]);
                
                #如果執行shell失敗
                if($callShell["status"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$callShell;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #設置產生的sql檔案位置
                $result["sqlAddress"]=$conf["storePlace"].$conf["exportFileName"];

                #設置執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;

                }#function backupDatabase end
                
        /*
        #函式說明:
        #移除表,會回傳一個陣列。
        #回傳結果:
        #$result["status"],若成功則爲"true",失敗則爲,"false"
        #$result["error"],錯誤訊息.
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        $conf["selectedDatabaseName"],字串,爲要移除的資料表位於哪個資料庫
        $conf["selectedDatabaseName"]=$dbName;
        $conf["dropedDataTableName"],字串,爲要移除的資料表名稱
        $conf["dropedDataTableName"]=$tableName;#爲要移除的資料表名稱
        #可省略參數:               
        #$conf["dbPassword"],字串.爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function dropDataTable($conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDatabaseName","dropedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果檢查不正常
                if($checkResult["status"]=="false"){
                        
                        #設置執行錯誤
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果:
                        return $result;
                        
                        }#if end

                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行錯誤
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果:
                        return $result;
                        
                        }#if end
                        
                #建立移除資料表的sql語言
                $sql="drop table ".$conf["selectedDatabaseName"].".".$conf["dropedDataTableName"].";";
                        
                #函式說明:
                #執行mysql查詢的指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果有設定密碼
                if(isset($conf["dbPassword"])){
                
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                        
                #如果有設定 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        #設置 $conf["dbPort"]
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                $queryResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);

                #如果移除資料表失敗
                if($queryResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$queryResult["error"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #設置執行成功的訊息
                $result["status"]="true";

                #回傳結果
                return $result;

                }#funcotion dropDataTable end

        /*
        #函式說明:
        #查詢所有的資料庫列表,會回傳查詢的結果
        #回傳結果:
        #$result["status"],執行是否正常,"true"為正常,"fasle"為不正常
        #$result["error"],爲錯誤訊息
        #$result["function"],當前執行的函數名稱
        #$result["dbName"] 爲查詢的資料庫名稱陣列,第一筆資料庫名稱爲$result["dbName"][0],第二筆資料庫名稱爲$result["dbName"][1],其餘以此類推。
        #$result["dbCounts"] 爲資料庫的總筆數   
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function getDataBaseList($conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                #備註:
                #功能與checkExistAndType函式相同
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果 $checkResult["passed"]等於"fasle"
                if($checkResult["passed"]=="fasle"){
                        
                        #設置錯誤識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end 

                #連線到mysql-server
                #函式說明:
                #連線到mysql-server,會回傳一個陣列
                #回傳結果:
                #$result["status"],若連線成功則爲"true",連線失敗則爲"false"。
                #$result["connectInformation"],爲回傳的mysql連線資訊。
                #$result["error"],爲錯誤訊息陣列
                #必填參數:
                $conf["db"]["mysqlConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
                $conf["db"]["mysqlConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
                #可省略參數:
                
                #如果有設置 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["mysqlConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        
                        }#if end
                
                #如果有設置 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        $conf["db"]["mysqlConnect"]["dbPort"]=$conf["dbPort"];#連線時用的port.
                
                        }#if end
                
                $con=db::mysqlConnect($conf["db"]["mysqlConnect"]);
                unset($conf["db"]["mysqlConnect"]);
        
                #如果 $con["status"] 等於 "fasle"
                if($con["status"]=="fasle"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$con;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
        
                #執行列出資料庫列表的SQL語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["function"],當前執行的涵式
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db::execMysqlQuery"]["dbSql"]="show databases;";#要執行sql語法
                #可省略參數: 
                
                #如果存在 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                
                        $conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                        
                #如果存在 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        $conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                
                $execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
                unset($conf["db::execMysqlQuery"]);

                #如果執行SQL語法失敗
                if($execMysqlQuery["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$execMysqlQuery;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #設定 $i 的初始值
                $times=0;

                #逐筆解析內容
                while($row=mysqli_fetch_assoc($execMysqlQuery["queryResource"])) {
                
                        #將結果存進 $fetchResult[$times]           
                        $fetchResult[$times]= $row['Database'];

                        #$times + 1 (計數用)
                        $times++;
                        
                        }#while end

                #取得每筆資料內容(資料庫的名稱)
                $result["dbName"]=$fetchResult;

                #取得總共的資料筆數
                $result["dbCounts"]=$times;
                
                #執行到這邊代表執行成功
                $result["status"]="true";
                
                #回傳查詢的結果 $result
                return $result;

                }#function getDataBaseList end

        /*
        #函式說明:
        #查詢特定資料庫裡的資料表列表,會回傳查詢的結果
        #回傳結果:
        #$result["status"],執行是否成功,"true"代表執行成功;"false"代表執行失敗。
        #$result["error"],執行錯誤的訊息.
        #$result["function"],當前執行的函式名稱.
        #$result["connectInformation"],爲回傳的mysql連線資訊。
        #$result["tableName"] 爲查詢的資料庫名稱陣列,
                #第一筆資料庫名稱爲$result["tableName"][0],
                #第二筆資料庫名稱爲$result["tableName"][1],
                #其餘以此類推。
        #$result["dataCounts"] 爲資料表的總筆數
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        $conf["selectedDataBaseName"],字串,爲指定的資料庫名稱
        $conf["selectedDataBaseName"]=$dbName;
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #原始語法,show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
        */
        public static function getDataTableList($conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
        
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]);

                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤訊息識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳錯誤結果
                        return $result;
                        
                        }#if end

                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤訊息識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳錯誤結果
                        return $result;
                        
                        }#if end
                        
                #要執行的 sql 語句
                $sql="show tables FROM ".$conf["selectedDataBaseName"].";";

                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db.execMysqlQuery"]["dbSql"]=$sql;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        #$conf["db.execMysqlQuery"]["dbPassword"]=$dbPassword;#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        $conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                
                        }#if end
                
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                
                        #設置 dbPort
                        $conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                $queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
                unset($conf["db.execMysqlQuery"]);

                #如果執行sql語法失敗
                if($queryResult["status"]=="false"){
                        
                        #設置執行不正常
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #將查詢的結果放進$queryResult裏面
                $queryResult=$queryResult["queryResource"];

                #debug
                #var_dump($queryResult);
        
                #設定 $times 的初始值
                $times=0;

                #初始化解析的內容儲存的地方
                $fetchResult=array();

                #逐筆解析內容
                while ($row = mysqli_fetch_assoc($queryResult)) {
                
                        #將結果存進 $result[$i]                    
                        $fetchResult[$times]= $row["Tables_in_".$conf["selectedDataBaseName"]];

                        #$times + 1 (計數用)
                        $times++;

                        #debug
                        #var_dump($row);

                        }#while end
                        
                #取得每筆資料內容(資料表的名稱)
                $result["tableName"]=$fetchResult;

                #取得總共的資料筆數
                $result["dataCounts"]=$times;

                #設置執行成功的識別
                $result["status"]="true";

                #回傳查詢的結果 $result
                return $result;
                
                }#function getDataTableList end

        /*
        #函式說明:
        #取得資料表所有欄位的詳細資訊
        #回傳的內容:
        #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
        #$result["error"],錯誤訊息陣列
        #$result["function"],當前執行的函數名稱.
        #$result["sql"],執行的sql語法
        #$result["oriInput"],原始的資料表欄位資訊
        #$result["everyLine"],逐行的欄位資訊
        #$result["tableName"],當前查詢的資料表名稱
        #$result["engine"],資料表使用的儲存引擎
        #$result["charset"],資料表預設的編碼
        #$result["columnName"][$i],各欄位的名稱陣列,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲1開始的數字,也可以使用欄位的名稱.
        #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲1開始的數字,也可以使用欄位的名稱.
        #$result["columnNotNull"][$i],各欄位是否不可爲null,"true"爲不可以爲null;"false"爲可爲"null",$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["columnCollate"][$i],各欄位使用的Collate,$i爲1開始的數字,也可以使用欄位的名稱。
        #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
        #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
        #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲1開始的數字,也可以使用欄位的名稱。
        #$result["primaryKey"],該資料表的主鍵
        #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
        #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
        #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
        #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲1開始的數字,,也可用欄位的名稱來找value.
        #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲1開始的數字,也可用欄位的名稱來找value.
        #$result["foreignKey"]["onUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
        #$result["foreignKey"]["onDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
        #必填參數:
        #$conf["dbAddress"],字串,資料庫的網路位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,連線到資料庫要用的帳號.
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBase"],字串,連線到資料庫要選擇的資料庫.
        $conf["selectedDataBase"]=$dbName;
        #$conf["selectedDataTable"],字串,連線到資料庫要檢視的資料表.
        $conf["selectedDataTable"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,連線到資料庫要用的密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #查詢的功能有點弱,目前用getTableColumnDetailInfo替代
        */
        public static function getDataTableColumn($conf){
                
                return db::getTableColumnDetailInfo($conf);
                
                }#function getDataTableColumn end
        
        /*
        #函式說明:
        #取得資料表內特定欄位的資訊
        #回傳的內容:
        #$result["status"],"true"代表執行成功;"false"代表執行失敗.
        #$result["error"],錯誤訊息.
        #$result["function"],當前執行的函數名稱.
        #$result["columnInfo"]["name"],欄位的名稱.
        #$result["columnInfo"]["type"],欄位的儲存型態.
        #$result["columnInfo"]["length"],欄位的長度限制.
        #$result["columnInfo"]["null"],欄位是否可以為null.
        #$result["columnInfo"]["key"],索引鍵的名稱.
        #$result["columnInfo"]["keyType"],欄位的鍵屬性.
        #$result["columnInfo"]["foreignKeyConstraintName"],外建的名稱
        #$result["columnInfo"]["referencesTable"],外鍵參考的資料表.
        #$result["columnInfo"]["referencesColumn"],外鍵參考的資料表欄位.
        #$result["columnInfo"]["onUpdateAction"],當參考的欄位更新時,要怎麼因應.
        #$result["columnInfo"]["onDeleteAction"],當參考的欄位資料消失時,要怎麼因應.
        #$result["columnInfo"]["default"],欄位的預設內容.
        #$result["columnInfo"]["columnCharacterSet"],欄位的字元集.
        #$result["columnInfo"]["columnCollate"],欄位的校對編碼.
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        $conf["dbName"]=$dbName;#爲指定的資料庫名稱
        $conf["dtName"]="";#為要檢視的資料表名稱
        $conf["columnName"],字串,為要檢視的資料欄位名稱
        $conf["columnName"]="";#為要檢視的資料欄位名稱
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,預設為3306.
        #$conf["dbPort"]="3306";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function getDataTableSpecificColumn(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["variableCheck::checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","dtName","columnName");
                #$conf["variableCheck::checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","string");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);  
                
                #如果檢查失敗 
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行失敗訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查沒有通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行失敗訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得所有的欄位資訊
                #函式說明:
                #取得資料表所有欄位的詳細資訊
                #回傳的內容:
                #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                #$result["error"],錯誤訊息陣列
                #$result["function"],當前執行的函數名稱.
                #$result["sql"],執行的sql語法
                #$result["oriInput"],原始的資料表欄位資訊
                #$result["everyLine"],逐行的欄位資訊
                #$result["tableName"],當前查詢的資料表名稱
                #$result["engine"],資料表使用的儲存引擎
                #$result["charset"],資料表預設的編碼
                #$result["columnName"][$i],各欄位的名稱陣列,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲1開始的數字,也可以使用欄位的名稱.
                #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲1開始的數字,也可以使用欄位的名稱.
                #$result["columnNotNull"][$i],各欄位是否不可爲null,"true"爲不可以爲null;"false"爲可爲"null",$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnCollate"][$i],各欄位使用的Collate,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲1開始的數字,也可以使用欄位的名稱。
                #$result["primaryKey"],該資料表的主鍵
                #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲1開始的數字,,也可用欄位的名稱來找value.
                #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲1開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
                #必填參數:
                $conf["db::getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
                $conf["db::getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
                $conf["db::getTableColumnDetailInfo"]["selectedDataBase"]=$conf["dbName"];#連線到資料庫要選擇的資料庫
                $conf["db::getTableColumnDetailInfo"]["selectedDataTable"]=$conf["dtName"];#連線到資料庫要檢視的資料表
                #可省略參數:
                
                #如果有設定連線密碼
                if(isset($conf["dbPassword"])){
                        
                        $conf["db::getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果有設定連線port
                if(isset($conf["dbPort"])){
                        
                        $conf["db::getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                                
                $queryResult=db::getTableColumnDetailInfo($conf["db::getTableColumnDetailInfo"]);
                unset($conf["db::getTableColumnDetailInfo"]);
                
                #如果查詢失敗
                if($queryResult["status"]=="false"){
                        
                        #設置錯誤
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #var_dump($queryResult);
                        
                #檢查是否有我們要的欄位存在
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同
                #回傳結果::
                #$result["status"],"true"表示執行正確,"false"表示執行錯誤.
                #$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
                #$result["error"],錯誤訊息
                #$result["function"],當前執行的函數名稱
                #$result["equalVarName"],相等的變數名稱或key.
                #$result["equalVarValue"],相等的變數數值內容.
                #必填參數:
                $conf["search"]["getEqualVar"]["conditionElement"]=$conf["columnName"];#條件元素,要等於的元素內容。
                $conf["search"]["getEqualVar"]["compareElements"]=$queryResult["columnName"];#要比對的陣列變數內容。
                $searchResult=search::getEqualVar($conf["search"]["getEqualVar"]);
                unset($conf["search"]["getEqualVar"]);
        
                #如果尋找失敗
                if($searchResult["status"]=="false"){
                        
                        #設置錯誤
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$searchResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
        
                #如果沒有找到符合的欄位明稱
                if($searchResult["founded"]=="false"){
                        
                        #設置錯誤
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]="沒有找到指定的欄位!";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
        
                #取得欄位資訊的key
                $equalVarKey=$searchResult["equalVarName"];
                
                #取得欄位的名稱
                $result["columnInfo"]["name"]=$queryResult["columnName"][$equalVarKey];
                
                #取欄位的儲存型態與長度限制
                $result["columnInfo"]["type"]=$queryResult["columnVarType"][$equalVarKey];
                
                #檢查欄位儲存型態是否含有「(」與「)」
                #函式說明:
                #檢查一個字串裡面是否有多個關鍵字
                #回傳結果::
                #$result["status"],"true"代表執行成功,"false"代表執行失敗。
                #$result["error"],錯誤訊息
                #$result["founded"],是否找到所有的關鍵字,"true"代表有找到關鍵字;"false"代表沒有找到關鍵字。
                #必填參數:
                $conf["search"]["findManyKeyWords"]["keyWords"]=array("(",")");#想要搜尋的關鍵字
                $conf["search"]["findManyKeyWords"]["string"]=$result["columnInfo"]["type"];#要被搜尋的字串內容
                #可省略參數:
                #$conf["search"]["findManyKeyWords"]["completeEqual"]="true";#是否內容要完全符合,不能多出任何不符合的內容,預設為不需要完全符合。
                $searchResult=search::findManyKeyWords($conf["search"]["findManyKeyWords"]);
                unset($conf["search"]["findManyKeyWords"]);
                
                #如果 檢查欄位儲存型態是否含有「(」與「)」 失敗
                if($searchResult["status"]=="false"){
                        
                        #設置錯誤
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$searchResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果欄位儲存型態含有「(」與「)」,則將其從「(」開始分割
                if($searchResult["founded"]=="true"){
                        
                        #函式說明:
                        #將固定格式的字串分開,並回傳分開的結果。
                        #回傳的參數:
                        #$result["oriStr"],要分割的原始字串內容
                        #$result["dataArray"],爲分割好字串的陣列內容,$result["dataArray"][$i]爲第($i+1)段的內容。
                        #$result["dataCounts"],爲總共分成幾段
                        #必填參數:
                        $conf["stringProcess"]["spiltString"]["stringIn"]=$result["columnInfo"]["type"];#要處理的字串。
                        $conf["stringProcess"]["spiltString"]["spiltSymbol"]="(";#爲以哪個符號作爲分割
                        $spiltedStr=stringProcess::spiltString($conf["stringProcess"]["spiltString"]);
                        unset($conf["stringProcess"]["spiltString"]);
                        
                        #如果分割字串失敗
                        if($spiltedStr["status"]=="false"){
                                
                                #設置錯誤
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$spiltedStr;
                                
                                #回傳結果
                                return $result;
                                                                
                                }#if end
                        
                        #取得欄位型態
                        $result["columnInfo"]["type"]=$spiltedStr["dataArray"][0];
                        
                        }#if end 
                
                #取得欄位長度限制
                $result["columnInfo"]["length"]=$queryResult["columnVarLengthLimit"][$conf["columnName"]];
                
                #取得欄位是否可以為null
                $result["columnInfo"]["null"]=$queryResult["columnNotNull"][$conf["columnName"]];
                
                #如果該欄位有key的名稱
                if(isset($queryResult["key"][$conf["columnName"]])){
                        
                        #該欄位為index key
                        $result["columnInfo"]["keyType"]="index key";
                        
                        #取得欄位的鍵名稱
                        $result["columnInfo"]["key"]=$queryResult["keyConstraintName"];
                        
                        }#if end
                
                #如果該欄位是foreignKey
                if(isset($queryResult["foreignKey"]["constraintName"][$conf["columnName"]])){
                        
                        #該欄位為foreign key
                        $result["columnInfo"]["keyType"]="foreign key";
                        
                        #取得外鍵的名稱
                        $result["columnInfo"]["foreignKeyConstraintName"]=$queryResult["foreignKey"]["constraintName"][$conf["columnName"]];
                        
                        #取得外鍵參考的資料表
                        $result["columnInfo"]["referencesTable"]=$queryResult["foreignKey"]["referencesTable"][$conf["columnName"]];
                        
                        #取得外按鍵參考的欄位
                        $result["columnInfo"]["referencesColumn"]=$queryResult["foreignKey"]["referencesColumn"][$conf["columnName"]];
                        
                        #當參考的欄位更新時,要怎麼因應
                        $result["columnInfo"]["onUpdateAction"]=$queryResult["foreignKey"]["onUpdateAction"][$conf["columnName"]];
                        
                        #當參考的欄位資料消失時,要怎麼因應
                        $result["columnInfo"]["onDeleteAction"]=$queryResult["foreignKey"]["onDeleteAction"][$conf["columnName"]];
                        
                        }#if enb
                
                #取得欄位的預設內容
                $result["columnInfo"]["default"]=$queryResult["columnDefault"][$conf["columnName"]];
                
                #取得欄位的字元集
                $result["columnInfo"]["columnCharacterSet"]=$queryResult["columnCharacterSet"][$conf["columnName"]];
                
                #取得欄位的校對編碼設定
                $result["columnInfo"]["columnCollate"]=$queryResult["columnCollate"][$conf["columnName"]];
                
                #設置執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function getDataTableSpecificColumn end

        /*
        #函式說明:
        #檢查資料庫裏的資料表有無指定條件的資料
        #回傳結果::
        #$result["status"],執行是否成功,成功為"true",失敗為"false"。
        #$result["error"],錯誤訊息  
        #$result["founded"],是否找到資料,"true"代表有符合的資料;"false"代表沒有符合的資料.             
        #$result["sql"],執行的sql字串.
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        $conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]="";
        $conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]="";
        $conf["selectedDataBaseName"],字串,爲指定的資料庫名稱,欲選擇的資料庫名稱
        $conf["selectedDataBaseName"]="";
        $conf["selectedDataTableName"],字串,欲選擇的資料表名稱
        $conf["selectedDataTableName"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #$conf["conditionTargetName"],字串陣列,用來判斷的資料表數值名稱,需爲陣列,可省略
        #$conf["conditionTargetName"]=array("");
        #$conf["conditionTargetValue"],字串陣列,用來判斷的資料表數值名稱若等於該數值,表示條件成立,需爲陣列,可省略
        #$conf["conditionTargetValue"]=array("");
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function checkDataExists($conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                #備註:
                #功能與checkExistAndType函式相同
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查沒有通過
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #如果 $conf["conditionTargetName"] 有設定
                if(isset($conf["conditionTargetName"])){

                        #如果其形態不爲 array
                        if(gettype($conf["conditionTargetName"])!="array"){

                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]="\$conf[\"conditionTargetName\"]須爲陣列值";
                                
                                #回傳結果
                                return $result;

                                }#if end

                        }#if end

                #如果 $conf["conditionTargetValue"] 有設定
                if(isset($conf["conditionTargetValue"])){

                        #如果其形態不爲 array
                        if(gettype($conf["conditionTargetValue"])!="array"){

                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]="\$conf[\"conditionTargetValue\"]須爲陣列值";
                                
                                #回傳結果
                                return $result;

                                }#if end

                        }#if end

                #函式說明:
                #一次取得資料庫、表的資料
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                #$result["error"],錯誤訊息陣列。
                #$result["dataContent"],爲資料的內容。
                #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                        #$dataSetNum 爲第$dataSetNum+1筆資料
                        #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                #$result["dataCount"],爲取得的資料筆數。
                #必填參數:
                $conf["db"]["fastGetDbData"]["dbAddress"]=$conf["dbAddress"];#爲dbServer的位置。
                $conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
                $conf["db"]["fastGetDbData"]["dbName"]=$conf["selectedDataBaseName"];#爲要存取的資料庫名稱
                $conf["db"]["fastGetDbData"]["tableName"]=$conf["selectedDataTableName"];#爲要存取的資料表名稱
                $conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["conditionTargetName"];#你想要的欄位!
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設置
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
                        
                        }#if end
                                        
                $conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["conditionTargetName"];#用於判斷語句的欄位項目陣列。
                $conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["conditionTargetValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                #$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                #$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                #$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                #$conf["db"]["fastGetDbData"]["orderItem"]="";#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                #$conf["db"]["fastGetDbData"]["ascORdesc"]="";#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                #$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
                #$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
                #$conf["db"]["fastGetDbData"]["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
                $dataResult=db::fastGetDbData($conf["db"]["fastGetDbData"]);
                unset($conf["db"]["fastGetDbData"]);

                #如果查詢資料失敗
                if($dataResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$dataResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #取得執行的sql字串
                $result["sql"]=$dataResult["sql"];

                #如果 $dataResult["status"] 等於"false"
                if($dataResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$dataResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果$dataResult["dataCount"]沒設定,就表示沒找到相符的資料
                if(!isset($dataResult["dataCount"])){
                        
                        #設置錯誤識別
                        $result["status"]="true";
                        
                        #設置沒有找到符合資料
                        $result["founded"]="false";
                                                
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果符合的資料等於0
                if($dataResult["dataCount"]==0){
                        
                        #設置錯誤識別
                        $result["status"]="true";
                        
                        #設置沒有找到符合資料
                        $result["founded"]="false";
                                                
                        #回傳結果
                        return $result;
                        
                        }#if end

                #執行到這邊代表執行成功
                $result["status"]="true";

                #設置有找到符合資料
                $result["founded"]="true";

                #回傳結果
                return $result;

                }#function checkDataExists

        /*
        #函式說明:
        #檢查資料表是否存在
        #回傳結果::
        #設置執行錯誤的識別
        #$result["status"],"true"代表執行成功;"false"代表執行失敗.
        #$result["error"],錯誤訊息.
        #$result["founded"],是否有有找到相同的,"true"代表有找到符合的資料;"false"代表沒有符合的資料.
        #$result["function"],當前執行的函數名稱.
        #$result["argu"],使用的參數
        #其餘的結果代表參數不正確
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,爲指定的資料庫名稱
        $conf["selectedDataBaseName"]="";
        #$conf["selectedDataTableName"],字串,為要檢查是否存在的資料表名稱
        $conf["selectedDataTableName"]="";
        #可省略參數
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼 
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function checkDataTableExists($conf){
                
                #初始化要回傳的變數
                $result=array();
                
                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;
                
                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
        
                #取得參數
                $result["argu"]=$conf;
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #var_dump($checkResult);
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                                                        
                        }#if end
                        
                #查詢特定資料庫裡的資料表列表,會回傳查詢的結果
                #$result["status"],若成功則爲0,失敗則爲1。
                #$result["error"],錯誤訊息陣列.
                #$result["tableName"] 爲查詢的資料庫名稱陣列,
                        #第一筆資料庫名稱爲$result["tableName"][0],
                        #第二筆資料庫名稱爲$result["tableName"][1],
                        #其餘以此類推。
                #$result["dataCounts"] 爲資料庫的總筆數
                #必填參數:
                $conf["db"]["getDataTableList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["getDataTableList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["getDataTableList"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲指定的資料庫名稱
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        #設定連線時要用的密碼
                        $conf["db"]["getDataTableList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                                
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        #設定連線時要用的密碼
                        $conf["db"]["getDataTableList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end                
                                        
                #原始語法:
                #show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
                $dataTableList=db::getDataTableList($conf["db"]["getDataTableList"]);
                unset($conf["db"]["getDataTableList"]);
                                
                #如果調閱資料表清單出錯
                if($dataTableList["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$dataTableList;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果裡面沒有任何1個資料表
                if($dataTableList["dataCounts"]==0){
                        
                        #設置執行成功的識別
                        $result["status"]="true";
                        
                        #設置有找到相同的
                        $result["founded"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查一個數值是否與陣列裏面的元素相同
                #回傳結果::
                #$result["status"],"true"表示執行正確,"false"表示執行錯誤.
                #$result["founded"],"true"表示有找到相同的,"false"表示沒有找到相同的.
                #$result["error"],錯誤訊息
                #$result["function"],當前執行的函數名稱
                #$result["argv"],使用的參數
                #$result["equalVarName"],相等的變數名稱或key.
                #$result["equalVarValue"],相等的變數數值內容.
                #必填參數:
                $conf["search"]["getEqualVar"]["conditionElement"]=$conf["selectedDataTableName"];#條件元素,要等於的元素內容。
                $conf["search"]["getEqualVar"]["compareElements"]=$dataTableList["tableName"];#要比對的陣列變數內容。
                $checkResult=search::getEqualVar($conf["search"]["getEqualVar"]);
                unset($conf["search"]["getEqualVar"]);

                #如果有找到相同的元素
                if($checkResult["founded"]==="true"){
                        
                        #設置執行成功的識別
                        $result["status"]="true";
                        
                        #設置有找到相同的
                        $result["founded"]="true";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果沒有找到相同的元素
                if($checkResult["founded"]==="false"){

                        #設置執行成功的識別
                        $result["status"]="true";
                        
                        #設置有找到相同的
                        $result["founded"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #不應該執行到這邊
                
                #設置執行失敗
                $result["status"]="false";
                
                #設置執行錯誤
                $result["error"]="不應該出現的例外狀況";
                
                #回傳結果
                return $result;
                
                }#funcrion checkDataTableExists end

        /*
        #函式說明:
        #檢查資料表的欄位是否存在
        #回傳結果::
        #設置執行錯誤的識別
        #$result["function"],當前執行的函數名稱.
        #$result["status"],"true"代表執行成功;"false"代表執行失敗.
        #$result["error"],錯誤訊息.
        #$result["warning"],警告訊息陣列
        #$result["passed"],是否通過檢查,"true"代表通過;"false"代表不通過.
        #其餘的結果代表參數不正確
        #必填參數:
        #$conf["dbAddr"],字串,爲mysql-Server的位置
        $conf["dbAddr"]=$dbAddress; 
        #$conf["dbAcct"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAcct"]=$dbAccount;
        #$conf["dbName"],字串,爲指定的資料庫名稱
        $conf["dbName"]="";
        #$conf["dtName"],字串,為要檢查是否存在的資料表名稱
        $conf["dtName"]="";
        #$conf["col"],字串陣列,要檢查的欄位名稱.
        $conf["col"]=array();
        #可省略參數
        #$conf["dbPass"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼 
        #$conf["dbPass"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function checkTableColExists(&$conf=array()){
                
                #初始化要回傳的結果
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果沒有參數
                if(func_num_args()==0){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"]="函數".$result["function"]."需要參數";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得參數
                $result["argu"]=$conf;

                #如果 $conf 不為陣列
                if(gettype($conf)!=="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";
                        
                        #如果傳入的參數為 null
                        if($conf===null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;      
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbName","dbAcct","dtName","col");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                #$conf["skipableVariableCanNotBeEmpty"]=array();
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass","dbPort");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkArguments["status"]==="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkArguments["error"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if  end
                        
                #如果檢查不通過
                if($checkArguments["passed"]==="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkArguments["error"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if  end
                        
                #函式說明:
                #取得資料表所有欄位的詳細資訊
                #回傳的內容:
                #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                #$result["error"],錯誤訊息陣列
                #$result["function"],當前執行的函數名稱.
                #$result["sql"],執行的sql語法
                #$result["oriInput"],原始的資料表欄位資訊
                #$result["everyLine"],逐行的欄位資訊
                #$result["tableName"],當前查詢的資料表名稱
                #$result["engine"],資料表使用的儲存引擎
                #$result["charset"],資料表預設的編碼
                #$result["columnName"][$i],各欄位的名稱陣列,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲1開始的數字,也可以使用欄位的名稱.
                #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲1開始的數字,也可以使用欄位的名稱.
                #$result["columnNotNull"][$i],各欄位是否不可爲null,"true"爲不可以爲null;"false"爲可爲"null",$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["columnCollate"][$i],各欄位使用的Collate,$i爲1開始的數字,也可以使用欄位的名稱。
                #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲1開始的數字,也可以使用欄位的名稱。
                #$result["primaryKey"],該資料表的主鍵
                #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲1開始的數字,也可以使用欄位的名稱。
                #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲1開始的數字,,也可用欄位的名稱來找value.
                #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲1開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onUpdateAction"][$i],當參照的欄位資料更新時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
                #$result["foreignKey"]["onDeleteAction"][$i],當參照的欄位資料移除時,會怎麼同步,$i爲1開始的數字,也可用欄位的名稱來找value.
                #必填參數:
                $conf["db::getDataTableColumn"]["dbAddress"]=$conf["dbAddr"];#資料庫的網路位置
                $conf["db::getDataTableColumn"]["dbAccount"]=$conf["dbAcct"];#連線到資料庫要用的帳號
                $conf["db::getDataTableColumn"]["selectedDataBase"]=$conf["dbName"];#連線到資料庫要選擇的資料庫
                $conf["db::getDataTableColumn"]["selectedDataTable"]=$conf["dtName"];#連線到資料庫要檢視的資料表
                #可省略參數:
                if(isset($conf["dbPass"])){
                        
                        #$conf["dbPassword"]=$dbPassword;#連線到資料庫要用的密碼
                        $conf["db::getDataTableColumn"]["dbPassword"]=$conf["dbPass"];
                        
                        }#if end
                        
                #如果有設置 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                        
                        #$conf["dbPort"]=$dbPort;#連線到資料庫要用的port
                        $conf["db::getDataTableColumn"]["dbPort"]=$conf["dbPass"];
                        
                        }#if end
                        
                #備註:
                #查詢的功能有點弱,目前用getTableColumnDetailInfo替代
                $getDataTableColumn=db::getDataTableColumn($conf["db::getDataTableColumn"]);
                unset($conf["db::getDataTableColumn"]);
                                
                #如果查詢失敗
                if($getDataTableColumn["status"]==="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$getDataTableColumn["error"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #初始化通過檢查
                $result["passed"]="true";
                
                #針對每個要檢查的欄位
                foreach($conf["col"] as $colName){
                        
                        #如果欄位 $colName 不存在
                        if(!in_array($colName,$getDataTableColumn["columnName"])){
                                
                                #設置欄位不存在的警告訊息
                                $result["warning"][]="欄位 ".$colName." 不存在";
                                
                                #設置未通過檢查
                                $result["passed"]="false";
                                
                                }#if end
                        
                        }#foreach end
                
                #設置執行正常
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function checkTableColExists end

        /*
        #函式說明:
        #檢查該資料庫是否存在,結果會回傳一個陣列。
        #回傳結果:
        #$result["status"],"true"代表執行成功;"false"代表執行失敗.
        #$result["error"],錯誤訊息.
        #$result["exist"],有為"true",無為"false".
        #$result["function"],當前執行的函數名稱.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["checkDataBaseName"],字串,爲要檢查是否存在的資料庫名稱
        $conf["checkDataBaseName"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]="";
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #參考資料:
        #無.
        #備註:
        #無.
        */      
        public static function checkDataBaseExists($conf){

                #初始化要回傳的變數
                $result=array();

                #紀錄當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","checkDataBaseName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                #備註:
                #功能與checkExistAndType函式相同
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                        
                #如果 $checkResult["status"] 等於 "false"
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end        
                        
                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #取得資料庫列表的語法
                #查詢所有的資料庫列表,會回傳查詢的結果
                #$result["status"],執行是否正常,"true"為正常,"fasle"為不正常
                #$result["error"],爲錯誤訊息
                #$result["connectInformation"],爲回傳的mysql連線資訊。
                #$result["dbName"] 爲查詢的資料庫名稱陣列,第一筆資料庫名稱爲$result["dbName"][0],第二筆資料庫名稱爲$result["dbName"][1],其餘以此類推。
                #$result["dbCounts"] 爲資料庫的總筆數   
                #必填參數:
                $conf["db"]["getDataBaseList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["getDataBaseList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["getDataBaseList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["getDataBaseList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306.
                        
                        }#if end
                
                $queryResult=db::getDataBaseList($conf["db"]["getDataBaseList"]);
                unset($conf["db"]["getDataBaseList"]);
                
                #如果 $queryResult["status"] 等於 "fasle"
                if($queryResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$queryResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #有幾個資料庫就檢查該名稱有沒有重複
                for($i=0;$i<$queryResult["dbCounts"];$i++){

                        #檢查名稱是否相同                       
                        if($queryResult["dbName"][$i]==$conf["checkDataBaseName"]){
                        
                                #相同名稱代表資料庫重複
                                $result["exist"]="true";
                                
                                #跳出迴圈
                                break;
                                
                                }#判斷式結束

                        }#迴圈結束

                #如果 $result["exist"] 沒有設定
                if(!isset($result["exist"])){
                        
                        #代表都沒有相同的名稱就代表沒有重複
                        $result["exist"]="false";
                        
                        }#if end
                
                #執行到這邊代表執行正常
                $result["status"]="true";
                
                #回傳結果
                return $result; 
                
                }#function checkDataBaseExists end

        /*
        #函式說明:
        #尋找特定資料庫裏特定資料表裏面特定欄位有無可用整數編號,可以指定數字的起點與終點,此函式會回傳可用的編號。
        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
        #$result["error"],錯誤訊息陣列 
        #$result["function"],當前執行的函數.
        #$result["founded"],爲搜尋可以用的數字是否成功,"true"表示成功,"false"表示失敗.
        #$result["usableNumber"],爲可用的整數。
        #$result["sql"],執行的sql語法.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,爲要檢查的資料庫名稱
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["checkDataTableName"],字串,爲要檢查的資料表名稱
        $conf["checkDataTableName"]="";
        #$conf["conditionTargetName"]字串,用來判斷的資料表數值名稱
        $conf["conditionTargetName"]="";
        #$conf["startPoint"],字串,要執行的迴圈起點(資料的起始檢查點),須為整數.
        $conf["startPoint"]="";
        #$conf["endPoint"],字串,要執行的迴圈終點(資料的結束檢查點),須為整數.
        $conf["endPoint"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #$conf["otherConditionTargetName"]=array();#查詢欄位項目可用數值的其它條件欄位名稱,爲陣列值。須搭配 $conf["otherConditionTargetValue"] 一起使用
        #$conf["otherConditionTargetName"]=array();
        #$conf["otherConditionTargetValue"]=array();#查詢欄位項目可用數值的其它條件欄位數值,爲陣列值。須搭配 $conf["otherConditionTargetName"] 一起使用
        #$conf["otherConditionTargetValue"]=array();
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function findUsableNumber($conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #可用號碼的預設值,用int型態儲存.
                (int)$userableNumber=0;

                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","checkDataTableName","conditionTargetName","startPoint","endPoint");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果 $checkResult["status"] 等於 "false"
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #從$startPoint開始到$endPoint結束,供執行 $endPoint-$startPoint 次。
                for($i=$conf["startPoint"];$i<=$conf["endPoint"];$i++){

                        #更新可用號碼
                        $userableNumber=$i;

                        #查詢目標號碼是否已存在
                        #函式說明:
                        #一次取得資料庫、表的資料
                        #回傳結果:
                        #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                        #$result["error"],錯誤訊息陣列。
                        #$result["dataContent"],爲資料的內容。
                        #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                                #$dataSetNum 爲第$dataSetNum+1筆資料
                                #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                        #$result["dataCount"],爲取得的資料筆數。
                        #$result["sql"],執行的sql字串.
                        #必填參數:
                        $conf["db"]["fastGetDbData"]["dbAddress"]=$conf["dbAddress"];#爲dbServer的位置。
                        $conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
                        $conf["db"]["fastGetDbData"]["dbName"]=$conf["selectedDataBaseName"];#爲要存取的資料庫名稱
                        $conf["db"]["fastGetDbData"]["tableName"]=$conf["checkDataTableName"];#爲要存取的資料表名稱
                        $conf["db"]["fastGetDbData"]["columnYouWant"]=array($conf["conditionTargetName"]);#你想要的欄位!
                        #可省略參數:
                        
                        #如果 $conf["dbPassword"] 有設置
                        if(isset($conf["dbPassword"])){
                                
                                $conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
                                
                                }#if end
                        
                        #如果 $conf["dbPort"] 有設置
                        if(isset($conf["dbPort"])){
                                
                                $conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
                                
                                }#if end
                        
                        #要檢查可用數字的欄位為塞選的欄位
                        $conf["db"]["fastGetDbData"]["WhereColumnName"][]=$conf["conditionTargetName"];
                        
                        #如果 $conf["otherConditionTargetName"] 有設置
                        if(isset($conf["otherConditionTargetName"])){
                                
                                #針對 $conf["otherConditionTargetName"] 的每個元素 
                                foreach($conf["otherConditionTargetName"] as $columnName){
                                        
                                        $conf["db"]["fastGetDbData"]["WhereColumnName"][]=$columnName;#用於判斷語句的欄位項目陣列.
                                        
                                        }#foreach end
                                
                                }#if end
                        
                        #要檢查可用數字的欄位數值為塞選的欄位對應數值
                        $conf["db"]["fastGetDbData"]["WhereColumnValue"][]=$userableNumber;
                                
                        #如果 $conf["otherConditionTargetValue"] 有設置
                        if(isset($conf["otherConditionTargetValue"])){
                        
                                #針對每個 $conf["otherConditionTargetValue"] 元素
                                foreach($conf["otherConditionTargetValue"] as $columnValue){
                                        
                                        $conf["db"]["fastGetDbData"]["WhereColumnValue"][]=$columnValue;#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容.
                                        
                                        }#foreach end
                                        
                                }#if end
                                                
                        #$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                        #$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                        #$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                        #$conf["db"]["fastGetDbData"]["orderItem"]="";#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                        #$conf["db"]["fastGetDbData"]["ascORdesc"]="";#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                        #$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
                        #$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
                        #$conf["db"]["fastGetDbData"]["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
                        $db["fastGetDbData"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
                        unset($conf["db"]["fastGetDbData"]);
                        
                        #如果取得資料失敗
                        if($db["fastGetDbData"]["status"]=="false"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$db["fastGetDbData"];
                                
                                #回傳結果
                                return $result;
                                
                                }#if end

                        #如果該條件下沒有符合的資料
                        if($db["fastGetDbData"]["dataCount"]==0){
                                
                                #取得可用的編號
                                $result["usableNumber"]=$i;

                                #設置有找到符合的數字
                                $result["founded"]="true";

                                #跳出迴圈
                                break;
                                
                                }#if end
                        
                        #反之該條件下有符合的資料
                        else{
                        
                                #設置沒有找到符合的數字
                                $result["founded"]="false";

                                }#else end

                        }#for end

                #執行到這邊代表執行正常
                $result["status"]="true";

                #回傳結果
                return $result;

                }#function findUsableNumber end

        /*
        #函式說明:
        #取得特定的資料表資料
        #回傳的參數:
        #$result["status"],執行結果"true"為成功;"false"為執行失敗。
        #$result["error"],錯誤訊息陣列。
        #$result["function"],當前執行的函數名稱
        #$result["sql"],執行的sql語法
        #$result["sqlQueryResult"]#爲資料連線處理完畢之後的結果,需要 sendQueryDataToVariabele 涵式來解析。
        #$result["dataCount"]#符合條件的資料筆數
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置。
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,要選取的資料庫名稱。
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["selectedDataTableName"],字串,爲欲選擇的資料表名稱。
        $conf["selectedDataTableName"]="";
        #可省略參數:       
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
        #$conf["WhereColumnCombine"]=array("");
        #$conf["WhereColumnName"],字串陣列,用於判斷語句的欄位項目陣列。
        #$conf["WhereColumnName"]=array("");
        #$conf["WhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
        #$conf["WhereColumnOperator"]=array("");
        #$conf["WhereColumnValue"],字串陣列,用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
        #$conf["WhereColumnValue"]=array("");
        #$conf["WhereColumnAndOr"],字串陣列,用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
        #$conf["WhereColumnAndOr"]=array("");
        #$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
        #$conf["whereIn"]=array(array("colName",array("a","b","c")));
        #$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
        #$conf["whereNotIn"]=array(array("colName",array("a","b","c")));
        #$conf["orderItem"],字串,爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
        #$conf["orderItem"]="";
        #$conf["ascORdesc"],字串,爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
        #$conf["ascORdesc"]="";
        #$conf["numberStart"],字串,為從第幾筆開始讀取,預設為0,代筆第一筆。
        #$conf["numberStart"]="0";
        #$conf["number"],字串,為要取幾筆資料,可以省略,省略則表示不限制數目。
        #$conf["number"]="30"
        #$conf["groupBy"],字串陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
        #$conf["groupBy"]=array("");
        #參考資料:
        #http://stackoverflow.com/questions/5021243/mysql-query-multiple-group-by
        #備註:
        #無.
        */
        public static function dataTableSelect(&$conf){

                #初始化要回傳的變數
                $result=array();
                
                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;
                
                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnCombine","WhereColumnName","WhereColumnOperator","WhereColumnValue","WhereColumnAndOr","orderItem","ascORdesc","numberStart","number","groupBy","whereIn","whereNotIn");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array","array","array","array","string","string","string","string","array","array","array");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,"0",null,null,null,null);
                #$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                $conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnName","WhereColumnValue");
                $conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnValue","WhereColumnOperator");
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]==="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]==="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #連線到資料庫
                #函式說明:
                #連線到資料庫,結果會回傳一個陣列
                #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
                #$result["connectInformation"],爲回傳的mysql連線資訊.
                #$result["error"],錯誤訊息.
                #$result["function"],當前執行的函數名稱.
                #必填參數:
                $conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                #$conf["dbName"],字串,爲要連的資料庫名稱
                $conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
        
                $con=db::dbConnect($conf["db"]["dbConnect"]);
                unset($conf["db"]);

                #如果連線到資料庫失敗
                if($con["status"]==="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"]=$con;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #var_dump($con);        
                        
                #取得mysqli物件
                $mysqli=$con["connectInformation"];
                
                #如果 $conf["WhereColumnAndOr"] 沒有設定,但是有指定判斷條件的欄位
                if(!isset($conf["WhereColumnAndOr"])  && isset($conf["WhereColumnName"])){

                        #則$conf["WhereColumnAndOr"]爲有 count($conf["WhereColumnName"])-1 個 "AND" 的字串陣列
                        for($i=0;$i<(count($conf["WhereColumnName"])-1);$i++){

                                $conf["WhereColumnAndOr"][$i]="AND";

                                }#for end
        
                        }#if end

                #如果 $conf["WhereColumnCombine"] 沒有設定,但是有指定判斷條件的欄位
                if(!isset($conf["WhereColumnCombine"])  && isset($conf["WhereColumnName"])){

                        #則 $conf["WhereColumnCombine"] 爲有 count($conf["WhereColumnName"]) 個 "" 的字串陣列
                        for($i=0;$i<count($conf["WhereColumnName"]);$i++){

                                $conf["WhereColumnCombine"][$i]="";

                                }#for end
                
                        }#if end

                #如果 $conf["WhereColumnOperator"] 沒有設定,但是有設定判斷條件的欄位
                if(!isset($conf["WhereColumnOperator"]) && isset($conf["WhereColumnName"])){

                        #則 $conf["WhereColumnOperator"] 爲有 count($conf["WhereColumnName"]) 個 "" 的字串陣列
                        for($i=0;$i<count($conf["WhereColumnName"]);$i++){

                                $conf["WhereColumnOperator"][$i]="=";

                                }#for end

                        }#if end

                #如果 $conf"ascORdesc"] 沒有設定,則不指定遞增或遞減排序
                if(!isset($conf["ascORdesc"])){
        
                        #排序變數爲空字串
                        $conf["ascORdesc"]="";

                        }#if end

                #如果 $conf["number"] 沒設定,則不限定要取幾筆資料
                if(!isset($conf["number"])){

                        #限定筆數爲空字串
                        $queryStringLimit = "";

                        }#if end 

                #如果 $conf["number"] 不爲空,則限定要取出幾筆
                else{
                        
                        #如果 $conf["numberStart"] 有設定
                        if(isset($conf["numberStart"])){
                                
                                $queryStringLimit  = " LIMIT ".$conf["numberStart"]." , ".$conf["number"]." ";
                                
                                }#if end
                                
                        #反之 $conf["numberStart"] 沒有設定
                        else{
                        
                                $queryStringLimit  = " LIMIT 0 , ".$conf["number"]." ";

                                }#else end

                        }#else end

                #如果存在 $conf["orderItem"] 
                if(isset($conf["orderItem"])){

                        #如果排序的依據是 rand() 或 RAND()
                        if($conf["orderItem"] == "rand()" || $conf["orderItem"] == "RAND()"){
        
                                # 依 $order 為排序依據,進行 隨機 排序
                                $queryStringOrder  = " ORDER BY ".$conf["orderItem"]." ".$conf["ascORdesc"]." ";                        

                                }#if end

                        #反之 $order 為排序依據
                        else{
                                
                                #爲 acs 或 desc, 依 $order 為排序依據,進行 asc OR desc 排序
                                $queryStringOrder  = " ORDER BY ".$conf["orderItem"]." ".$conf["ascORdesc"]." "; 

                                }#else end

                        }#if end
                        
                #反之 不存在
                else{
                        
                        #預設為不指定
                        $queryStringOrder="";
                        
                        }#else end

                #如果有設定 $conf["WhereColumnName"] 參數
                if(isset($conf["WhereColumnName"])){

                        #條件判斷的起始語句
                        $conf["whereCondition"]="WHERE ";

                        #有幾個判斷用的欄位就執行幾次
                        for($i=0;$i<count($conf["WhereColumnName"]);$i++){

                                #如果是左掛號
                                if($conf["WhereColumnCombine"][$i]=="("){

                                        $conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnCombine"][$i]." ";
                                        
                                        }#if end

                                #如果欄位數值不是字串,也不是NULL
                                if(gettype($conf["WhereColumnValue"][$i])!=="string" && $conf["WhereColumnValue"][$i]!==NULL){
                                
                                        #設置執行失敗
                                        $result["status"]="false";
                                
                                        #設置執行錯誤
                                        $result["error"][]="WhereColumnValue 參數須為陣列字串";
                                
                                        #回傳結果
                                        return $result;
                                
                                        }#if end

                                #結合各個條件語句
                                $conf["whereCondition"]=$conf["whereCondition"]." `".$conf["WhereColumnName"][$i]."` ";
                                $conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnOperator"][$i]." ";
                                $conf["whereCondition"]=$conf["whereCondition"]." '".mysqli_real_escape_string($mysqli,$conf["WhereColumnValue"][$i])."' ";
                                
                                #如果右掛號
                                if($conf["WhereColumnCombine"][$i]==")"){

                                        $conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnCombine"][$i]." ";
                                        
                                        }#if end

                                #如果不是最後一筆項目,就放置AND or OR
                                if($i<count($conf["WhereColumnName"])-1){

                                        $conf["whereCondition"]=$conf["whereCondition"]." ".$conf["WhereColumnAndOr"][$i]." ";
                                        
                                        }#if end        

                                }#for end                                       
                        
                        }#if end

                #反之,套件變數設爲空字串
                else{

                        $conf["whereCondition"]="";

                        }#else end
                
                #初始化 where in 語句
                $whereIn=" ";

                #如果 $conf["whereIn"] 存在
                if(isset($conf["whereIn"])){
                                                
                        #如果 $conf["whereCondition"] 等於 空
                        if($conf["whereCondition"]!==""){
                                
                                #先加上串接的 AND
                                $whereIn=$whereIn."AND ";
                                
                                }#if end
                                
                        #反之為第一個where條件
                        else{
                                
                                #設置where開頭
                                $whereIn=$whereIn."where ";
                                
                                }#else end
                        
                        #針對每個要用 in 條件判斷的語句
                        for($i=0;$i<count($conf["whereIn"]);$i++){
                                
                                #取得要判斷的欄位
                                $col=$conf["whereIn"][$i][0];
                                
                                #加上 in 的開頭語句
                                $whereIn=$whereIn."`".$col."` in(";
                                
                                #針對每個 in 的值
                                for($j=0;$j<count($conf["whereIn"][$i][1]);$j++){
                                        
                                        #串接條件
                                        $whereIn=$whereIn."'".mysqli_real_escape_string($mysqli,$conf["whereIn"][$i][1][$j])."'";
                                        
                                        #如果不是最後一個條件
                                        if($j!==count($conf["whereIn"][$i][1])-1){
                                                
                                                #後面還有條件
                                                $whereIn=$whereIn.",";
                                                
                                                }#if end
                                                
                                        #反之是最後一個條件
                                        else{
                                                
                                                #後面沒有條件
                                                $whereIn=$whereIn.")";
                                                
                                                }#else end
                                        
                                        }#for end
                                
                                }#for end
                                
                        #如果沒有in的條件
                        if($whereIn===" AND `".$col."` in(" OR $whereIn===" AND " OR $whereIn===" " OR $whereIn===" where "){
                                
                                #設為 ""
                                $whereIn="";
                                
                                }#if end
                        
                        }#if end
                
                #串接 where in 語句
                $conf["whereCondition"]=$conf["whereCondition"].$whereIn;
                        
                #初始化 where not in 語句
                $whereNotIn=" ";        
                        
                #如果 $conf["whereNotIn"] 存在
                if(isset($conf["whereNotIn"])){
                        
                        #如果 $conf["whereCondition"] 等於 空
                        if(str_replace(" ","",$conf["whereCondition"])!==""){
                                
                                #先加上串接的 AND
                                $whereNotIn=$whereNotIn."AND ";
                                
                                }#if end
                                
                        #反之為第一個where條件
                        else{
                                
                                #設置where開頭
                                $whereNotIn=$whereNotIn."where ";
                                
                                }#else end
                        
                        #針對每個要用 in 條件判斷的語句
                        for($i=0;$i<count($conf["whereNotIn"]);$i++){
                                
                                #取得要判斷的欄位
                                $col=$conf["whereNotIn"][$i][0];
                                
                                #加上 in 的開頭語句
                                $whereNotIn=$whereNotIn."`".$col."` not in(";
                                
                                #針對每個 in 的值
                                for($j=0;$j<count($conf["whereNotIn"][$i][1]);$j++){
                                        
                                        #串接條件
                                        $whereNotIn=$whereNotIn."'".mysqli_real_escape_string($mysqli,$conf["whereNotIn"][$i][1][$j])."'";
                                        
                                        #如果不是最後一個條件
                                        if($j!==count($conf["whereNotIn"][$i][1])-1){
                                                
                                                #後面還有條件
                                                $whereNotIn=$whereNotIn.",";
                                                
                                                }#if end
                                                
                                        #反之是最後一個條件
                                        else{
                                                
                                                #後面沒有條件
                                                $whereNotIn=$whereNotIn.")";
                                                
                                                }#else end
                                        
                                        }#for end
                                
                                }#for end
                                
                        #如果沒有in的條件
                        if($whereNotIn===" AND `".$col."` not in(" OR $whereNotIn===" AND " OR $whereNotIn===" " OR $whereNotIn===" where "){
                                
                                #設為 ""
                                $whereNotIn="";
                                
                                }#if end
                        
                        }#if end

                #串接 where not in 語句
                $conf["whereCondition"]=$conf["whereCondition"].$whereNotIn;

                #如果 $conf["groupBy"] 有指定
                if(isset($conf["groupBy"])){

                        #初始化分類語句的字串
                        $groupByQueryStr="GROUP BY ";

                        #設定要以哪些欄位爲分組的依據
                        for($i=0;$i<count($conf["groupBy"]);$i++){
                                
                                #如果不是最後一筆
                                if($i!=count($conf["groupBy"])-1){
                                
                                        #語法裡面含有 , 代表還有其他欄位
                                        $groupByQueryStr=$groupByQueryStr." `".$conf["groupBy"][$i]."` , ";
                                
                                        }#if end
                                
                                #反之是最後一筆資料
                                else{
                                        
                                        #語法結尾沒有 , 代表沒有其他欄位
                                        $groupByQueryStr=$groupByQueryStr." `".$conf["groupBy"][$i]."` ";
                                        
                                        }#else end
                                
                                }#for end
                                
                        #取得分組的語法
                        $conf["groupBy"]=$groupByQueryStr;
                                
                        }#if end

                #如果 $conf["groupBy"] 沒有設定
                else{

                        #則將其設爲空值
                        $conf["groupBy"]="";
        
                        }#else end
                        
                #要執行的sql語法
                $result["sql"]=$queryStringFinal="SELECT * FROM `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` ".$conf["whereCondition"]." ".$conf["groupBy"]." ".$queryStringOrder.$queryStringLimit;

                #執行 SQL 語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["function"],當前執行的涵式
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db::execMysqlQuery"]["dbSql"]=$queryStringFinal;#要執行sql語法
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306.
                        
                        }#if end
                #$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
                $conf["db::execMysqlQuery"]["dbLink"]=$mysqli;                  
                $execMysqlQuery=db::execMysqlQuery($conf["db::execMysqlQuery"]);
                unset($conf["db::execMysqlQuery"]);
                
                #如果執行錯誤
                if($execMysqlQuery["status"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$execMysqlQuery;
                        
                        #回傳錯誤訊息
                        return $result;
                        
                        }#if end

                #取得查詢後的結果
                $result["sqlQueryResult"]=$execMysqlQuery["queryResource"];

                #取得符合條件的資料筆數
                $result["dataCount"]=mysqli_num_rows($execMysqlQuery["queryResource"]);

                #執行到這邊代表執行成功
                $result["status"]="true";

                #回傳查詢的結果; 
                return $result; 

                }#end dataTableSelect

        /*
        #函式說明:
        #解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
        #回傳結果:
        #$result["status"],執行結果"true"為成功;"false"為失敗
        #$result["error"],錯誤訊息
        #$result["function"],儲存當前函數名稱
        #$result["dataColumnName"],為資料欄位的名稱陣列.
        #$result["dataColumnName"][$i]代表第一個欄位名稱.
        #$result["dataContent"],爲資料的內容陣列,第1維度的key為$conf["tableValueName"][$i],亦即第 $i+1 個欄位的名稱,若該欄位不存在,則其value為空字串;第2維度的key為第$i+1筆資料的索引.
        #$result["dataCount"],爲取得的資料筆數.
        #必填參數:
        #$conf["sqlQueryResult"],object,爲執行sql語法所獲得的查詢結果。
        $conf["sqlQueryResult"]="";
        #$conf["tableValueName"],字串陣列,爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
        $conf["tableValueName"]=array();
        #可省略參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置,目前沒有用途.
        #$conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號,目前沒有用途.
        #$conf["dbAccount"]=$dbAccount;
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼,目前沒有用途.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port,目前沒有用途.
        #$conf["dbPort"]="";
        #$conf["valueName"],字串陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
        #$conf["valueName"]=$conf["tableValueName"];
        #參考資料:
        #http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
        #備註:
        #無.
        */
        public static function sendQueryDataToVariabele(&$conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("sqlQueryResult","tableValueName");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("object","array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","valueName","dbAddress","dbAccount");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","string","string");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,"\$conf[\"tableValueName\"]",null,null);
                #$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                $conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("valueName","tableValueName");
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
        
                #給予初始值表示從0筆開始統計
                $dataSetNum=0;

                #取得資料表的欄位數量
                $columnCounts=count($conf["tableValueName"]);

                #初始化識別是否要匯出全部欄位的變數
                $exportAll="false";

                #初始化儲存取得的欄位名稱陣列
                $result["dataColumnName"]=array();

                #如果剛好只有一個元素
                if($columnCounts==1){
                        
                        #如果第一個元素為 "*"
                        if($conf["tableValueName"][0]=="*"){
                                
                                #則代表要全部欄位均匯出.
                                $exportAll="true";
                                
                                #初始化計數的變數
                                $dataSetNum=0;
                                
                                #將讀取到的資料一次只讀取一列
                                while($row = mysqli_fetch_array($conf["sqlQueryResult"])){
                                
                                        #筆數加1
                                        $dataSetNum++;
                                
                                        #針對每個欄位
                                        foreach($row as $columnName => $columnValue){
                                                
                                                #取得欄位的內容並用欄位名稱作為key
                                                $result["dataContent"][$columnName][]=$columnValue;
                                                
                                                #如果 $dataSetNum 等於 1
                                                #亦即第一筆資料
                                                if($dataSetNum==1 && gettype($columnName)!="integer"){

                                                        #取得每個欄位名稱
                                                        $result["dataColumnName"][]=$columnName;

                                                        }#if end

                                                }#foreach end
                                
                                        }#while end
                                        
                                #將資料筆數放進 $result["dataCount"] 裏面
                                $result["dataCount"]=$dataSetNum;
                                
                                }#if end
                        
                        }#if end

                #如果 $exportAll 等於 "fasle" 則代表要根據需求匯出指定的欄位.
                if($exportAll=="false"){

                        #如果 $conf["valueName"] 沒有設置
                        if(!isset($conf["valueName"])){
                                
                                #預設為 $conf["tableValueName"]
                                $conf["valueName"]=$conf["tableValueName"];
                                
                                }#if end
                                
                        #取得每個欄位名稱
                        $result["dataColumnName"]=$conf["tableValueName"];
                                        
                        #將讀取到的資料一次只讀取一列
                        while($row = mysqli_fetch_array($conf["sqlQueryResult"])){

                                #$i筆項列資料,則運行$i次。
                                for($i=0;$i<$columnCounts;$i++){

                                        #如果欄位不存在
                                        if(!isset($row[$conf["tableValueName"][$i]])){
                                                
                                                #將解析的資料內容用空字串替代放進$result["dataContent"]變數裏面
                                                $result["dataContent"][$conf["valueName"][$i]][$dataSetNum] = "";
                                                
                                                }#if end

                                        #將解析的資料內容結果放進$result["dataContent"]變數裏面
                                        $result["dataContent"][$conf["valueName"][$i]][$dataSetNum] = $row[$conf["tableValueName"][$i]];        
                                        
                                        }#for end

                                #資料筆數編號加1
                                $dataSetNum++;  

                                }#while end
                                
                        #將資料筆數放進 $result["dataCount"] 裏面
                        $result["dataCount"]=$dataSetNum;
                                
                        }#if end

                #執行道這邊代表執行成功
                $result["status"]="true";

                #將取得的結果回傳
                return $result;

                }#function sendQueryDataToVariabele end

        /*
        #函式說明:
        #一次取得資料庫、表的資料
        #回傳結果:
        #$result["status"],執行結果"true"為成功;"false"為執行失敗。
        #$result["error"],錯誤訊息陣列。
        #$result["function"],當前執行的漢書名稱.
        #$result["argu"],使用的參數.
        #$result["dataColumnName"],抓取的資料欄位名稱陣列.
                #$result["dataColumnName"][$i]代表第$i+1個欄位名稱
        #$result["dataContent"],爲資料的內容。
        #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                #$dataSetNum 爲第$dataSetNum+1筆資料
                #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
        #$result["dataCount"],爲取得的資料筆數。
        #$result["sql"],執行的sql字串.
        #必填參數:
        #$conf["dbAddress"],字串,爲dbServer的位置。
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲登入dbServer的帳號。
        $conf["dbAccount"]=$dbAccount;
        #$conf["dbName"],字串,爲要存取的資料庫名稱
        $conf["dbName"]=$dbName;
        #$conf["tableName"],字串,爲要存取的資料表名稱
        $conf["tableName"]="";
        #$conf["columnYouWant"],字串陣列,你想要的欄位!,若設為「array("*")」則代表全部欄位.
        $conf["columnYouWant"]=array();
        #可省略參數:
        #$conf["dbPassword"],字串,爲要存取dbServer的密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #$conf["WhereColumnName"],字串陣列,用於判斷語句的欄位項目陣列。
        #$conf["WhereColumnName"]=array("");
        #$conf["WhereColumnValue"],字串陣列,用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
        #$conf["WhereColumnValue"]=array("");
        #$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
        #$conf["WhereColumnCombine"]=array("");
        #$conf["WhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
        #$conf["WhereColumnOperator"]=array("");
        #$conf["WhereColumnAndOr"],字串陣列,用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
        #$conf["WhereColumnAndOr"]=array("");
        #$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
        #$conf["whereIn"]=array(array("colName",array("a","b","c")));
        #$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
        #$conf["whereNotIn"]=array(array("colName",array("a","b","c")));
        #$conf["orderItem"],字串,爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
        #$conf["orderItem"]="";
        #$conf["ascORdesc"],字串,爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
        #$conf["ascORdesc"]="";
        #$conf["numberStart"],字串,為從第幾筆開始讀取,預設為0,代筆第一筆。
        #$conf["numberStart"]="0";
        #$conf["numLimit"],字串,為要取幾筆資料,可以省略,省略則表示不限制數目。
        #$conf["numLimit"]="30";
        #$conf["groupBy"],字串陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
        #$conf["groupBy"]=array("");
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function fastGetDbData(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得使用的
                $result["argu"]=$conf;
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","tableName","columnYouWant");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnName","WhereColumnValue","WhereColumnCombine","WhereColumnOperator","WhereColumnAndOr","orderItem","ascORdesc","numberStart","numLimit","groupBy","whereIn","whereNotIn");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array","array","array","array","string","string","string","string","array","array","array");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null,null,null,null,null,null,"0",null,null,null,null);
                #$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                $conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnName","WhereColumnValue");
                $conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnValue","WhereColumnOperator");
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查失敗
                if($checkResult["status"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行失敗的訊息
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #初始化要檢查的欄位
                $colToCheck=array();

                #如果有指定要的欄位
                if($conf["columnYouWant"]!==array("*")){
                        
                        #針對每個欄位
                        foreach($conf["columnYouWant"] as $col){
                                
                                #取得欄位名稱
                                $colToCheck[]=$col;
                                
                                }#foreach end
                        
                        }#if end
                        
                #如果有設置
                if(isset($conf["WhereColumnName"])){
                        
                        #針對每個欄位
                        foreach($conf["WhereColumnName"] as $col){
                                
                                #取得欄位名稱
                                $colToCheck[]=$col;
                                
                                }#foreach end
                        
                        }#if end
                
                #如果有設置 $conf["whereIn"]
                if(isset($conf["whereIn"])){
                        
                        #針對每個 where in 條件
                        for($i=0;$i<count($conf["whereIn"]);$i++){
                                
                                #取得欄位名稱
                                $colToCheck[]=$conf["whereIn"][$i][0];
                                
                                }#for end
                        
                        }#if end
                        
                #如果要檢查的欄位不是空陣列
                if($colToCheck!==array()){
                        
                        #檢查需要判斷資料表欄位是否存在
                        #函式說明:
                        #檢查資料表的欄位是否存在
                        #回傳結果::
                        #設置執行錯誤的識別
                        #$result["function"],當前執行的函數名稱.
                        #$result["status"],"true"代表執行成功;"false"代表執行失敗.
                        #$result["error"],錯誤訊息.
                        #$result["warning"],警告訊息陣列
                        #$result["passed"],是否通過檢查,"true"代表通過;"false"代表不通過.
                        #其餘的結果代表參數不正確
                        #必填參數:
                        #$conf["dbAddr"],字串,爲mysql-Server的位置
                        $conf["db::checkTableColExists"]["dbAddr"]=$conf["dbAddress"]; 
                        #$conf["dbAcct"],字串,爲用於連入mysql-Server時要使用的帳號
                        $conf["db::checkTableColExists"]["dbAcct"]=$conf["dbAccount"];
                        #$conf["dbName"],字串,爲指定的資料庫名稱
                        $conf["db::checkTableColExists"]["dbName"]=$conf["dbName"];
                        #$conf["dtName"],字串,為要檢查是否存在的資料表名稱
                        $conf["db::checkTableColExists"]["dtName"]=$conf["tableName"];
                        #$conf["col"],字串陣列,要檢查的欄位名稱.
                        $conf["db::checkTableColExists"]["col"]=array_unique($colToCheck);
                        #可省略參數
                        
                        #如果有設置 $conf["dbPassword"]
                        if(isset($conf["dbPassword"])){
                                
                                #$conf["dbPass"],爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼 
                                $conf["db::checkTableColExists"]["dbPass"]=$conf["dbPassword"];
                                
                                }#if end
                                
                        #如果有設置 $conf["dbPort"]
                        if(isset($conf["dbPort"])){
                                
                                #$conf["dbPort"],爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的port 3306 
                                $conf["db::checkTableColExists"]["dbPort"]=$conf["dbPort"];
                                
                                }#if end
                        
                        $checkTableColExists=db::checkTableColExists($conf["db::checkTableColExists"]);
                        unset($conf["db::checkTableColExists"]);
                        
                        #如果檢查失敗
                        if($checkTableColExists["status"]==="false"){
                                
                                #設置執行失敗
                                $result["status"]="false";
                                
                                #設置執行錯誤訊息
                                $result["error"]=$checkTableColExists;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #如果檢查不通過
                        if($checkTableColExists["passed"]==="false"){
                                
                                #設置執行失敗
                                $result["status"]="false";
                                
                                #設置執行錯誤訊息
                                $result["error"]=$checkTableColExists;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        }#if end
                
                #函式說明:
                #dataTableSelectCustom的改良版
                #回傳的參數:
                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                #$result["error"],錯誤訊息陣列。
                #$result["sql"],執行的sql語法。
                #$result["sqlQueryResult"]#爲資料連線處理完畢之後的結果,需要 sendQueryDataToVariabele 涵式來解析。
                #$result["connectInformation"]#連結到資料庫的資訊。
                #$result["dataCount"]#符合條件的資料筆數
                #必填參數:
                $conf["db"]["dataTableSelectCustomV2"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置。
                $conf["db"]["dataTableSelectCustomV2"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號。
                $conf["db"]["dataTableSelectCustomV2"]["selectedDataBaseName"]=$conf["dbName"];#要選取的資料庫名稱     。
                $conf["db"]["dataTableSelectCustomV2"]["selectedDataTableName"]=$conf["tableName"];#爲欲選擇的資料表名稱。
                #可省略參數:
        
                #如果存在 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                
                        #爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        $conf["db"]["dataTableSelectCustomV2"]["dbPassword"]=$conf["dbPassword"];
                
                        }#if end
                        
                #如果存在 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        #爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port
                        $conf["db"]["dataTableSelectCustomV2"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                #如果存在 $conf["WhereColumnCombine"]
                if(isset($conf["WhereColumnCombine"])){
                
                        #用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                        $conf["db"]["dataTableSelectCustomV2"]["WhereColumnCombine"]=$conf["WhereColumnCombine"];
                
                        }#if end
                
                #如果 $conf["WhereColumnName"] 存在
                if(isset($conf["WhereColumnName"])){
                        
                        $conf["db"]["dataTableSelectCustomV2"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
                        
                        }#if end        
                        
                #如果存在 $conf["WhereColumnOperator"]
                if(isset($conf["WhereColumnOperator"])){
                
                        #用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                        $conf["db"]["dataTableSelectCustomV2"]["WhereColumnOperator"]=$conf["WhereColumnOperator"];
                
                        }#if end
                
                #如果 $conf["WhereColumnValue"] 有設置
                if(isset($conf["WhereColumnValue"])){
                
                        $conf["db"]["dataTableSelectCustomV2"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                
                        }#if end
                
                #如果 $conf["WhereColumnAndOr"] 存在
                if(isset($conf["WhereColumnAndOr"])){
                        
                        #用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                        $conf["db"]["dataTableSelectCustomV2"]["WhereColumnAndOr"]=$conf["WhereColumnAndOr"];
                        
                        }#if end
                        
                #如果 $conf["orderItem"] 存在
                if(isset($conf["orderItem"])){
                        
                        #爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                        $conf["db"]["dataTableSelectCustomV2"]["orderItem"]=$conf["orderItem"];
                        
                        }#if end
                
                #如果 $conf["ascORdesc"] 存在
                if(isset($conf["ascORdesc"])){
                        
                        #爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                        $conf["db"]["dataTableSelectCustomV2"]["ascORdesc"]=$conf["ascORdesc"];
                        
                        }#if end
                
                #如果 $conf["numberStart"] 存在
                if(isset($conf["numberStart"])){
                        
                        $conf["db"]["dataTableSelectCustomV2"]["numberStart"]=$conf["numberStart"];
                        
                        }#if end
                
                #如果 $conf["numLimit"] 存在
                if(isset($conf["numLimit"])){
                        
                        #為要取幾筆資料,可以省略,省略則表示不限制數目。
                        $conf["db"]["dataTableSelectCustomV2"]["number"]=$conf["numLimit"];
                        
                        }#if end
                
                #如果 $conf["groupBy"] 存在
                if(isset($conf["groupBy"])){
                        
                        #爲要以那個欄爲作爲分羣的依據(該欄位相同的數值僅會取出一筆)。
                        $conf["db"]["dataTableSelectCustomV2"]["groupBy"]=$conf["groupBy"];
                        
                        }#if end
                        
                #如果 $conf["whereIn"] 存在
                if(isset($conf["whereIn"])){
                                        
                        #where in 條件                
                        $conf["db"]["dataTableSelectCustomV2"]["whereIn"]=$conf["whereIn"];
                        
                        }#if end
                        
                #如果 $conf["whereNotIn"] 存在
                if(isset($conf["whereNotIn"])){
                        
                        #where not in 條件
                        $conf["db"]["dataTableSelectCustomV2"]["whereNotIn"]=$conf["whereNotIn"];
                        
                        }#if end
                
                $dataTableSelectCustomV2=db::dataTableSelect($conf["db"]["dataTableSelectCustomV2"]);
                unset($conf["db"]);
                
                #如果sql查詢失敗
                #如果 $dataTableSelectCustomV2["status"] 等於 "false"
                if($dataTableSelectCustomV2["status"]=="false"){
                        
                        #則設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$dataTableSelectCustomV2;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得執行的sql字串
                $result["sql"]=$dataTableSelectCustomV2["sql"];
                
                #解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                #$result["error"],錯誤訊息陣列。
                #$result["dataColumnName"],為資料欄位的名稱陣列.
                #$result["dataColumnName"][$i]代表第一個欄位名稱.
                #$result["dataContent"],爲資料的內容。
                #$result["dataContent"][$conf["tableValueName"][$i]][$dataSetNum],
                        #$dataSetNum 爲第$dataSetNum+1筆資料
                        #$conf["tableValueName"][$i] 爲第 $i+1 個欄位的名稱
                #$result["dataCount"],爲取得的資料筆數。
                #必填參數:
                $conf["db"]["sendQueryDataToVariabele"]["sqlQueryResult"]=$dataTableSelectCustomV2["sqlQueryResult"];#爲執行sql語法所獲得的查詢結果。
                $conf["db"]["sendQueryDataToVariabele"]["tableValueName"]=$conf["columnYouWant"];#$conf["tableValueName"]=array();#爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
                $conf["db"]["sendQueryDataToVariabele"]["valueName"]=$conf["columnYouWant"];#爲該資料表列項目的每一項所要對應的變數名稱,須爲陣列值。
                $conf["db"]["sendQueryDataToVariabele"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["sendQueryDataToVariabele"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                #可省略參數:
                
                #如果存在 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                
                        #爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        $conf["db"]["sendQueryDataToVariabele"]["dbPassword"]=$conf["dbPassword"];
                
                        }#if end
                        
                #如果存在 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        #爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表使用預設 port 3306
                        $conf["db"]["sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                $sendQueryDataToVariabele=db::sendQueryDataToVariabele($conf["db"]["sendQueryDataToVariabele"]);
                unset($conf["db"]);
                
                #如果 $sendQueryDataToVariabele["status"] 等於 "false"
                if($sendQueryDataToVariabele["status"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$sendQueryDataToVariabele;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果 $sendQueryDataToVariabele["dataContent"] 沒有設置
                if(!isset($sendQueryDataToVariabele["dataContent"])){
                
                        #那就代表沒有找到符合的資料
                        $sendQueryDataToVariabele["dataContent"]=NULL;
                
                        #取得抓取到的資料內容
                        $result["dataContent"]=$sendQueryDataToVariabele["dataContent"];
                
                        }#if end
                        
                #反之代表有資料
                else{
                        
                        #取得抓取到的資料內容
                        $result["dataContent"]=$sendQueryDataToVariabele["dataContent"];
                        
                        #抓取欄位名稱
                        $result["dataColumnName"]=$sendQueryDataToVariabele["dataColumnName"];
                        
                        }#else end
                
                #如果 $sendQueryDataToVariabele["dataCount"] 沒有設定
                if(!isset($sendQueryDataToVariabele["dataCount"])){
                        
                        #則代表沒有抓到符合的資料
                        (int)$sendQueryDataToVariabele["dataCount"]=0;
                        
                        #取得資料筆數
                        $result["dataCount"]=$sendQueryDataToVariabele["dataCount"];
                        
                        }#if end
                
                #反之代表有符合的資料
                else{
                
                        #取得抓取到的資料筆數
                        $result["dataCount"]=$sendQueryDataToVariabele["dataCount"];
                
                        }#else end
                                                                
                #執行到這邊表示執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function fastGetDbData end
         
        /*
        #函式說明:
        #透過一個父資料表取得多個關聯子資料表的資料,並合併成一張表
        #回傳結果:
        #$result["status"],執行結果"true"為成功;"false"為執行失敗。
        #$result["error"],錯誤訊息陣列。
        #$reuslt["function"],當前執行的函數
        #$result["parentTable"]["dataContent"],爲合併了子資料表欄位的父資料表的內容。
        #$result["parentTable"]["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                #$dataSetNum 爲第$dataSetNum+1筆資料
                #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
        #$result["parentTable"]["dataCount"],爲取得的資料筆數。
        #必填參數:
        #$conf["dbAddress"],字串陣列,爲每個dbServer的位置。
        $conf["dbAddress"]=array($dbAddress);
        #$conf["dbAccount"],字串陣列,爲登入每個dbServer的帳號。
        $conf["dbAccount"]=array($dbAccount);
        #$conf["dbName"],字串陣列,爲每個要存取的資料庫名稱
        $conf["dbName"]=array($dbName);
        #$conf["tableName"],字串陣列,爲每個要存取的資料表名稱,$conf["tableName"][0]為父資料表.
        $conf["tableName"]=array("");
        #$conf["linkColumnName"]=array(array(""));#二維字串陣列,為可以從父表關連到其他資料表的欄位名稱.
                #$conf["linkColumnName"][$i]=array("parentColumnName","childColumnName"),為父資料表的"parentColumnName"欄位跟第$i+1個關聯資料表的"childColumnName"關聯.
        $conf["linkColumnName"]=array(array(""));
        #$conf["columnYouWant"]=array(array(""));#二維字串陣列,為每個資料表依序想要的欄位.
        $conf["columnYouWant"]=array(array(""));#二維字串陣列,為每個資料表依序想要的欄位.
        #可省略參數:
        #$conf["dbPassword"],字串陣列,爲要存取每個dbServer的密碼
        #$conf["dbPassword"]=array($dbPassword);
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的3306 port.
        #$conf["dbPort"]="";
        #$conf["WhereColumnName"],字串陣列,用於判斷語句的欄位項目陣列。
        #$conf["WhereColumnName"]=array("");
        #$conf["WhereColumnValue"],字串陣列,用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
        #$conf["WhereColumnValue"]=array("");   
        #$conf["WhereColumnCombine"],字串陣列,用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
        #$conf["WhereColumnCombine"]=array("");
        #$conf["WhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
        #$conf["WhereColumnOperator"]=array("");
        #$conf["WhereColumnAndOr"],字串陣列,用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
        #$conf["WhereColumnAndOr"]=array("");
        #$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
        #$conf["whereIn"]=array(array("colName",array("a","b","c")));
        #$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
        #$conf["whereNotIn"]=array(array("colName",array("a","b","c")));
        #$conf["orderItem"],字串,排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
        #$conf["orderItem"]="";
        #$conf["ascORdesc"],字串,要低增還是遞減排序,asc爲遞增;desc爲遞減。
        #$conf["ascORdesc"]="";
        #$conf["numberStart"],字串,從第幾筆開始讀取,預設為"0",代筆第一筆。
        #$conf["numberStart"]="0";
        #$conf["numLimit"],字串,要取幾筆資料,可以省略,省略則表示不限制數目。
        #$conf["numLimit"]="30";
        #$conf["groupBy"],字串陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
        #$conf["groupBy"]=array();
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function fastGetMultiLinkedDbData(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填參數:
                #$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數.
                $conf["variableCheck.checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","tableName","linkColumnName","columnYouWant");
                #$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","array","array","array","array","array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
                #可省略參數:
                #$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
                #$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["skipableVariableName"]=array("dbPassword","WhereColumnName","WhereColumnValue","WhereColumnCombine","WhereColumnOperator","WhereColumnAndOr","orderItem","ascORdesc","numberStart","numLimit","groupBy","whereIn","whereNotIn");
                #$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","string","string","string","string","array","array","array");
                #$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
                #$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("");
                $checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
                unset($conf["variableCheck.checkArguments"]);
                
                #如果檢查出錯
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查出錯
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得父表的資料
                #函式說明:
                #一次取得資料庫、表的資料
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                #$result["error"],錯誤訊息陣列。
                #$result["dataContent"],爲資料的內容。
                        #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                        #$dataSetNum 爲第$dataSetNum+1筆資料
                        #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                #$result["dataCount"],爲取得的資料筆數。
                #必填參數:
                $conf["db"]["fastGetDbData"]["dbAddress"]=$conf["dbAddress"][0];#爲dbServer的位置。
                $conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"][0];#爲登入dbServer的帳號。
                $conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"][0];#爲要存取的資料庫名稱
                $conf["db"]["fastGetDbData"]["tableName"]=$conf["tableName"][0];#爲要存取的資料表名稱
                $conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["columnYouWant"][0];#你想要的欄位!
                #可省略參數:
                        
                #如果 $conf["dbPassword"][0] 有設置
                if(isset($conf["dbPassword"][0])){
                                
                        $conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"][0];#爲要存取dbServer的密碼
                                
                        }#if end
                        
                #如果 $conf["WhereColumnName"] 有設置
                if(isset($conf["WhereColumnName"])){
                                
                        $conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
                        
                        }#if end
                        
                #如果 $conf["WhereColumnValue"] 有設置
                if(isset($conf["WhereColumnValue"])){
                        
                        $conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                        
                        }#if end
                        
                #如果 $conf["WhereColumnCombine"] 有設置
                if(isset($conf["WhereColumnCombine"])){
                        
                        $conf["db"]["fastGetDbData"]["WhereColumnCombine"]=$conf["WhereColumnCombine"];#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                        
                        }#if end
                        
                #如果 $conf["WhereColumnOperator"] 有設置
                if(isset($conf["WhereColumnOperator"])){
                                
                        $conf["db"]["fastGetDbData"]["WhereColumnOperator"]=$conf["WhereColumnOperator"];#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                        
                        }#if end
                        
                #如果 $conf["WhereColumnAndOr"][$i] 有設置
                if(isset($conf["WhereColumnAndOr"])){
                                
                        $conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=$conf["WhereColumnAndOr"];#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                                
                        }#if end
                        
                #如果 $conf["orderItem"] 有設置
                if(isset($conf["orderItem"])){
                                
                        $conf["db"]["fastGetDbData"]["orderItem"]=$conf["orderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                        
                        }#if end
                        
                #如果 $conf["ascORdesc"] 有設置
                if(isset($conf["ascORdesc"])){
                                
                        $conf["db"]["fastGetDbData"]["ascORdesc"]=$conf["ascORdesc"];#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                                
                        }#if end
                
                #如果 $conf["numberStart"] 有設置
                if(isset($conf["numberStart"])){
                                
                        $conf["db"]["fastGetDbData"]["numberStart"]=$conf["numberStart"];#為從第幾筆開始讀取,預設為0,代筆第一筆。
                                
                        }#if end
                        
                #如果 $conf["numLimit"] 有設置
                if(isset($conf["numLimit"])){
                                
                        $conf["db"]["fastGetDbData"]["numLimit"]=$conf["numLimit"];#為要取幾筆資料,可以省略,省略則表示不限制數目。
                                
                        }#if end
                        
                #如果 $conf["groupBy"] 有設置
                if(isset($conf["groupBy"])){
                        
                        $conf["db"]["fastGetDbData"]["groupBy"]=$conf["groupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
                        
                        }#if end
                
                #如果 $conf["whereIn"] 存在
                if(isset($conf["whereIn"])){
                        
                        #where in 條件
                        $conf["db"]["fastGetDbData"]["whereIn"]=$conf["whereIn"];
                        
                        }#if end
                        
                #如果 $conf["whereNotIn"] 存在
                if(isset($conf["whereNotIn"])){
                        
                        #where not in 條件    
                        $conf["db"]["fastGetDbData"]["whereNotIn"]=$conf["whereNotIn"];
                        
                        }#if end
                
                #儲存到 $result["mainTable"] 陣列裡面
                $result["parentTable"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
                unset($conf["db"]["fastGetDbData"]);
                
                #如果 $result["mainTable"]["status"] 為 "false"
                if($result["parentTable"]["status"]=="false"){
                        
                        #取得錯誤訊息
                        $result["error"]=$result["parentTable"]["error"];
                        
                        #設置執行結果為 "false"
                        $result["status"]="false";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                                
                #根據 $conf["linkColumnName"] 的數量
                for($i=0;$i<count($conf["linkColumnName"]);$i++){
                        
                        #取得父資料表的關聯欄位名稱
                        $parentTableLinkColumnName=$conf["linkColumnName"][$i][0];
                        
                        #取得子資料表的關聯欄位名稱
                        $childTableLinkColumnName=$conf["linkColumnName"][$i][1];
                        
                        #根據父資料表的資料筆數
                        for($j=0;$j<$result["parentTable"]["dataCount"];$j++){
                                
                                #如果要連結的欄位不在 select 的欄位裡面
                                if(!isset($result["parentTable"]["dataContent"][$parentTableLinkColumnName])){
                                
                                        #設置執行錯誤
                                        $result["status"]="false";

                                        #設置執行錯誤內容
                                        $result["error"]="欄位 ".$parentTableLinkColumnName." 必須在參數 columnYouWant 裡面.";
                                        
                                        #回傳結果
                                        return $result;
                                
                                        }#if end
                                
                                #父資料表第$j筆資料關聯欄位的數值內容
                                $parentTableLinkColumnValue=$result["parentTable"]["dataContent"][$parentTableLinkColumnName][$j];
                                
                                #var_dump($parentTableLinkColumnValue);
                                
                                #根據第$j筆資料的父關聯欄位數值來尋找子關聯資料表的欄位數值
                                #函式說明:
                                #一次取得資料庫、表的資料
                                #回傳結果:
                                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                                #$result["error"],錯誤訊息陣列。
                                #$result["dataContent"],爲資料的內容。
                                #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                                        #$dataSetNum 爲第$dataSetNum+1筆資料
                                        #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                                #$result["dataCount"],爲取得的資料筆數。
                                #必填參數:
                                $conf["db"]["fastGetDbData"]["dbAddress"]=$conf["dbAddress"][$i+1];#爲dbServer的位置。
                                $conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"][$i+1];#爲登入dbServer的帳號。
                                $conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"][$i+1];#爲要存取的資料庫名稱
                                $conf["db"]["fastGetDbData"]["tableName"]=$conf["tableName"][$i+1];#爲要存取的資料表名稱
                                $conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["columnYouWant"][$i+1];#你想要的欄位!
                                #可省略參數:
                                
                                #如果 $conf["dbPassword"][$i+1] 有設定
                                if(isset($conf["dbPassword"][$i+1])){
                                        
                                        #則設置其連線密碼
                                        $conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"][$i+1];#爲要存取dbServer的密碼
                                        
                                        }#if end
                                        
                                #如果 $conf["dbPort"][$i+1] 有設定
                                if(isset($conf["dbPort"][$i+1])){
                                        
                                        #則設置其連線的 port
                                        $conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"][$i+1];#爲要存取dbServer的port
                                        
                                        }#if end
                                
                                $conf["db"]["fastGetDbData"]["WhereColumnName"]=array($childTableLinkColumnName);#用於判斷語句的欄位項目陣列。
                                $conf["db"]["fastGetDbData"]["WhereColumnValue"]=array($parentTableLinkColumnValue);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                                #$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                                #$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                                #$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                                #$conf["orderItem"]="";#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                                #$conf["ascORdesc"]="";#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                                #$conf["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
                                #$conf["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
                                #$conf["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
                                $childTable[$j]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
                                unset($conf["db"]["fastGetDbData"]);
                                
                                #如果取得資料失敗
                                if($childTable[$j]["status"]=="false"){
                                        
                                        #取得錯誤訊息
                                        $result["error"]=$childTable[$j];
                                        
                                        #設置執行結果為 "false"
                                        $result["status"]="false";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #如果 $childTable[$j]["dataContent"] 有設置,則代表有符合的資料
                                if(isset($childTable[$j]["dataContent"])){
                                        
                                        #針對每個取得的新欄位
                                        foreach($childTable[$j]["dataContent"] as $newColumnNameArray=>$newColumnNameValue){
                                                
                                                #新增第$j筆的欄位名稱與數值
                                                $result["parentTable"]["dataContent"][$conf["tableName"][$i+1].".".$newColumnNameArray][$j]=$newColumnNameValue[0];
                                                
                                                }#foreach end
                                        
                                        }#if end
                                        
                                #反之代表 $childTable[$j]["dataContent"] 沒有設置,沒有符合的資料
                                else{
                                        
                                        #根據每個要取得的欄位名稱
                                        foreach($conf["columnYouWant"][$i+1] as $newColumnName){
                                                
                                                #新增第$j筆的欄位名稱與數值
                                                $result["parentTable"]["dataContent"][$conf["tableName"][$i+1].".".$newColumnName][$j]="";
                                                
                                                }#foreach end
                                        
                                        }#else end
                                
                                }#for end
                        
                        }#for end
                        
                #執行到這邊代表執行成功
                #設置執行結果為 "true"
                $result["status"]="true";
                        
                #回傳結果
                return $result;
                
                }#function fastGetMutiLinkedDbData end
         
        /*
        #函式說明:
        #透過php來join多張資料表資料,提供各個欄位的包含資料庫、資料表、的資訊,會產生sql inner join的效果,資料會越來越多.
        #回傳結果:
        #$result["status"],執行結果"true"為成功;"false"為執行失敗。
        #$result["error"],錯誤訊息陣列。
        #$reuslt["function"],當前執行的函數
        #$result["content"],爲合併了子資料表欄位的父資料表的內容。
        #$result["content"][$conf["WhereColumnName"][$i]][$dataSetNum]
                #$dataSetNum 爲第$dataSetNum+1筆資料
                #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
        #$result["parentTable"]["dataCount"],爲取得的資料筆數。
        #必填參數:
        #$conf["dbInfo"]["資料庫名稱"],字串陣列,爲要存取的"資料庫名稱"的連線資訊.
        #$conf["dbIfno"]["資料庫名稱"]["dbAddr"],字串,dbServer的位置.
        #$conf["dbInfo"]["資料庫名稱"]["dbAddr"]="";
        #$conf["dbIfno"]["資料庫名稱"]["dbAcct"],字串,dbServer的連線帳號.
        #$conf["dbInfo"]["資料庫名稱"]["dbAcct"]="";       
        #$conf["mainTable"],字串,為 主資料庫.資料表 的名稱,例如 "dbA.dtA".
        $conf["mainTable"]="";
        #$conf["linkColumnName"],二字串陣列,為資料表間相連結的欄位名稱,格式為 array("mergedDb.mergedDt.mergedCol","linkDb.linkDt.linkCol") 就代表當前組好的欄位 mergedDb.mergedDt.mergedCol 跟資料庫 linkDB 表 linkDt 欄位 linkCol 進行資料的配對。
        $conf["linkColumnName"]=array(array(""));       
        #可省略參數:
        #$conf["dbInfo"]["資料庫名稱"]["dbPass"],字串,dbServer的連線密碼.
        #$conf["dbInfo"]["資料庫名稱"]["dbPass"]="";
        #$conf["dbInfo"]["資料庫名稱"]["dbPort"],字串,db連線用的port.
        #$conf["dbInfo"]["資料庫名稱"]["dbPort"]="";
        #$conf["columnYouWant"],字串陣列,為想要的資料表欄位,格式為 "dbName.dtName.colName".
        #$conf["columnYouWant"]=array();
        #$conf["mainDtWhereColName"],字串陣列,用於主表判斷語句的欄位項目陣列.
        #$conf["mainDtWhereColName"]=array("");
        #$conf["mainDtWhereColVal"]=,字串陣列,用於主表判斷語句的欄位項目數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容.
        #$conf["mainDtWhereColVal"]=array("");
        #$conf["mainDtWhereColCombine"],字串陣列,用於主表判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
        #$conf["mainDtWhereColCombine"]=array("");
        #$conf["mainWhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
        #$conf["mainWhereColumnOperator"]=array("");
        #$conf["mainWhereColumnAndOr"],字串陣列,用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
        #$conf["mainWhereColumnAndOr"]=array("");
        #$conf["mainWhereIn"],字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
        #$conf["mainWhereIn"]=array(array("colName",array("a","b","c")));
        #$conf["mainWhereNotIn"],字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
        #$conf["mainWhereNotIn"]=array(array("colName",array("a","b","c")));
        #$conf["mainNumberStart"],字串,從第幾筆開始讀取,預設為"0",代筆第一筆。
        #$conf["mainNumberStart"]="0";
        #$conf["mainNumLimit"],字串,要取幾筆資料,可以省略,省略則表示不限制數目.
        #$conf["mainNumLimit"]="30";
        #$conf["mainGroupBy"],字串陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
        #$conf["mainGroupBy"]=array();
        #$conf["mainOrderItem"],字串,組好的資料的排序項目依據
        #$conf["mainOrderItem"]="";
        #$conf["mainAscORdesc"],字串,組好的資料要低增還是遞減排序,asc爲遞增;desc爲遞減,預設不做處理.
        #$conf["mainAscORdesc"]="";     
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function joinByPHP(&$conf=array()){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填參數:
                #$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數.
                $conf["variableCheck.checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbInfo","mainTable","linkColumnName");
                #$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("array","string","array");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
                #可省略參數:
                #$conf["variableCheck.checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
                #$conf["variableCheck.checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["skipableVariableName"]=array("columnYouWant","mainDtWhereColName","mainDtWhereColVal","mainDtWhereColCombine","mainWhereColumnOperator","mainWhereColumnAndOr","mainWhereIn","mainWhereNotIn","mainNumberStart","mainNumLimit","mainGroupBy","mainOrderItem","mainAscORdesc");
                #$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck.checkArguments"]["skipableVariableType"]=array("array","array","array","array","array","array","array","array","string","string","array","string","string");
                #$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定.
                #$conf["variableCheck.checkArguments"]["skipableVarDefaultValue"]=array("");
                $checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
                unset($conf["variableCheck.checkArguments"]);
                
                #如果檢查出錯
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查出錯
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #取得 $conf["mainTable"] 的資料
                
                #檢查主表是否為 db.dt 的
                $foundDot=strpos($conf["mainTable"],'.');
                
                #如果不是
                if(!$foundDot){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"][]="參數 \$conf[\"mainTable\"] 必須為 資料庫名稱.資料表名稱";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #反之
                else{
                        
                        #用 . 去切割字串
                        $dbdtsplitedstr=explode('.',$conf["mainTable"]);
                        
                        #如果切割出來不等於兩段
                        if(count($dbdtsplitedstr)!==2){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"][]="參數 \$conf[\"mainTable\"] 必須為 資料庫名稱.資料表名稱";
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #取得 mainTable 的 db name
                        $mainDb=&$dbdtsplitedstr[0];
                        
                        #取得 mainTable 的名稱
                        $mainDt=&$dbdtsplitedstr[1];
                        
                        }#else end
                
                #若主資料表連線參數不存在
                if(!isset($conf["dbInfo"][$mainDb])){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"][]="參數 \$conf[\"dbInfo\"][$mainDb] 必須提供";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查主表的參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf["dbInfo"][$mainDb];   
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可以省略的參數:
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbAcct");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                #$conf["canNotBeEmpty"]=array();
                #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                #$conf["canBeEmpty"]=array();
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                $conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPass","dbPort");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass","dbPort");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmpty"]="";
                #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果執行失敗
                if($checkArguments["status"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkArguments;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果檢查不通過
                if($checkArguments["passed"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkArguments;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #一次取得資料庫、表的資料
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                #$result["error"],錯誤訊息陣列。
                #$result["function"],當前執行的漢書名稱.
                #$result["dataColumnName"],抓取的資料欄位名稱陣列.
                        #$result["dataColumnName"][$i]代表第$i+1個欄位名稱
                #$result["dataContent"],爲資料的內容。
                #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                        #$dataSetNum 爲第$dataSetNum+1筆資料
                        #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                #$result["dataCount"],爲取得的資料筆數。
                #$result["sql"],執行的sql字串.
                #必填參數:
                $conf["db::fastGetDbData"]["dbAddress"]=$conf["dbInfo"][$mainDb]["dbAddr"];#爲dbServer的位置。
                $conf["db::fastGetDbData"]["dbAccount"]=$conf["dbInfo"][$mainDb]["dbAcct"];#爲登入dbServer的帳號。
                $conf["db::fastGetDbData"]["dbName"]=$mainDb;#爲要存取的資料庫名稱
                $conf["db::fastGetDbData"]["tableName"]=$mainDt;#爲要存取的資料表名稱
                $conf["db::fastGetDbData"]["columnYouWant"]=array("*");#你想要的欄位!,若設為「array("*")」則代表全部欄位.
                #可省略參數:
                
                #如果有給予連線密碼
                if(isset($conf["dbInfo"][$mainDb]["dbPass"])){
                        
                        $conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$mainDb]["dbPass"];#爲要存取dbServer的密碼
                        
                        }#if end
                        
                #如果有給予連線port
                if(isset($conf["dbInfo"][$mainDb]["dbPort"])){
                        
                        $conf["db::fastGetDbData"]["dbPort"]=$conf["dbInfo"][$mainDb]["dbPort"];#爲要存取dbServer的port
                        
                        }#if end
                
                #如果有設置 $conf["mainDtWhereColName"]
                if(isset($conf["mainDtWhereColName"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["WhereColumnName"]=$conf["mainDtWhereColName"];
                        
                        }#if end
                
                #如果有設置 $conf["mainDtWhereColVal"]
                if(isset($conf["mainDtWhereColVal"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["WhereColumnValue"]=$conf["mainDtWhereColVal"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                        
                        }#if end
                
                #如果有設置 $conf["mainDtWhereColCombine"]
                if(isset($conf["mainDtWhereColCombine"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["WhereColumnCombine"]=$conf["mainDtWhereColCombine"];#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                                        
                        }#if end
                
                #如果有設置 $conf["mainWhereColumnOperator"]
                if(isset($conf["mainWhereColumnOperator"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["WhereColumnOperator"]=$conf["mainWhereColumnOperator"];#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                                        
                        }#if end
                        
                #如果有設置 $conf["mainWhereColumnAndOr"]
                if(isset($conf["mainWhereColumnAndOr"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["WhereColumnAndOr"]=$conf["mainWhereColumnAndOr"];#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。

                        }#if end
                        
                #如果有設置 $conf["mainWhereIn"]
                if(isset($conf["mainWhereIn"])){
                        
                        #$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
                        $conf["db::fastGetDbData"]["whereIn"]=$conf["mainWhereIn"];
                        
                        }#if end
                        
                #如果有設置 $conf["mainWhereNotIn"]
                if(isset($conf["mainWhereNotIn"])){
                        
                        #設置參數
                        #$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
                        $conf["db::fastGetDbData"]["whereNotIn"]=$conf["mainWhereNotIn"];
                                        
                        }#if end
                
                #如果有設置 $conf["mainNumberStart"]
                if(isset($conf["mainNumberStart"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["numberStart"]=$conf["mainNumberStart"];#為從第幾筆開始讀取,預設為0,代筆第一筆。
                                        
                        }#if end
                
                #如果有設置 $conf["mainNumLimit"]
                if(isset($conf["mainNumLimit"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["numLimit"]=$conf["mainNumLimit"];#為要取幾筆資料,可以省略,省略則表示不限制數目。
                                        
                        }#if end
                
                #如果有設置 $conf["mainGroupBy"]
                if(isset($conf["mainGroupBy"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["groupBy"]=$conf["mainGroupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
                                        
                        }#if end
                
                #如果有設置 $conf["mainOrderItem"]
                if(isset($conf["mainOrderItem"])){
                        
                        #設置參數
                        $conf["db::fastGetDbData"]["orderItem"]=$conf["mainOrderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                                        
                        }#if end
                
                #如果有設置 $conf["mainAscORdesc"]
                if(isset($conf["mainAscORdesc"])){
                        
                        #設置參數
                        #$conf["mainAscORdesc"],字串,組好的資料要低增還是遞減排序,asc爲遞增;desc爲遞減,預設不做處理.
                        $conf["db::fastGetDbData"]["mainAscORdesc"]=$conf["mainAscORdesc"];
                        
                        }#if end
                
                $fastGetDbData=db::fastGetDbData($conf["db::fastGetDbData"]);
                unset($conf["db::fastGetDbData"]);
                
                #如果執行失敗
                if($fastGetDbData["status"]==="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$fastGetDbData;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #var_dump($fastGetDbData);
                
                #初始化儲存合併好的資料
                $merged=array();
                
                #如果該存在的變數不存在
                if(!isset($fastGetDbData["dataColumnName"])){
                
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$fastGetDbData;
                        
                        #回傳結果
                        return $result;
                
                        }#if end
                
                #針對每個欄位
                foreach($fastGetDbData["dataColumnName"] as $colName){
                        
                        #將當前資料的欄位用 dbName.dtName.dataColName 儲存
                        $merged[$mainDb.".".$mainDt.".".$colName]=$fastGetDbData["dataContent"][$colName];
                        
                        }#foreach end
                
                #移除變數節省記憶體
                unset($fastGetDbData);
                
                #取得陣列元素數目
                $mergedCount=count($merged);
                
                #移除以數字為欄位索引的變數
                for($i=0;$i<$mergedCount/2;$i++){
                        
                        #移除索引
                        unset($merged[$i]);
                        
                        }#for end
                
                #var_dump($merged);exit;
                                                
                #針對每個 $conf["linkColumnName"] 
                foreach($conf["linkColumnName"] as $linkCondition){
                        
                        #如果不是陣列
                        if(gettype($linkCondition)!=="array"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"][]="參數 linkColumnName 的陣列元素應該為陣列.";
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #如果數量不為2
                        if(count($linkCondition)!==2){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"][]="參數 linkColumnName 的陣列元素應為有兩個元素的陣列.";
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #取得原始欄位的名稱
                        $oriCol=&$linkCondition[0];     
                                
                        #如果用來比對的原欄位不存在
                        if(!isset($merged[$oriCol])){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"][]="用來比對的原始資料沒有欄位 「".$oriCol."」 存在.";
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #取得要增加的欄位名稱
                        $newCol=&$linkCondition[1];     
                        
                        #檢查增加的欄位名稱是否有 "."
                        $foundDot=strpos($newCol,'.');
                        
                        #如果不是
                        if(!$foundDot){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"][]="參數 linkColumnName 的欄位格式 ".$newCol." 必須為 資料庫名稱.資料表名稱.資料欄位名稱";
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #反之
                        else{
                                
                                #用 . 去切割字串
                                $dbdtsplitedstr=explode('.',$newCol);
                                
                                #如果切割出來不等於兩段
                                if(count($dbdtsplitedstr)!==3){
                                        
                                        #設置錯誤識別
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"][]="參數 linkColumnName 的欄位格式 ".$newCol." 必須為 資料庫名稱.資料表名稱.資料欄位名稱";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                
                                #取得 linkTable 的 db name
                                $linkDb=&$dbdtsplitedstr[0];
                                
                                #取得 linkTable 的名稱
                                $linkDt=&$dbdtsplitedstr[1];
                                
                                #取得 linkCol 的名稱
                                $linkCol=&$dbdtsplitedstr[2];
                                
                                }#else end
                                
                        #檢查次表的參數
                        #函式說明:
                        #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$reuslt["error"],執行不正常結束的錯訊息陣列.
                        #$result["function"],當前執行的函式名稱.
                        #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                        #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                        #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                        #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                        #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                        #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                        #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                        #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                        #必填參數:
                        #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                        $conf["variableCheck::checkArguments"]["varInput"]=&$conf["dbInfo"][$linkDb];   
                        #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                        $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                        #可以省略的參數:
                        #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                        $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddr","dbAcct");
                        #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                        $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string");
                        #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                        $conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                        #$conf["canNotBeEmpty"],字串陣列,哪些必填參數的內容不得為空字串或空陣列,僅當$conf["canBeEmptyString"]為"true"時會生效.
                        #$conf["canNotBeEmpty"]=array();
                        #$conf["canBeEmpty"],字串陣列,哪些必填參數的內容可為空字串或空陣列,僅當$conf["canBeEmptyString"]為"false"時會生效.
                        #$conf["canBeEmpty"]=array();
                        #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或空陣列.
                        $conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPass");
                        #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                        $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPass");
                        #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                        $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string");
                        #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                        $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null);
                        #$conf["disallowAllSkipableVarIsEmpty"],字串,是否允許每個可省略參數都為空字串,預設為"true"允許,反之為"false".
                        #$conf["disallowAllSkipableVarIsEmpty"]="";
                        #$conf["disallowAllSkipableVarIsEmptyArray"],字串,是否允許每個可省略參數都為空陣列,預設為"true"允許,反之為"false".
                        #$conf["disallowAllSkipableVarIsEmptyArray"]="";
                        #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                        #$conf["arrayCountEqualCheck"][]=array();
                        #參考資料:
                        #array_keys=>http://php.net/manual/en/function.array-keys.php
                        $checkArguments=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                        unset($conf["variableCheck::checkArguments"]);
                        
                        #var_dump($checkArguments);
                        #exit;
                        
                        #如果執行失敗
                        if($checkArguments["status"]==="false"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$checkArguments;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #如果檢查不通過
                        if($checkArguments["passed"]==="false"){
                                
                                #設置錯誤識別
                                $result["status"]="false";
                                
                                #設置錯誤訊息
                                $result["error"]=$checkArguments;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                        
                        #初始化新合併過後的資料
                        $newMerged=&$merged;
                        
                        #初始化儲存既有的欄位名稱
                        $mergedColName=array_keys($merged);
                                        
                        #取得既有的欄位的數量
                        $mergedColCount=count($mergedColName);          
                                                                        
                        #主表有幾筆資料就執行幾次
                        foreach($merged[$oriCol] as $index=>$mainColVal){
                                
                                #函式說明:
                                #一次取得資料庫、表的資料
                                #回傳結果:
                                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                                #$result["error"],錯誤訊息陣列。
                                #$result["function"],當前執行的漢書名稱.
                                #$result["dataColumnName"],抓取的資料欄位名稱陣列.
                                        #$result["dataColumnName"][$i]代表第$i+1個欄位名稱
                                #$result["dataContent"],爲資料的內容。
                                #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                                        #$dataSetNum 爲第$dataSetNum+1筆資料
                                        #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                                #$result["dataCount"],爲取得的資料筆數。
                                #$result["sql"],執行的sql字串.
                                #必填參數:
                                $conf["db::fastGetDbData"]["dbAddress"]=$conf["dbInfo"][$linkDb]["dbAddr"];#爲dbServer的位置。
                                $conf["db::fastGetDbData"]["dbAccount"]=$conf["dbInfo"][$linkDb]["dbAcct"];#爲登入dbServer的帳號。
                                $conf["db::fastGetDbData"]["dbName"]=$linkDb;#爲要存取的資料庫名稱
                                $conf["db::fastGetDbData"]["tableName"]=$linkDt;#爲要存取的資料表名稱
                                $conf["db::fastGetDbData"]["columnYouWant"]=array("*");#你想要的欄位!,若設為「array("*")」則代表全部欄位.
                                #可省略參數:
                                
                                #如果有設置次表的密碼
                                if(isset($conf["dbInfo"][$linkDb]["dbPass"])){
                                        
                                        $conf["db::fastGetDbData"]["dbPassword"]=$conf["dbInfo"][$linkDb]["dbPass"];#爲要存取dbServer的密碼
                                        
                                        }#if end                        
                                
                                $conf["db::fastGetDbData"]["WhereColumnName"]=array($linkCol);#用於判斷語句的欄位項目陣列。
                                $conf["db::fastGetDbData"]["WhereColumnValue"]=array($mainColVal);#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                                #$conf["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                                #$conf["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、"!="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                                #$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                                #$conf["whereIn"],二維字串陣列,為每個in語句的內容,特定欄位數值等於陣列元素之一。array(array("colName",array("a","b","c")));代表欄位colName的值為a,b,c三者之一.
                                #$conf["whereIn"]=array(array("colName",array("a","b","c")));
                                #$conf["whereNotIn"],二維字串陣列,為每個not in語句的內容,array(array("colName",array("a","b","c")));代表欄位colName的值不為a,b,c三者之一.
                                #$conf["whereNotIn"]=array(array("colName",array("a","b","c")));
                                #$conf["orderItem"]="";#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                                #$conf["ascORdesc"]="";#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                                #$conf["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
                                #$conf["db::fastGetDbData"]["numLimit"]="1";#為要取幾筆資料,可以省略,省略則表示不限制數目。
                                #$conf["groupBy"]=array("");#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆)。
                                $fastGetDbData=db::fastGetDbData($conf["db::fastGetDbData"]);
                                unset($conf["db::fastGetDbData"]);
                                
                                #如果query失敗
                                if($fastGetDbData["status"]==="false"){
                                        
                                        #設置執行失敗
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"]=$fastGetDbData;
                                        
                                        #回傳結果;
                                        return $result;
                                        
                                        }#if end
                                
                                #如果如果沒有符合的資料
                                if($fastGetDbData["dataCount"]===0){
                                        
                                        #如果有欄位名稱存在
                                        if(isset($fastGetDbData["dataColumnName"])){
                                        
                                                #次表有幾個欄位就執行幾次
                                                foreach($fastGetDbData["dataColumnName"] as $linkedColName){
                                                        
                                                        #給予NULL
                                                        $newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=NULL;
                                                        
                                                        }#foreach end                                   
                                                
                                                }#if end
                                                
                                        }#if end
                                        
                                #反之有資料
                                else{
                                        
                                        #次表有幾個欄位就執行幾次
                                        foreach($fastGetDbData["dataColumnName"] as $linkedColName){
                                        
                                                #設置新的欄位資料
                                                $newMerged[$linkDb.".".$linkDt.".".$linkedColName][$index]=$fastGetDbData["dataContent"][$linkedColName][0];
                                                
                                                }#foreach end
                                                
                                        #有幾筆資料就執行幾次
                                        for($i=1;$i<$fastGetDbData["dataCount"];$i++){
                                                
                                                #取得資新料的索引
                                                $newMergedDataIndex=count($newMerged[$mergedColName[0]]);
                
                                                #有幾個欄位就執行幾次
                                                for($j=0;$j<$mergedColCount;$j++){
                                                        
                                                        #複製既有的欄位資料
                                                        $newMerged[$mergedColName[$j]][$newMergedDataIndex]=$newMerged[$mergedColName[$j]][$index];
                                                        
                                                        }#for end                                                       
                                                        
                                                #次表有幾個欄位就執行幾次
                                                foreach($fastGetDbData["dataColumnName"] as $linkedColName){    
                                                        
                                                        #加上新的欄位資料
                                                        $newMerged[$linkDb.".".$linkDt.".".$linkedColName][$newMergedDataIndex]=$fastGetDbData["dataContent"][$linkedColName][$i];
                                                                                                
                                                        }#foreach end
                                                
                                                }#for end                                       
                                                
                                        }#else end
                                        
                                }#foreach end
                                                
                        }#foreach end
                
                #如果有設置要的欄位
                if(isset($conf["columnYouWant"])){
                        
                        #初始化儲存僅需要的欄位
                        $filteredCol=array();
                        
                        #依照每個需要的欄位
                        foreach($conf["columnYouWant"] as $colYouWant){
                                
                                #如果要的欄位不存在
                                if(!isset($newMerged[$colYouWant])){
                                        
                                        #設置執行不正常;  
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"][]="欄位 ".$colYouWant." 不存在於查詢後的結果!";
                                        
                                        #回傳結果
                                        return $result;
                                        
                                        }#if end
                                                                
                                #取得欄位內容
                                $filteredCol[$colYouWant]=&$newMerged[$colYouWant];
                                
                                }#foreach end
                                
                        #置換成篩選過後的欄位資訊
                        $newMerged=$filteredCol;
                        
                        }#if end
                        
                #設置執行正常
                $result["status"]="true";
                
                #設置join完的資料;
                $result["content"]=$merged;
                
                #回傳結果
                return $result;
                                                
                }#function joinByPHP end
        
        /*
        #函式說明:
        #取得該資料表總共有幾筆資料
        #回傳變數:
        #$result["status"],爲執行是否正常,若爲"true"則成功,若爲"false"則表示失敗了
        #$result["function"],當前執行的函數名稱
        #$result["error"],錯誤訊息
        #$result["dataCount"],資料表裏面的資料筆數。
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"]字串,爲用於連入mysql-Server時要使用的帳號.
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,要選取的資料庫名稱       
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["selectedDataTableName"],字串,為要計算的對象資料表
        $conf["selectedDataTableName"]="";#為要計算的對象資料表
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表用預設的 port 3306.
        #$conf["dbPort"]=$dbPort;
        #參考資料:
        #無.
        #備註:
        #無.
        */      
        public static function getDataCountsInTable($conf){

                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbPassword","selectedDataBaseName","selectedDataTableName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                #$conf["variableCheck"]["isexistMuti"]["variableType"]=array();#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["variableCheck"]["isexistMuti"]"canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果 $checkResult["status"] 等於 "false"
                if($checkResult["status"]=="false"){
                        
                        #設置錯識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]=="false"){
                        
                        #設置錯識別
                        $result["passed"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]="select count(*) from ".$conf["selectedDataBaseName"].".".$conf["selectedDataTableName"]." ;";#要執行sql語法
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的 port.
                        
                        }#if end
                                
                #執行查尋   
                $countResult=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);

                #如果執行失敗
                if($countResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$countResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #解析 dataTableSelect($conf) 後的結果,亦即將執行sql語法後所得到的結果解析放進變數裏面
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為失敗
                #$result["error"],錯誤訊息
                #$result["dataColumnName"],為資料欄位的名稱陣列.
                        #$result["dataColumnName"][$i]代表第一個欄位名稱.
                #$result["dataContent"],爲資料的內容。
                #$result["dataContent"][$conf["tableValueName"][$i]][$dataSetNum],
                        #$dataSetNum 爲第$dataSetNum+1筆資料
                        #$conf["tableValueName"][$i] 爲第 $i+1 個欄位的名稱
                #$result["dataCount"],爲取得的資料筆數。
                #必填參數:
                $conf["db"]["sendQueryDataToVariabele"]["sqlQueryResult"]=$countResult["queryResource"];#爲執行sql語法所獲得的查詢結果。
                $conf["db"]["sendQueryDataToVariabele"]["tableValueName"]=array("count(*)");#爲該資料表列項目的每一項名稱,須爲陣列值,若為「array("*")」則代表所有欄位.
                $conf["db"]["sendQueryDataToVariabele"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["sendQueryDataToVariabele"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){
                
                        $conf["db"]["sendQueryDataToVariabele"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                
                #如果 $conf["dbPort"] 有設置
                if(isset($conf["dbPort"])){
                
                        $conf["db"]["sendQueryDataToVariabele"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的port 3306
                
                        }#if end
                
                $conf["db"]["sendQueryDataToVariabele"]["valueName"]=array("count");#陣列,爲該資料表列項目的每一項所要對應的變數名稱,預設為欄位的名稱($conf["tableValueName"]).
                #參考資料:
                #http://www.w3school.com.cn/php/func_mysql_fetch_array.asp => 解析取得的資料表欄位時,能夠選擇回傳含有欄位名稱與數字代表的key.
                $getCountResult=db::sendQueryDataToVariabele($conf["db"]["sendQueryDataToVariabele"]);
                unset($conf["db"]["sendQueryDataToVariabele"]);

                #如果 $getCountResult["status"] 等於 "false"
                if($getCountResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$getCountResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #取得資料筆數
                $result["dataCount"]=$getCountResult["dataContent"]["count"][0];
                        
                #執行到這邊代表執行正常
                $result["status"]="true";

                #回傳查詢的結果; 
                return $result; 
                                        
                }#function getDataCountsInTable end

        /*
        #函式說明:
        #插入資料到指定的資料表裡面,插入資料完畢可以選擇是否要進行轉址。
        #回傳結果:  
        #$result["status"],爲查詢是否成功,若爲"true"則成功,若爲"false"則表示失敗了.
        #$result["error"],錯誤訊息.
        #$result["sql"],執行的sql語法.
        #$result["lastInsertId"],新增的資料id.
        #$result["function"],當前執行的涵式
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,要選取的資料庫名稱
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["tableName"],字串,爲要插入資料的資料表名稱
        $conf["tableName"]="";
        #$conf["columnName"],字串陣列,爲資料表的項目名稱.例如:$conf["columnName"]=array("columnName1","columnName2","columnName3",...);
        $conf["columnName"]=array();
        #$conf["insertValue"],字串陣列,爲要插入度數值.#例如:$conf["insertValue"]=array("insertValue1","insertValue2","insertValue3",...);
        $conf["insertValue"]=array();
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表用預設的 3306 port.
        #$conf["dbPort"]=$dbPort;
        #參考資料:
        #http://www.javaworld.com.tw/jute/post/view?bid=21&id=173738&sty=1
        #備註:
        #無.
        */      
        public static function insertData($conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","selectedDataBaseName","tableName","columnName","insertValue");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                #備註:
                #功能與checkExistAndType函式相同
                $variableCheck=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);

                #如果 $variableCheck["status"] 等於 "false"
                if($variableCheck["status"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置執行錯誤的訊息
                        $result["error"]=$variableCheck;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #如果 $variableCheck["passed"] 等於 "false"
                if($variableCheck["passed"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置執行錯誤的訊息
                        $result["error"]=$variableCheck;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #連線到資料庫
                #函式說明:
                #連線到資料庫,結果會回傳一個陣列
                #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
                #$result["connectInformation"],爲回傳的mysql連線資訊.
                #$result["error"],錯誤訊息  .
                #$result["function"],當前執行的函數名稱.       
                #必填參數:
                $conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                #$conf["dbName"],字串,爲要連的資料庫名稱
                $conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
        
                $con=db::dbConnect($conf["db"]["dbConnect"]);
                unset($conf["db"]);

                #如果連線到資料庫失敗
                if($con["status"]==="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"]=$con;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #var_dump($con);
                        
                #取得mysqli物件
                $mysqli=$con["connectInformation"];

                #輸入資料到 資料表 board 的語法
                $str1="insert into `".$conf["selectedDataBaseName"]."`.`".$conf["tableName"]."`(";
        
                #取得一筆資料有幾個項目
                $count=count($conf["columnName"]);

                #跑 $count-1 次,插入第一筆到最倒數第二筆
                for($i=0;$i<=($count-2);$i++){
                
                        #放入欲插入的項目名稱
                        $str1=$str1."`".$conf["columnName"][$i]."`".",";
                        
                        }#for end

                #插入最後一筆項目名稱
                $lastItem = ($count-1);
                $str1=$str1."`".$conf["columnName"][$lastItem]."`)";  
        
                #要插入的數值語法開始
                $str2=" values (";

                #跑 $count-1 次
                for($i=0;$i<=($count-2);$i++){

                        #插入第一筆到最倒數第二筆的資料內容    
                        $str2=$str2."'".mysqli_real_escape_string($mysqli,$conf["insertValue"][$i])."',";
                        
                        }#for end

                #插入最後一筆的資料內容
                $lastItem = ($count-1);
                $str2=$str2."'".mysqli_real_escape_string($mysqli,$conf["insertValue"][$lastItem])."');";  

                #合併要執行的sql語法
                $sqlString=$str1.$str2;
        
                #執行sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryConn"],用於資料庫操作的變數.
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db::execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db::execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db::execMysqlQuery"]["dbSql"]=$sqlString;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){
                        
                        $conf["db::execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設置
                if(isset($conf["dbPort"])){
                        
                        $conf["db::execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
                        
                        }#if end
                
                #$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
                $conf["db::execMysqlQuery"]["dbLink"]=$mysqli;
                #$conf["autoClose],字串,"true"代表要自動斷線,預設為"true"會自動斷線
                $conf["db::execMysqlQuery"]["autoClose"]="false";
                $mysqlQueryResult=db::execMysqlQuery($conf["db::execMysqlQuery"]);
                unset($conf["db::execMysqlQuery"]);
        
                #若執行 query 語法失敗
                if($mysqlQueryResult["status"]=="false"){
                        
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$mysqlQueryResult;                             

                        #回傳結果
                        return $result;

                        }#else end
                
                #取得新增的該筆記錄id
                $result["lastInsertId"]=mysqli_insert_id($mysqlQueryResult["queryConn"]);

                #取得執行的sql字串
                $result["sql"]=$mysqlQueryResult["queryString"];

                #執行到這邊代表執行成功
                $result["status"]="true";

                #回傳結果
                return $result;
                
                }#function insertData end

        /*
        #函式說明:  
        #更新資料表裏面的資料
        #回傳結果:  
        #$result["status"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了
        #$result["error"],錯誤訊息
        #$result["function"],當前執行的函數名稱
        #$result["sql"],執行的sql語法.
        #$result["argu"],使用的參數.
        #必填參數:
        #$conf["fileArgu"],字串,變數__FILE__的內容.
        $conf["fileArgu"]=__FILE__;
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,要選取的資料庫名稱
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["tableName"],字串,要修改的資料表名稱
        $conf["tableName"]="";
        #$conf["whereColumn"],字串陣列,爲用來判斷要更新的哪筆資料的欄位名稱,須爲陣列值
        $conf["whereColumn"]=array("");
        #$conf["whereValue"],字串陣列,為用來判斷是要更新哪筆資料的欄位對應數值,須爲陣列值
        $conf["whereValue"]=array("");
        #$conf["tableColumnName"],字串陣列,資料表項目的名稱陣列
        $conf["tableColumnName"]=array("");
        #$conf["updateDataValue"],字串陣列,要更改成對應資料表項目的內容,須為陣列值
        $conf["updateDataValue"]=array("");
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
        #$conf["dbPort"]=$dbPort;
        #參考資料:
        #無.
        #備註:
        #建議修改 whereValue 參數為多維陣列,每個元素為有兩個元素的陣列,其元素的key為operator者代表運算子,其value可以為"=","<>",">","<",預設為"=";key為value者代表運算元,亦即用來比較的數字、字串等.
        */
        public static function updateDataTableContent($conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!=="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #儲存使用的參數
                $result["argu"]=$conf;
                
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["variableCheck"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["variableCheck"]["isexistMuti"]["variableCheck"]=array("fileArgu","dbAddress","dbAccount","selectedDataBaseName","tableName","whereColumn","whereValue","tableColumnName","updateDataValue");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["variableCheck"]["isexistMuti"]["variableType"]=array("string","string","string","string","string","array","array","array","array");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                #$conf["variableCheck"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["variableCheck"]["isexistMuti"]);
                unset($conf["variableCheck"]["isexistMuti"]);
                
                #如果檢查參數作業出錯
                if($checkResult["status"]==="false"){
                        
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #如果檢查沒通過
                if($checkResult["passed"]==="false"){
                        
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #將陣列變數 $conf["whereColumn"] 與 $conf["whereValue"] 對應的變數中不存在的 $conf["whereValue"][$i] 元素去掉,並同時調整 $conf["whereColumn"] 使兩者變數的元素數量均相同。
                #函式說明:
                #比對兩個陣列變數,如果其中一個陣列變數的元素不存在,則將之消去,然後進行替補。另一個陣列變數則也要做同步的動作。
                #回傳結果::
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常。
                #$result["error"],錯誤訊息。
                #$result["content"],組合成新值的一維陣列。
                #$result["function"],當前執行的函數名稱。
                #必填參數:
                $conf_compareAndModify2Arrays["arraysA"]=$conf["tableColumnName"];#用來跟陣列變數B比較的陣列變數A
                $conf_compareAndModify2Arrays["arraysB"]=$conf["updateDataValue"];#用來跟陣列變數A比較的陣列變數B
                $compareAndModifyTwoArrays=arrays::compareAndModifyTwoArrays($conf_compareAndModify2Arrays);
                unset($conf_compareAndModify2Arrays);

                #如果 arrays::compareAndModifyTwoArrays 執行失敗
                if($compareAndModifyTwoArrays["status"]==="false"){
                        
                        #設置執行錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$compareAndModifyTwoArrays;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #將整理好的 $result["compareAndModify2Arrays"]["A"] 放到 $conf["whereColumn"] ; $result["compareAndModify2Arrays"]["B"] 放到 $conf["whereValue"]
                $conf["tableColumnName"]=$compareAndModifyTwoArrays["newArraysA"];
                $conf["updateDataValue"]=$compareAndModifyTwoArrays["newArraysB"];

                #更新 $conf["selectedDatabaseName"].$tableName 資料表
                $selectUpdateTableSql="UPDATE `".$conf["selectedDataBaseName"]."`.`".$conf["tableName"]."` "; 
                
                #更新資料表資料語法的一部分
                $chooseColumnSql="SET ";

                #取得一筆資料有幾個項目
                $counts=count($conf["tableColumnName"]);

                #儲存宣告shell變數的指令陣列
                $shellVarDefined=array();

                #儲存要宣告的變數
                $varDefined=array();

                #有$count欄項目,
                for($i=0;$i<$counts;$i++){

                        #如果是最後一項要更新的資料
                        if($i==($counts-1)){

                                #如果內容不為字串
                                if(gettype($conf["updateDataValue"][$i])!=="string"){
                                
                                        #設置執行錯誤識別
                                        $result["status"]="false";
                                        
                                        #設置錯誤訊息
                                        $result["error"][]="欲使用的變數不為字串";
                                        
                                        #設置錯誤訊息
                                        $result["error"][]=$conf["updateDataValue"][$i];
                                        
                                        #回傳結果
                                        return $result;
                                
                                        }#if end

                                #定義 shell script 變數
                                $shellVarDefined[]=array("cmd"=>"x".$i."=","param"=>array($conf["updateDataValue"][$i]));
                                
                                #定義sql變數
                                $varDefined[]="select @x".$i." := '\${x".$i."}';";

                                #將要更新的內容字串串接,結尾無逗號
                                $chooseColumnSql = $chooseColumnSql."`".$conf["tableColumnName"][$i]."`= @x".$i." ";
                                
                                }#判斷式結束

                        #如果不是最後一項要更新的資料
                        if($i!=($counts-1)){

                                #定義 shell script 變數
                                $shellVarDefined[]=array("cmd"=>"x".$i."=","param"=>array($conf["updateDataValue"][$i]));
                                
                                #定義sql變數
                                $varDefined[]="select @x".$i." := '\${x".$i."}';";

                                #將要更新的內容字串串接,結尾有逗號
                                $chooseColumnSql = $chooseColumnSql."`".$conf["tableColumnName"][$i]."`= @x".$i." ,";
                                
                                }#判斷式結束
                
                        }#回圈結束

                #取得條件有幾項
                $conditionArrayCounts=count($conf["whereColumn"]);

                #構成條件式
                for($i=0;$i<$conditionArrayCounts;$i++){

                        #如果是第一筆
                        if($i===0){

                                #尋找的條件式
                                $condition="WHERE `".$conf["whereColumn"][$i]."` = '".$conf["whereValue"][$i]."'";

                                #測試有無抓到第一個條件
                                #var_dump($condition);

                                }#判斷式結束

                        #如果不是第一筆
                        if($i!==0){

                                #其它條件
                                $condition=$condition." AND `".$conf["whereColumn"][$i]."` = '".$conf["whereValue"][$i]."'";

                                #測試有無抓到其它條件
                                #var_dump($condition);
                                
                                }#判斷式結束

                        }#迴圈結束

                #初始化定義變數的sql
                $varDefineStr="";

                #針對每個要使用的數值
                foreach($varDefined as $index=>$var){
                        
                        #累加定義變數的sql
                        $varDefineStr=$varDefineStr.$var;
                        
                        }#foreach end

                #合併所有的語法成一句完整的語法 
                $sqlString = $varDefineStr.$selectUpdateTableSql.$chooseColumnSql.$condition;

                #debug
                #var_dump(__LINE__,$sqlString);

                #設置取得執行的sql語法
                $result["sql"]=$sqlString;

                #函式說明:
                #用shell執行mysql指令.
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["function"],當前執行的涵式
                #$result["queryString"],mysql查詢的語言.
                #必填參數:
                #$conf["fileArgu"],字串,變數__FILE__的內容.
                $conf["db::shell"]["fileArgu"]=$conf["fileArgu"];
                #$conf["dbSql"],字串,要執行sql語法
                $conf["db::shell"]["dbSql"]=$sqlString;
                #$conf["dbAddress"],字串,爲mysql-Server的位置。
                $conf["db::shell"]["dbAddress"]=$conf["dbAddress"];
                #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號。
                $conf["db::shell"]["dbAccount"]=$conf["dbAccount"]; 
                #可省略參數:
                $conf["db::shell"]["pre"]=$shellVarDefined;
                                
                #如果有設定密碼
                if(isset($conf["dbPassword"])){
                
                        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼。
                        $conf["db::shell"]["dbPassword"]=$conf["dbPassword"];
        
                        }#if end
                                
                #$conf["dbName"],字串,爲要連的資料庫名稱
                $conf["db::shell"]["dbName"]=$conf["selectedDataBaseName"];
                
                #如果有設定port
                if(isset($conf["dbPort"])){
                
                        #$conf["dbPort"],字串,為連線到mysql-Server時對應的port,可省略,預設為3306.
                        $conf["db::shell"]["dbPort"]=$conf["dbPort"];
                
                        }#if end
                
                $shell=db::shell($conf["db::shell"]);
                unset($conf["db::shell"]);
                
                #如果執行sql失敗
                if($shell["status"]==="false"){
                
                        #設置執行不正常
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$shell;
                                
                        #回傳結果
                        return $result;
                                
                        }#if end
                        
                #設置執行正常
                $result["status"]="true";
                
                #回傳結果
                return $result;

                }#function updateDataTableContent end

        /*
        #函式說明:
        #將滿足條件的資料從資料表中刪除
        #回傳結果:  
        #$result["status"],爲查詢是否成功,若爲0則成功,若爲1則表示失敗了
        #$result["function"],當前執行的函數名稱.
        #$result["error"],錯誤訊息
        #$result["sql"],執行的語法
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,要選取的資料庫名稱
        $conf["selectedDataBaseName"]=$dbName;
        #$conf["selectedDataTableName"],字串,要選取的資料表的名稱
        $conf["selectedDataTableName"]="";
        #$conf["whereColumn"],字串陣列,爲用來判斷要刪除的哪筆資料的欄位名稱,須爲陣列值
        $conf["whereColumn"]=array("");
        #$conf["whereValue"]=,字串陣列,為用來判斷是要刪除哪筆資料的欄位對應數值,須爲陣列值
        $conf["whereValue"]=array("");  
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
        #$conf["dbPort"]=$dbPort;
        #$conf["WhereColumnOperator"],字串陣列,用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
        #$conf["WhereColumnOperator"]=array("");
        #$conf["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值,預設皆爲AND。其數量應爲要判斷的欄位數量減一。
        #$conf["WhereColumnAndOr"]=array("");
        #參考資料:
        #無.
        #備註:
        #無.
        */      
        public static function deleteDataFromTable(&$conf){
        
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end

                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName","selectedDataTableName","whereColumn","whereValue");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string","array","array");
                #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                #$conf["variableCheck::checkArguments"]["canBeEmptyString"]="false";
                #$conf["variableCheck::checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort","WhereColumnOperator","WhereColumnAndOr");
                #$conf["variableCheck::checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string","array","array");
                #$conf["variableCheck::checkArguments"]["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null,null,null);
                #$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["variableCheck::checkArguments"]["arrayCountEqualCheck"][]=array("WhereColumnOperator","WhereColumnAndOr");
                #var_dump($conf["variableCheck::checkArguments"]);
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);

                #如果檢查作業出出錯
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果檢查作業出出錯
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end

                #刪除資料的語法開始,指定了表格的名稱
                $sql="DELETE FROM `".$conf["selectedDataBaseName"]."`.`".$conf["selectedDataTableName"]."` ";

                #取得有幾個條件
                $counts=count($conf["whereColumn"]);

                #連線到資料庫
                #函式說明:
                #連線到資料庫,結果會回傳一個陣列
                #$result["status"],若連線成功則爲"true",連線失敗則爲"false".
                #$result["connectInformation"],爲回傳的mysql連線資訊.
                #$result["error"],錯誤訊息  .
                #$result["function"],當前執行的函數名稱.       
                #必填參數:
                $conf["db"]["dbConnect"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["dbConnect"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                #$conf["dbName"],字串,爲要連的資料庫名稱
                $conf["db"]["dbConnect"]["dbName"]=$conf["selectedDataBaseName"];
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設定
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["dbConnect"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設定
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["dbConnect"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
        
                $con=db::dbConnect($conf["db"]["dbConnect"]);
                unset($conf["db"]);

                #如果連線到資料庫失敗
                if($con["status"]==="false"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"]=$con;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #var_dump($con);        
                        
                #取得mysqli物件
                $mysqli=$con["connectInformation"];

                #條件語句
                for($i=0;$i<$counts;$i++){
                
                        #如果 $conf["WhereColumnOperator"] 不存在
                        if(!isset($conf["WhereColumnOperator"])){
                                
                                #如果 $conf["WhereColumnOperator"][$i] 不存在
                                if(!isset($conf["WhereColumnOperator"][$i])){
                                        
                                        #設置為 "="
                                        $conf["WhereColumnOperator"][$i]="=";
                                        
                                        }#if end
                                                                        
                                }#if end
                                
                        #反之若 $conf["WhereColumnOperator"][$i] 不存在
                        else if(!isset($conf["WhereColumnOperator"][$i])){
                                                                                
                                #設置為 "="
                                $conf["WhereColumnOperator"][$i]="=";
                                                                        
                                }#if end
                
                        #以下變數應該要為字串
                        $checkedVar["whereColumn"]=$conf["whereColumn"][$i];
                        $checkedVar["WhereColumnOperator"]=$conf["WhereColumnOperator"][$i];
                        $checkedVar["whereValue"]=$conf["whereValue"][$i];
                        
                        #函式說明:
                        #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                        #$reuslt["error"],執行不正常結束的錯訊息陣列.
                        #$result["function"],當前執行的函式名稱.
                        #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                        #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                        #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                        #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                        #必填參數:
                        #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                        $conf["variableCheck::checkArguments"]["varInput"]=&$checkedVar;
                        #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                        $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("whereColumn","WhereColumnOperator","whereValue");
                        #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                        $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                        #$conf["variableCheck::checkArguments"]["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                        $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                        #可省略參數:
                        #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true"。
                        #$conf["canBeEmptyString"]="false";
                        #$conf["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                        #$conf["skipableVariableName"]=array();
                        #$conf["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                        #$conf["skipableVariableType"]=array();
                        #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                        #$conf["skipableVarDefaultValue"]=array("");
                        #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                        #$conf["arrayCountEqualCheck"][]=array();
                        $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                        unset($conf["variableCheck::checkArguments"]);
                
                        #如果檢查失敗
                        if($checkResult["status"]=="false"){
                                
                                #設置執行錯誤
                                $result["status"]="false";
                                
                                #設置執行錯誤訊息
                                $result["error"]=$checkResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                
                        #如果檢查失敗
                        if($checkResult["passed"]=="false"){
                                
                                #設置執行錯誤
                                $result["status"]="false";
                                
                                #設置執行錯誤訊息
                                $result["error"]=$checkResult;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                
                        #如果是第一筆
                        if($i==0){

                                #如果 $conf["WhereColumnOperator"] 存在
                                if(isset($conf["WhereColumnOperator"])){

                                        #設定第一個條件
                                        $sql = $sql." WHERE `".$conf["whereColumn"][$i]. "` ".$conf["WhereColumnOperator"][$i]." '". mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";
                        
                                        }#if end

                                #反之 $conf["WhereColumnOperator"] 不存在
                                else{

                                        #設定第一個條件
                                        $sql = $sql." WHERE `".$conf["whereColumn"][$i]. "` = '". mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'"; 

                                        }#else end
                                
                                }#判斷式

                        #如果不是第一個條件
                        if($i!=0){

                                #如果 $conf["WhereColumnAndOr"] 不存在 
                                if(!isset($conf["WhereColumnAndOr"])){

                                        #將 $conf["WhereColumnAndOr"] 裏面的元素置換爲 AND
                                        #函式說明:
                                        #建立一個陣列,可以指派陣列的內容,然後回傳
                                        #回傳結果::
                                        #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                                        #$result["function"],當前執行的函數名稱.
                                        #$result["error"],錯誤訊息陣列.
                                        #$result["content"],爲陣列變數內容
                                        #必填參數:
                                        $conf_arrays_create["arrayContent"]=array("AND");#陣列元素的內容,須爲陣列值。
                                        #可省略參數:
                                        $conf_arrays_create["arrayCounts"]=$counts-1;#爲陣列的元素有幾個,若沒設定,則數量爲$conf["arrayContent"]裏的元素數量
                                        $conf_arrays_create["theSameAs"]="true";#若設爲"true",則所有元素內容都跟第一個元素內容相同
                                        $create=arrays::create($conf_arrays_create);
                                        unset($conf_arrays_create);
                                        
                                        #如果建立陣列失敗
                                        if($create["status"]=="false"){
                                                
                                                #設置執行錯誤
                                                $result["status"]="false";
                                                
                                                #設置執行錯誤訊息
                                                $result["error"]=$create;
                                                
                                                #回傳結果
                                                return $result;
                                                
                                                }#if end

                                        #取得 $conf["WhereColumnAndOr"] 參數內容
                                        $conf["WhereColumnAndOr"]=$create["content"];

                                        }#if end

                                #如果 $conf["WhereColumnOperator"] 存在
                                if(isset($conf["WhereColumnOperator"])){

                                        #設定其它條件
                                        $sql=$sql." ".$conf["WhereColumnAndOr"][$i-1]." `".$conf["whereColumn"][$i]. "` ".$conf["WhereColumnOperator"][$i]." '".mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";                 

                                        }#if end                        

                                #反之 $conf["WhereColumnOperator"] 不存在
                                else{

                                        #設定其它條件
                                        $sql=$sql." ".$conf["WhereColumnAndOr"][$i-1]." `".$conf["whereColumn"][$i]. "` = '".mysqli_real_escape_string($mysqli,$conf["whereValue"][$i])."'";                    

                                        }#else end

                                }#判斷式

                        }#迴圈結束

                #sql語法結束
                $sqlString=$sql.";";                    

                #執行sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db"]["execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["execMysqlQuery"]["dbSql"]=$sqlString;#要執行sql語法
                #可省略參數: 
                
                #如果 $conf["dbPassword"] 有設置
                if(isset($conf["dbPassword"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果 $conf["dbPort"] 有設置
                if(isset($conf["dbPort"])){
                        
                        $conf["db"]["execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的 3306 port.
                        
                        }#if end
                        
                #$conf["dbLink"],物件,mysqli物件,由mysqli_connect()回傳的物件內容,若為數值則改用賬號密碼等資訊進行連線,反之則沿用連線物件.
                $conf["db"]["execMysqlQuery"]["dbLink"]=$mysqli;
                                        
                $db["execMysqlQuery"]=db::execMysqlQuery($conf["db"]["execMysqlQuery"]);
                unset($conf["db"]["execMysqlQuery"]);

                #如果sql執行有誤
                if($db["execMysqlQuery"]["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$db["execMysqlQuery"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #取得執行的sql語法
                $result["sql"]=$db["execMysqlQuery"]["queryString"];
                        
                #執行到這邊表執行成功
                $result["status"]="true";

                #回傳結果
                return $result;
        
                }#函式結束
        
        /*
        #函式說明:
        #取得目標資料庫底下所有資料表的索引鍵,可作為foreign key的可用欄位,欄位必須為index key或primary key.
        #回傳結果::
        #$result["status"],執行是否成功"true"為執行成功,"false"為執行失敗。
        #$result["error"],執行的錯誤訊息.
        #$result["function"],當前執行函式名稱.
        #$result["content"][$i]["tableName"],欄位所屬的資料表名稱.
        #$result["content"][$i]["columnKey"],是"primary key"還是"index key".
        #$result["content"][$i]["columnName"],欄位名稱.
        #$result["content"][$i]["typeAndLength"],欄位儲存形態與長度限制.
        #$result["content"][$i]["tableDotColumnName"],欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
        #$result["content"][$i]["tableDotColumnVarType"],「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
        #$result["indexKey"]["tableName"],index key欄位所屬的資料表陣列
        #$result["indexKey"]["columnName"],index key的欄位名稱陣列
        #$result["indexKey"]["typeAndLength"],index key的欄位儲存型態與長度限制陣列
        #$result["indexKey"]["tableDotColumnName"],index key的 「資料索引鍵所屬資料表名稱.索引鍵欄位名稱」 陣列
        #$result["indexKey"]["tableDotColumnVarType"],index key的 「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」 陣列
        #$result["primaryKey"][$tableCount]["dtName"],主鍵所屬的資料表名稱,若沒有主鍵則為null.
        #$result["primaryKey"][$tableCount]["columnName"],資料表的主鍵欄位名稱,若沒有主鍵則為null.
        #$result["primaryKey"][$tableCount]["columnVarType"],資料表的主鍵欄位的儲存形態,若沒有主鍵則為null..
        #$result["primaryKey"][$tableCount]["columnVarLengthLimit"],資料表的主鍵欄位的儲存長度限制,若沒有主鍵則為null.
        #$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"],儲存當前資料表的主鍵欄位的儲存形態與長度限制,若沒有主鍵則為null.
        #必填參數:
        #$conf["dbAddress"],字串,爲mysql-Server的位置
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,爲用於連入mysql-Server時要使用的帳號
        $conf["dbAccount"]=$dbAccount;
        #$conf["selectedDataBaseName"],字串,爲目標資料表所屬的資料庫
        $conf["selectedDataBaseName"]="";#
        #可省略參數:
        #$conf["dbPassword"],字串,爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
        #$conf["dbPassword"]=$dbPassword;#
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
        #$conf["dbPort"]=$dbPort;
        #參考資料:
        #無.
        #備註:
        #目前只能取得一個資料庫的所有索引鍵.
        */
        public static function getAllIndexKeyInAllDataBase(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBeCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBeCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBeCheckedVarName]["error"],每個參數設定的錯誤訊息
                #$result["shouldNotBeEmpty"],不應該為空字串或控陣列的變數.
                #$result["argu"],字串陣列,目前輸入的參數名稱陣列.
                #$result["legalVarName"],字串陣列,合法可用的參數名稱陣列.
                #$result["notNeedVar"],字串陣列,多餘的參數名稱.
                #必填參數:
                #$conf["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck::checkArguments"]["varInput"]=&$conf;
                #$conf["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,元素數量需要跟"mustBeFilledVariableType"參數的元素數量一致,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","selectedDataBaseName");
                #$conf["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列,元素數量需要跟"mustBeFilledVariableName"參數的元素數量一致,例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double","resource","object"); , null代表不指定變數形態.
                $conf["variableCheck::checkArguments"]["mustBeFilledVariableType"]=array("string","string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck::checkArguments"]["referenceVarKey"]="variableCheck::checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],字串,必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"true",可以為空字串.
                #$conf["canBeEmptyString"]="false";
                #$conf["skipableVariableCanNotBeEmpty"],字串陣列,哪些可省略參數不可以為空字串或集合.
                $conf["variableCheck::checkArguments"]["skipableVariableCanNotBeEmpty"]=array("dbPassword","dbPort");
                #$conf["skipableVariableName"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck::checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["skipableVariableType"],陣列字串,爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck::checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,null與代表不指定,若預設值是參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                $conf["variableCheck::checkArguments"]["skipableVarDefaultValue"]=array(null,null);
                #$conf["arrayCountEqualCheck"],字串陣列,為檢查哪些陣列參數的元素數量要一樣,$conf["arrayCountEqualCheck"][$i]=array()為第$i組key為哪些的變數其元素數量要相等.
                #$conf["arrayCountEqualCheck"][]=array();
                #參考資料:
                #array_keys=>http://php.net/manual/en/function.array-keys.php
                $checkResult=variableCheck::checkArguments($conf["variableCheck::checkArguments"]);
                unset($conf["variableCheck::checkArguments"]);
                
                #如果檢查有誤
                if($checkResult["status"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                                                        
                        }#if end

                #如果檢查不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                                                        
                        }#if end
                        
                #取得資料表列表
                #查詢特定資料庫裡的資料表列表,會回傳查詢的結果
                #$result["connectStatus"],若成功則爲0,失敗則爲1。
                #$result["connectInformation"],爲回傳的mysql連線資訊。
                #$result["tableName"] 爲查詢的資料庫名稱陣列,
                        #第一筆資料庫名稱爲$result["tableName"][0],
                        #第二筆資料庫名稱爲$result["tableName"][1],
                        #其餘以此類推。
                #$result["dataCounts"] 爲資料庫的總筆數
                #必填參數:
                $conf["db"]["getDataTableList"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db"]["getDataTableList"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db"]["getDataTableList"]["selectedDataBaseName"]=$conf["selectedDataBaseName"];#爲指定的資料庫名稱
                #可省略參數:
                
                #如果有設定 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                
                        #則套用設定
                        $conf["db"]["getDataTableList"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                        }#if end
                        
                #如果有設定 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                
                        #則套用設定
                        $conf["db"]["getDataTableList"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,預設為3306.
                
                        }#if end
                
                #原始語法:
                #show tables FROM databaseName,代表檢視databaseName裡面的資料表清單。
                $tableList=db::getDataTableList($conf["db"]["getDataTableList"]);
                unset($conf["db"]);
                
                #debug
                #var_dump($tableList);
                
                #如果 資料表清單 取得失敗
                if($tableList["status"]=="false"){
                        
                        #設置執行錯誤的識別
                        $result["status"]="fasle";
                        
                        #設置錯誤訊息
                        $result["error"]="取得資料表清單失敗";
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #初始化資料表的計數變數
                $tableCount=0;
                
                #初始化儲存 index key
                $result["indexKey"]=array();

                #初始化儲存index key所屬的表格 
                $result["indexKey"]["tableName"]=array();

                #根據每個資料表
                foreach($tableList["tableName"] as $tableName){
                        
                        #取得該資料表的欄位資訊
                        #函式說明:
                        #取得資料表所有欄位的詳細資訊
                        #回傳的內容:
                        #$result["status"],執行結果,"true"代表執行成功;"false"代表執行失敗
                        #$result["error"],錯誤訊息陣列
                        #$result["sql"],執行的sql語法
                        #$result["oriInput"],原始的資料表欄位資訊
                        #$result["everyLine"],逐行的欄位資訊
                        #$result["tableName"],當前查詢的資料表名稱
                        #$result["engine"],資料表使用的儲存引擎
                        #$result["charset"],資料表預設的編碼
                        #$result["columnName"][$i],各欄位的名稱陣列,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnVarTypeAndLengthLimit"][$i],各欄位儲存的變數形態與長度限制,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnVarType"][$i],各欄位變數儲存的型態,$i爲1開始的數字,也可以使用欄位的名稱.
                        #$result["columnVarLengthLimit"][$i],個欄位變數的長度限制,若不存在其限制,則為"",$i爲1開始的數字,也可以使用欄位的名稱.
                        #$result["columnNotNull"][$i],各欄位是否可以不爲null,"true"爲可以不爲null;"false"爲可以爲"null",$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnAutoIncrement"][$i],各欄位是否會自動加1,"true"爲會;"false"爲不會,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnDefault"][$i],各欄位的預設內容,若無則爲"沒有指定",$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnOnUpdateAction"][$i],當資料有修改時,該欄位的內容要怎麼因應,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnCharacterSet"][$i],各欄位使用的CharacterSet,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["columnCollate"][$i],各欄位使用的Collate,$i爲0開始的數字,也可以使用欄位的名稱。
                        #$result["key"]["exist"],該資料表是否有索引鍵,"true"代表有;"false"代表沒有。
                        #$result["key"][$j],該資料表的索引鍵陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                        #$result["keyConstraintName"][$j],該資料表用於識別索引鍵的CONSTRAINT名稱陣列,$j爲0開始的數字,也可以使用欄位的名稱。
                        #$result["primaryKey"],該資料表的主鍵
                        #$result["foreignKey"]["exist"],該資料表是否有foreign key,"true"代表有;"fasle"代表沒有。
                        #$result["foreignKey"]["constraintName"][$k],用來識別外鍵的CONSTRAINT名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                        #$result["foreignKey"]["columnName"][$k],外鍵的名稱陣列,$k爲0開始的數字,也可以使用欄位的名稱。
                        #$result["foreignKey"]["referencesTable"][$k],外鍵參照的欄位,$k爲0開始的數字
                        #$result["foreignKey"]["referencesColumn"][$k],外鍵參照的欄位屬於哪個資料表,$k爲0開始的數字
                        #$result["foreignKey"]["OnUpdateAction"][$l],當參照的欄位資料更新時,會怎麼同步,$l爲0開始的數字
                        #$result["foreignKey"]["OnDeleteAction"][$m],當參照的欄位資料移除時,會怎麼同步,$m爲0開始的數字
                        #必填參數:
                        $conf["db"]["getTableColumnDetailInfo"]["dbAddress"]=$conf["dbAddress"];#資料庫的網路位置
                        $conf["db"]["getTableColumnDetailInfo"]["dbAccount"]=$conf["dbAccount"];#連線到資料庫要用的帳號
                        $conf["db"]["getTableColumnDetailInfo"]["selectedDataBase"]=$conf["selectedDataBaseName"];#連線到資料庫要選擇的資料庫
                        $conf["db"]["getTableColumnDetailInfo"]["selectedDataTable"]=$tableName;#連線到資料庫要檢視的資料表
                        #可省略參數:
                        
                        #如果有設定 $conf["dbPassword"]
                        if(isset($conf["dbPassword"])){
                
                                #則套用設定
                                $conf["db"]["getTableColumnDetailInfo"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                
                                }#if end
                        
                        #如果有設定 $conf["dbPort"]
                        if(isset($conf["dbPort"])){
                        
                                #則套用設定
                                $conf["db"]["getTableColumnDetailInfo"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,預設為3306.
                        
                                }#if end
                        
                        $columnData=db::getTableColumnDetailInfo($conf["db"]["getTableColumnDetailInfo"]);
                        unset($conf["db"]["getTableColumnDetailInfo"]);
                        
                        #如果取得資料表結構詳細資訊失敗
                        if($columnData["status"]=="false"){
                                
                                #設置執行錯誤的識別
                                $result["status"]="fasle";
                                
                                #設置錯誤訊息
                                $result["error"]=$columnData;
                                
                                #回傳結果
                                return $result;
                                
                                }#if end
                                                
                        #儲存當前資料表的主鍵所屬資料表名稱
                        $result["primaryKey"][$tableCount]["dtName"]=$tableName;
                        
                        #如果該資料表沒有主鍵
                        if(!isset($columnData["primaryKey"])){
                                
                                #將數值設為null
                                
                                #儲存當前資料表的主鍵欄位名稱
                                $result["primaryKey"][$tableCount]["columnName"]=null;
                                        
                                #儲存當前資料表的主鍵欄位的儲存形態
                                $result["primaryKey"][$tableCount]["columnVarType"]=null;
                                
                                #儲存當前資料表的主鍵欄位的儲存長度限制
                                $result["primaryKey"][$tableCount]["columnVarLengthLimit"]=null;
                                
                                #儲存當前資料表的主鍵欄位的儲存形態與長度限制
                                $result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"]=null;
                                                                        
                                }#if end
                                
                        #反之有主鍵
                        else{
                                
                                #儲存當前資料表的主鍵欄位名稱
                                $result["primaryKey"][$tableCount]["columnName"]=$columnData["primaryKey"];
                                        
                                #儲存當前資料表的主鍵欄位的儲存形態
                                $result["primaryKey"][$tableCount]["columnVarType"]=$columnData["columnVarType"][$columnData["primaryKey"]];
                                
                                #儲存當前資料表的主鍵欄位的儲存長度限制
                                $result["primaryKey"][$tableCount]["columnVarLengthLimit"]=$columnData["columnVarLengthLimit"][$columnData["primaryKey"]];
                                
                                #儲存當前資料表的主鍵欄位的儲存形態與長度限制
                                $result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"]=$columnData["columnVarTypeAndLengthLimit"][$columnData["primaryKey"]];
                                                                        
                                }#else end
                                                                                        
                        #資料表計數加1
                        $tableCount++;                  
                                                                        
                        #如果有index key
                        if($columnData["key"]["exist"]=="true"){
                                
                                #依據每個index key
                                for($i=0;$i<count($columnData["key"]);$i++){
                                        
                                        #如果該元素不存在
                                        if(!isset($columnData["key"][$i])){
                                                
                                                #中斷迴圈
                                                break;
                                                
                                                }#if end
                                        
                                        #取得其index key欄位
                                        $tempColumnName=$result["indexKey"]["columnName"][]=$columnData["key"][$i];
                                        
                                        #如果 $columnData["columnVarTypeAndLengthLimit"][$i] 有設置
                                        if(isset($columnData["columnVarTypeAndLengthLimit"][$tempColumnName])){
                                                
                                                #取得該欄位的儲存變數型別與長度限制
                                                $result["indexKey"]["typeAndLength"][]=$columnData["columnVarTypeAndLengthLimit"][$tempColumnName];
                                                
                                                }#if end
                                        
                                        #反之
                                        else{
                                                
                                                #將 得該欄位的儲存變數型別與長度限制 設為 ""
                                                $result["indexKey"]["typeAndLength"][]="";
                                                
                                                }#else end      
                                                                                        
                                        #取得其index key的所屬資料表
                                        $result["indexKey"]["tableName"][]=$tableName;
                                        
                                        }#for end
                                                                        
                                }#if end
                        
                        }#foreach end
                
                #根據每個索引鍵欄位與其所屬的資料表來建立 「索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」 格式的陣列
                for($i=0;$i<count($result["indexKey"]["tableName"]);$i++){
                        
                        #設置 索引鍵所屬資料表名稱.索引鍵欄位名稱 格式的陣列
                        $result["indexKey"]["tableDotColumnName"][]=$result["indexKey"]["tableName"][$i].".".$result["indexKey"]["columnName"][$i];
                        
                        #設置 索引鍵所屬資料表名稱.索引鍵欄位名稱 欄位儲存型態與長度限制 格式的陣列
                        $result["indexKey"]["tableDotColumnVarType"][]=$result["indexKey"]["tableName"][$i].".".$result["indexKey"]["columnName"][$i]." ".$result["indexKey"]["typeAndLength"][$i];
                        
                        }#for end
                        
                #組裝主鍵與索引鍵的資訊
                #$result["content"][$i]["tableName"],欄位所屬的資料表名稱.
                #$result["content"][$i]["columnKey"],是"primary key"還是"index key".
                #$result["content"][$i]["columnName"],欄位名稱.
                #$result["content"][$i]["typeAndLength"],欄位儲存形態與長度限制.
                #$result["content"][$i]["tableDotColumnName"],欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
                #$result["content"][$i]["tableDotColumnVarType"],「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
                #$result["indexKey"]["tableName"],index key欄位所屬的資料表陣列
                #$result["indexKey"]["columnName"],index key的欄位名稱陣列
                #$result["indexKey"]["typeAndLength"],index key的欄位儲存型態與長度限制陣列
                #$result["indexKey"]["tableDotColumnName"],index key的 「資料索引鍵所屬資料表名稱.索引鍵欄位名稱」 陣列
                #$result["indexKey"]["tableDotColumnVarType"],index key的 「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」 陣列
                #$result["primaryKey"][$tableCount]["dtName"],主鍵所屬的資料表名稱,若沒有主鍵則為null.
                #$result["primaryKey"][$tableCount]["columnName"],資料表的主鍵欄位名稱,若沒有主鍵則為null.
                #$result["primaryKey"][$tableCount]["columnVarType"],資料表的主鍵欄位的儲存形態,若沒有主鍵則為null..
                #$result["primaryKey"][$tableCount]["columnVarLengthLimit"],資料表的主鍵欄位的儲存長度限制,若沒有主鍵則為null.
                #$result["primaryKey"][$tableCount]["columnVarTypeAndLengthLimit"],儲存當前資料表的主鍵欄位的儲存形態與長度限制,若沒有主鍵則為null.
                
                #能夠被外鍵參照的欄位計數
                $referenceColumnCount=0;
                
                #有幾個主鍵就執行幾次
                for($i=0;$i<count($result["primaryKey"]);$i++){
                        
                        #暫存當前資料表的名稱
                        $dtName=$result["primaryKey"][$i]["dtName"];
                        
                        #如果主鍵欄位名稱不為 null,亦即有主鍵
                        if($result["primaryKey"][$i]["columnName"]!=null){
                                
                                #儲存欄位所屬的資料表名稱.
                                $result["content"][$referenceColumnCount]["tableName"]=$dtName;
                                
                                #儲存是"primary key"還是"index key".
                                $result["content"][$referenceColumnCount]["columnKey"]="primary key";
                                
                                #儲存欄位名稱
                                $result["content"][$referenceColumnCount]["columnName"]=$result["primaryKey"][$i]["columnName"];
                                
                                #儲存欄位儲存形態與長度限制.
                                $result["content"][$referenceColumnCount]["typeAndLength"]=$result["primaryKey"][$i]["columnVarLengthLimit"];
                                
                                #儲存欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
                                $result["content"][$referenceColumnCount]["tableDotColumnName"]=$dtName.".".$result["primaryKey"][$i]["columnName"];
                                
                                #儲存欄位的「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
                                $result["content"][$referenceColumnCount]["tableDotColumnVarType"]=$dtName.".".$result["primaryKey"][$i]["columnName"]." ".$result["primaryKey"][$i]["columnVarTypeAndLengthLimit"];
                                        
                                #能夠被外鍵參照的欄位計數加1
                                $referenceColumnCount++;        
                                                                        
                                }#if end
                                
                        #用當前資料表的名稱取得索引鍵的資訊
                                
                        #所有資料表有幾個索引鍵就執行幾次
                        for($j=0;$j<count($result["indexKey"]["tableName"]);$j++){
                                
                                #如果是當前資料表的索引鍵
                                if($result["indexKey"]["tableName"][$j]==$dtName){
                                        
                                        #儲存欄位所屬的資料表名稱.
                                        $result["content"][$referenceColumnCount]["tableName"]=$dtName;
                                        
                                        #儲存是"primary key"還是"index key".
                                        $result["content"][$referenceColumnCount]["columnKey"]="index key";
                                        
                                        #儲存欄位名稱
                                        $result["content"][$referenceColumnCount]["columnName"]=$result["indexKey"]["columnName"][$j];
                                        
                                        #儲存欄位儲存形態與長度限制.
                                        $result["content"][$referenceColumnCount]["typeAndLength"]=$result["indexKey"]["typeAndLength"][$j];
                                        
                                        #儲存欄位的「鍵所屬資料表名稱.鍵欄位名稱」.
                                        $result["content"][$referenceColumnCount]["tableDotColumnName"]=$result["indexKey"]["tableDotColumnName"][$j];
                                        
                                        #儲存欄位的「資料索引鍵所屬資料表名稱.索引鍵欄位名稱 儲存變數型別與長度」.
                                        $result["content"][$referenceColumnCount]["tableDotColumnVarType"]=$result["indexKey"]["tableDotColumnVarType"][$j];
                                                
                                        #能夠被外鍵參照的欄位計數加1
                                        $referenceColumnCount++;        
                                                                                                
                                        }#if end
                                
                                }#for end
                        
                        }#for end
                        
                #執行到這邊代表執行成功
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function getAllIndexKeyInAllDataBase end 

        /*
        #函式說明:
        #將資料表輸出成csv檔案
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
        #$result["error"],錯誤訊息
        #$result["function"],當前執行的涵式
        #$result["csvFile"],輸出的csv檔案位置與名稱.
        #必填參數:
        #$conf["dbAddress"],字串,欲連線的mariadb/mysql伺服器IP/domainName位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,連線到mariadb/mysql所用的帳戶.
        $conf["dbAccount"]=$dbAccount;
        #$conf["dbName"],字串,目標資料表位於哪個資庫底下.
        $conf["dbName"]=$dbName;
        #$conf["dtName"],字串,目標資料表的名稱.
        $conf["dtName"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,連線到mariadb/mysql伺服器時所使用的密碼,若未設置則代表不使用密碼來連線.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
        #$conf["dbPort"]=$dbPort;
        #$conf["column"],陣列,要的欄位名稱,預設為「array(*)」代表所有欄位都要, 
        #$conf["column"]=array("*");
        #$conf["WhereColumnName"],陣列,篩選用的特定欄位
        #$conf["WhereColumnName"]=array("");
        #$conf["WhereColumnValue"],陣列,篩選用特定欄位的數值要等於多少才是我們要的.
        #$conf["WhereColumnValue"]=array("");
        #$conf["groupBy"],陣列,爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆).
        #$conf["groupBy"]=array("");
        #$conf["orderItem"],字串,爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
        #$conf["orderItem"]="";#
        #$conf["ascORdesc"],字串,爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
        #$conf["ascORdesc"]="asc";
        #$conf["outPutPathAndName"],字串,輸出的csv檔案要存放在哪裡.
        #$conf["outPutPathAndName"]="";
        #$conf["noDownload"],字串,如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
        #$conf["noDownload"]="true";
        #參考資料:
        #無.
        #備註:
        #無.
        */
        public static function exportTableToCsv($conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查陣列裡面的特定元素是否存在以及其變數型態是否正確,如果沒有設定則回傳提示訊息。
                #回傳結果:
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #必填參數:
                $conf["db"]["isexistMuti"]["varInput"]=$conf;#要檢查的陣列變數
                $conf["db"]["isexistMuti"]["variableCheck"]=array("dbAddress","dbAccount","dbName","dtName");#要檢查的變數名稱陣列,形態爲陣列變數,例如: $conf["variableCheck"] = array("id","account","password");
                #可省略參數:
                $conf["db"]["isexistMuti"]["variableType"]=array("string","string","string","string");#要檢查的陣列變數內的元素應該爲何種變數形態,形態爲陣列 例如: $conf[variableType] = array("string","int","double"); 
                $conf["db"]["isexistMuti"]["canBeEmptyString"]="false";#變數內容如果是空字串就不能算是有設置的話,請設為"false",預設為也算是有設置。
                $checkResult=variableCheck::isexistMulti($conf["db"]["isexistMuti"]);
                unset($conf["db"]["isexistMuti"]);
                
                #如果 $checkResult["status"] 等於 "false"
                if($checkResult["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果 $checkResult["passed"] 等於 "false"
                if($checkResult["passed"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$checkResult;
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                        
                #如果 $conf["column"] 沒有設置
                if(!isset($conf["column"])){
                        
                        #則代表要全部的欄位
                        $conf["column"]=array("*");
                        
                        }#if end
                        
                #抓取資料表資料
                #函式說明:
                #一次取得資料庫、表的資料
                #回傳結果:
                #$result["status"],執行結果"true"為成功;"false"為執行失敗。
                #$result["error"],錯誤訊息陣列。
                #$result["dataColumnName"],抓取的資料欄位名稱陣列.
                #$result["dataColumnName"][$i]代表第$i+1個欄位名稱
                #$result["dataContent"],爲資料的內容。
                #$result["dataContent"][$conf["WhereColumnName"][$i]][$dataSetNum]
                        #$dataSetNum 爲第$dataSetNum+1筆資料
                        #$conf["WhereColumnName"][$i] 爲第 $i+1 個欄位的名稱
                #$result["dataCount"],爲取得的資料筆數。
                #$result["sql"],執行的sql字串.
                #必填參數:
                $conf["db"]["fastGetDbData"]["dbAddress"]=$conf["dbAddress"];#爲dbServer的位置。
                $conf["db"]["fastGetDbData"]["dbAccount"]=$conf["dbAccount"];#爲登入dbServer的帳號。
                $conf["db"]["fastGetDbData"]["dbName"]=$conf["dbName"];#爲要存取的資料庫名稱
                $conf["db"]["fastGetDbData"]["tableName"]=$conf["dtName"];#爲要存取的資料表名稱
                $conf["db"]["fastGetDbData"]["columnYouWant"]=$conf["column"];#你想要的欄位!
                #可省略參數:
                
                #如果 $conf["dbPassword"] 有設置 
                if(isset($conf["dbPassword"])){
                
                        #則設定進行連線密碼
                        $conf["db"]["fastGetDbData"]["dbPassword"]=$conf["dbPassword"];#爲要存取dbServer的密碼
                
                        }#if end
                        
                #如果 $conf["dbPort"] 有設置 
                if(isset($conf["dbPort"])){
                
                        #則設定進行連線的 port
                        $conf["db"]["fastGetDbData"]["dbPort"]=$conf["dbPort"];#爲要存取dbServer的port
                
                        }#if end
                
                #如果 $conf["WhereColumnName"] 有設置
                if(isset($conf["WhereColumnName"])){
                
                        $conf["db"]["fastGetDbData"]["WhereColumnName"]=$conf["WhereColumnName"];#用於判斷語句的欄位項目陣列。
                
                        }#if end
                        
                #如果 $conf["WhereColumnValue"] 有設置
                if(isset($conf["WhereColumnValue"])){
                        
                        $conf["db"]["fastGetDbData"]["WhereColumnValue"]=$conf["WhereColumnValue"];#用於判斷語句的欄位數值陣列,若與LIKE搭配,則可以在關鍵自字串的左右名加上「%」符號,這樣就可以搜尋具有該字串的內容。
                        
                        }#if end
                
                #$conf["db"]["fastGetDbData"]["WhereColumnCombine"]=array("");#用於判斷語句當中需要()起來的判斷式,須爲陣列值,"s"代表「(」,"e"代表「)」 ,若無則須設爲""。
                #$conf["db"]["fastGetDbData"]["WhereColumnOperator"]=array("");#用於判斷語句的比較符號陣列,可以用的符號有「"="、">"、"<"、"LIKE"、"NOT LIKE"」,預設都爲「=」。
                #$conf["db"]["fastGetDbData"]["WhereColumnAndOr"]=array("");#用於判斷語句條件之間成立的條件是AND還是OR,須爲陣列值。其數量應爲要判斷的欄位數量減一。
                
                #如果 $conf["orderItem"] 有設定
                if(isset($conf["orderItem"])){
                        
                        $conf["db"]["fastGetDbData"]["orderItem"]=$conf["orderItem"];#爲排序的項目依據,若要用隨機抽樣,可以用"rand()",可省略。
                        
                        }#if end
                
                #如果 $conf["ascORdesc"] 有設定
                if(isset($conf["ascORdesc"])){
                        
                        
                        $conf["db"]["fastGetDbData"]["ascORdesc"]=$conf["ascORdesc"];#爲要低增還是遞減排序,asc爲遞增;desc爲遞減。
                        
                        }#if end
                
                #$conf["db"]["fastGetDbData"]["numberStart"]="0";#為從第幾筆開始讀取,預設為0,代筆第一筆。
                #$conf["db"]["fastGetDbData"]["numLimit"]="30";#為要取幾筆資料,可以省略,省略則表示不限制數目。
                
                #如果 $conf["groupBy"] 有設定
                if(isset($conf["groupBy"])){
                        
                        $conf["db"]["fastGetDbData"]["groupBy"]=$conf["groupBy"];#爲要以哪幾個欄爲作爲分羣的依據(欄位相同的數值僅會取出一筆).
                        
                        }#if end
                
                $db["fastGetDbData"]=db::fastGetDbData($conf["db"]["fastGetDbData"]);
                unset($conf["db"]["fastGetDbData"]);
                
                #var_dump($db["fastGetDbData"]);
                
                #如果 $db["fastGetDbData"]["status"] 等於 "false"
                if($db["fastGetDbData"]["status"]=="false"){
                        
                        #設置錯誤識別
                        $result["status"]="false";
                        
                        #設置錯誤訊息
                        $result["error"]=$db["fastGetDbData"];
                        
                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #初始化要寫入的內容
                $writedData[0]=$db["fastGetDbData"]["dataColumnName"];
                
                #var_dump($writedData);
                
                #取得要寫入的欄位數值
                
                #針對每筆資料
                for($i=0;$i<$db["fastGetDbData"]["dataCount"];$i++){
                        
                        #依據每個欄位
                        for($j=0;$j<count($db["fastGetDbData"]["dataColumnName"]);$j++){
                                
                                #儲存到列裡面
                                $writedData[$i+1][]=$db["fastGetDbData"]["dataContent"][$db["fastGetDbData"]["dataColumnName"][$j]][$i];
                                
                                }#foreach end
                        
                        }#for end
                        
                #var_dump($writedData);
                        
                #輸出成csv檔
                #函式說明:
                #快速建立一個csv檔案,並且要求使用者下載。
                #回傳結果::
                #如果有設置$conf["noDownload"]爲"true"的話,則會回傳檔案的位置
                #必填參數:
                $conf["db"]["create"]["dataArray"]=$writedData;#要寫入的文字,$conf["dataArray"][$i],代表第 $i 行的內容。
                #可省略參數:
                
                #如果有設置 $conf["outPutPathAndName"]
                if(isset($conf["outPutPathAndName"])){
                        
                        $conf["db"]["create"]["csvFilePathAndName"]=$conf["outPutPathAndName"];#csv檔案的名稱,預設爲系統時間
                        
                        }#if end
                
                #如果 $conf["noDownload"] 有設置
                if(isset($conf["noDownload"])){
                        
                        #且$conf["noDownload"]等於"true"
                        if($conf["noDownload"]=="true"){
                                
                                $conf["db"]["create"]["noDownload"]="true";#如果爲"true"則代表不要讓使用者下載,但會回傳檔案的相對位置
                        
                                }#if end        
                        
                        }#if end
                
                #參考資料來源:
                #http://php.net/manual/en/function.str-split.php
                return csv::create($conf["db"]["create"]);
                unset($conf["db"]["create"]);
                
                }#funciton exportTableToCsv end
                
        /*
        #函式說明:
        #透過一筆筆將資料表刪除後,重設識別欄位的自動增量欄位起始值為1
        #回傳結果:
        #$result["status"],執行是否正常,"true"代表執行正常,"false"代表執行失敗.
        #$result["error"],錯誤訊息.
        #$result["function"],當前執行的函數名稱.
        #$result["sql"],執行的sql語法陣列.
        #必填參數:
        #$conf["dbAddress"],字串,連線到資料庫的位置.
        $conf["dbAddress"]=$dbAddress;
        #$conf["dbAccount"],字串,連線到資料庫的帳號.
        $conf["dbAccount"]=$dbAccount;
        #$conf["dbName"],字串,要連線到哪個資料庫.
        $conf["dbName"]=$dbName;
        #$conf["dtName"],字串,要重設重設識別欄位的自動增量為0的資料表名稱.
        $conf["dtName"]="";
        #可省略參數:
        #$conf["dbPassword"],字串,連線到資料庫的密碼.
        #$conf["dbPassword"]=$dbPassword;
        #$conf["dbPort"],字串,爲連線到mysql-Server時要使用的port,可省略,若省略則代表使用預設的port 3306.
        #$conf["dbPort"]=$dbPort;
        #參考資料:
        #http://dev.mysql.com/doc/refman/5.0/en/alter-table.html
        #備註:
        #參考語法,ALTER TABLE dbName.dtName AUTO_INCREMENT = 1;
        */
        public static function eraseDataInTableThenResetAutoIncrement(&$conf){
                
                #初始化要回傳的內容
                $result=array();

                #取得當前執行的函數名稱
                $result["function"]=__FUNCTION__;

                #如果 $conf 不為陣列
                if(gettype($conf)!="array"){
                        
                        #設置執行失敗
                        $result["status"]="false";
                        
                        #設置執行錯誤訊息
                        $result["error"][]="\$conf變數須為陣列形態";

                        #如果傳入的參數為 null
                        if($conf==null){
                                
                                #設置執行錯誤訊息
                                $result["error"][]="\$conf變數不得為null,請檢查函數「".$result["function"]."」的參數設置有無正確!";
                                
                                }#if end

                        #回傳結果
                        return $result;
                        
                        }#if end
                
                #檢查參數
                #函式說明:
                #檢查必填與可省略的參數,可省略參數可指定預設要給與什麼數值內容。
                #$result["status"],執行是否正常,"true"代表正常,"false"代表不正常.
                #$reuslt["error"],執行不正常結束的錯訊息陣列.
                #$result["function"],當前執行的函式名稱.
                #$result["passed"],識別要檢查的全體變數是否存在以及型態是否正確的變數,"true"代表檢查全部通過;"false"代表檢查不通過
                #$result[$shouldBtCheckedVarName]["varExist"],所檢查的變數是否存在,"false"代表不存在;"true"代表存在
                #$result[$shouldBtCheckedVarName]["varType"],所檢查的變數型態是否正確,"false"代表錯誤;"true"代表正確
                #$result[$shouldBtCheckedVarName]["error"],每個參數設定的錯誤訊息
                #必填參數:
                #$conf["variableCheck.checkArguments"]["varInput"],陣列變數,要檢查的陣列變數,請在要檢查的參數前面加上&,這樣變動的結果才能被套用。
                $conf["variableCheck.checkArguments"]["varInput"]=&$conf;
                #$conf["variableCheck.checkArguments"]["mustBeFilledVariableName"],爲必填參數的變數名稱陣列,形態爲陣列變數,例如: $conf["mustBeFilledVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableName"]=array("dbAddress","dbAccount","dbName","dtName");
                #$conf["variableCheck.checkArguments"]["mustBeFilledVariableType"],爲必填參數的變數陣列應該爲何種變數形態,形態爲陣列 例如: $conf["mustBeFilledVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck.checkArguments"]["mustBeFilledVariableType"]=array("string","string","string","string");
                #$conf["referenceVarKey"],字串,$conf參數後面的key值,用於移除不要的參考陣列.
                $conf["variableCheck.checkArguments"]["referenceVarKey"]="variableCheck.checkArguments";
                #可省略參數:
                #$conf["canBeEmptyString"],必填變數內容如果是空字串就不能算是有設置的話,請設為"false",預設爲"false"。
                #$conf["canBeEmptyString"]="false";
                #$conf["variableCheck.checkArguments"]["skipableVariableName"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableName"] = array("id","account","password");
                $conf["variableCheck.checkArguments"]["skipableVariableName"]=array("dbPassword","dbPort");
                #$conf["variableCheck.checkArguments"]["skipableVariableType"],爲可省略參數的變數名稱陣列,形態爲陣列變數,例如: $conf["skipableVariableType"] = array("string",integer,"double"); 
                $conf["variableCheck.checkArguments"]["skipableVariableType"]=array("string","string");
                #$conf["skipableVarDefaultValue"],字串陣列,每個不存在的可省略變數要初始化為什麼,"null"代表不指定,若預設值是必填參數之一,請將$conf["mustBeFilledVar"]改成"\$conf["\mustBeFilledVar\"]".
                #$conf["skipableVarDefaultValue"]=array("");
                $checkResult=variableCheck::checkArguments($conf["variableCheck.checkArguments"]);
                unset($conf["variableCheck.checkArguments"]);
                
                #如果 檢查參數 失敗
                if($checkResult["status"]=="false"){
                        
                        #設置執行不正常
                        $result["status"]="false";
                        
                        #設置執行錯誤
                        $result["error"]=$checkResult;
                        
                        #回傳節果
                        return $result;
                        
                        }#if end
                        
                #如果 檢查參數 不通過
                if($checkResult["passed"]=="false"){
                        
                        #設置執行不正常
                        $result["status"]="false";
                        
                        #設置執行錯誤
                        $result["error"]=$checkResult;
                        
                        #回傳節果
                        return $result;
                        
                        }#if end
                        
                #執行一筆筆移除資料的sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db.execMysqlQuery"]["dbSql"]="DELETE FROM `".$conf["dbName"]."`.`".$conf["dtName"]."` ";#要執行sql語法
                #可省略參數: 
                
                #如果有設置 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                        
                        $conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果有設置 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                        
                        $conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
                        
                        }#if end
                                
                $queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
                unset($conf["db.execMysqlQuery"]);
                                
                #如果執行 sql 語法失敗
                if($queryResult["status"]=="false"){
                        
                        #設置執行不正常
                        $result["status"]="false";
                        
                        #設置執行錯誤
                        $result["error"]=$queryResult;
                        
                        #回傳節果
                        return $result;
                        
                        }#if end
                        
                #取得所執行的sql語法
                $result["sql"][]=$queryResult["queryString"];           
                                                
                #執行重設增量的sql語法
                #函式說明:
                #執行mysql指令
                #回傳結果::
                #$result["status"],"true"為執行成功;"false"為執行失敗。
                #$result["error"],錯誤訊息的陣列
                #$result["queryResource"],mysql查詢後的resource資源,用於給mysql解析的資源變數。
                #$result["queryString"],mysql查詢的語言
                #查詢號的解果,需要解析。
                #必填參數:
                $conf["db.execMysqlQuery"]["dbAddress"]=$conf["dbAddress"];#爲mysql-Server的位置
                $conf["db.execMysqlQuery"]["dbAccount"]=$conf["dbAccount"];#爲用於連入mysql-Server時要使用的帳號
                $conf["db.execMysqlQuery"]["dbSql"]="ALTER TABLE ".$conf["dbName"].".".$conf["dtName"]." AUTO_INCREMENT = 1";#要執行sql語法
                #如果有設置 $conf["dbPassword"]
                if(isset($conf["dbPassword"])){
                        
                        $conf["db.execMysqlQuery"]["dbPassword"]=$conf["dbPassword"];#爲連線到mysql-Server時要使用的密碼,可省略,若省略則代表不使用密碼
                        
                        }#if end
                        
                #如果有設置 $conf["dbPort"]
                if(isset($conf["dbPort"])){
                        
                        $conf["db.execMysqlQuery"]["dbPort"]=$conf["dbPort"];#爲連線到mysql-Server時要使用的port,可省略,若省略則代表預設的3306 port.
                        
                        }#if end
                                
                $queryResult=db::execMysqlQuery($conf["db.execMysqlQuery"]);
                unset($conf["db.execMysqlQuery"]);
                                
                #如果執行 sql 語法失敗
                if($queryResult["status"]=="false"){
                        
                        #設置執行不正常
                        $result["status"]="false";
                        
                        #設置執行錯誤
                        $result["error"]=$queryResult;
                        
                        #回傳節果
                        return $result;
                        
                        }#if end
                        
                #取得所執行的sql語法
                $result["sql"][]=$queryResult["queryString"];
                
                #設置執行正常
                $result["status"]="true";
                
                #回傳結果
                return $result;
                
                }#function eraseDataInTableThenResetAutoIncrement end

        }#db class end
        
?>