麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > PHP > 正文

PHP類初識,通用數據庫操作類,前端easyui-datagr

2020-03-24 18:56:55
字體:
來源:轉載
供稿:網友
  • 實現功能:

    左端datagrid顯示簡略信息,右側顯示選中行詳細信息,數據庫增刪改 (1)點擊選中行,右側顯示詳細信息,其中【新增】、【修改】、【刪除】按鈕可用,【保存】按鈕禁用 (2)點擊【新增】按鈕,【修改】,【刪除】按鈕禁用,【保存】按鈕啟用 (3)點擊【修改】按鈕,【新增】,【刪除】按鈕禁用 難點:通用數據庫操作類中insert方法跟update方法 前端功能不是很完善,按鈕之間邏輯還是有點問題,最后補充前端代碼 其中Formain.php對前端傳值判斷,并調用actSQL.html' target='_blank'>class.php獲得結果 代碼比較簡單 如下:
    <?php    require('include/mysql_connect/actSQL.class.php');    $key=$_REQUEST['key'];    $a=new actSQL('localhost','root','1234','tpss');    //獲取信息    if($key=='1')    {                        $a->getAllData('t_prekeychart');    }    if($key=='2')    {                    $objectstr=$_REQUEST['object'];                        if($a->insertData($objectstr,'t_prekeychart'))            {                    echo json_encode('true');            }else{                    echo json_encode('false');            }            //test            //$test='{'keychartid':'2','keyid':'2','keychartname':'2','level':'2','showtype':'2','helptips':'2','keylevel':'2','ishmap':'2'}';            //$a->insertData($test,'t_prekeychart');    }    if($key=='3')    {                    $prekey=$_REQUEST['keychartid'];            $prekeyname='keychartname';            if($a->delData($prekey,$prekeyname,'t_prekeychart'))            {                    echo json_encode('true');            }else{                    echo json_encode('false');            }    }    if($key=='4')    {            $objectstr=$_REQUEST['object'];            $prekeyname='keychartid';            if($a->updData($objectstr,$prekeyname,'t_prekeychart'))            {                    echo json_encode('true');            }else{                    echo json_encode('false');            }    }?>
    看Formain.php中出現的類的各個方法,簡單思考一下 其中 getAllData($tablename)獲取表格的所有信息,這個方法比較簡單,一個簡單的sql語句就可以搞定,最后將結果json格式返回即可 delData($prekey,$prekeyname,$tablename)刪除指定信息,這個更簡單,就不說了 insertData($objectstr,$tablename),其中$objectstr是json格式的字符串,$tablename表名, 難點是將拼湊成insert into $tablename (......) values(.....)這種語句 解決辦法: (1)根據$tablename獲取所有的列名,并將列名數組轉換為字符串,為最后sql語句的拼湊做準備,除此獲取列名還有個目的,往下看 (2)將json格式的字符串$objectstr轉換為關聯數組,調用json_decode()方法 補充json_decode()方法
    mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
    接受一個 JSON 格式的字符串并且把它轉換為 PHP 變量,其中assoc,當該參數為TRUE時,將返回關聯數組。 (3)按照查詢到的列名順序查詢數據,數據為空時,賦值為NULL,將結果存到數組,防止數據庫插入數值錯位(獲取列名的另個原因) (4)將(3)的結果轉化為字符串,調用implode()方法
    補充implode()方法:
    string implode(string glue, array pieces);
    函數將數組的內容組合成一個字符串,參數 glue 是字之間的分隔符號 (5)拼湊sql語句字符串,然后向數據庫插入 updData($objstr,$prekeyname,$tablename)方法難點也是在于sql語句的字符串拼湊,拼湊格式應該如下 update $tablename set ..... where $prekeyname=$data[$prekeyname] 前兩步同insertData() (3)遍歷列名字符數組,獲取非主鍵名的列名值,按照“列名=列名值”的字符串格式存入數組,這里就是set 后面部分的不完全字符串
    (4)將(3)結果轉換為字符串,將數組元素以','分隔開,這個就是set后面最后的字符串 格式為“xx=xx,xx=xx”
    (5)拼湊sql字符串,然后更新數據庫 insertData()以及updData()函數如下
     /*         * 添加信息         * @param:$objstr:json風格的數據庫插入信息字符串         *           $tablename:表名         */        function insertData($objstr,$tablename)        {                $dbc=$this->conData();                if($dbc)                {                        $columnname=array();                    $columnname=$this->getColumns($tablename);                    //echo $columnname[0];                    $clos=implode(',',$columnname); //將列名數組轉換為字符串                    //echo $clos;                    $data=json_decode($objstr,true); //將json格式的字符串轉換為關聯數組                    //echo $value['keychartname'];                    $values=array();                    foreach($columnname as $value)                    {                            //按照查詢到的列名查詢數據,數據為空的,賦值為NULL,防止數據庫插入數值錯位                            //echo $data[$value].'<br>';                            if(isset($data[$value]))                            {                                    array_push($values,$data[$value]);                            }else{                                $data[$value]=NULL;                                array_push($value,$data[$value]);                            }                    }                    $strvalue=implode(',',$values);                    //echo $strvalue;                    /*                    * SQL: insert into $tablename($clos) values(...)                    */                    $sql=<<<SQL                    insert into $tablename($clos) values($strvalue);SQL;                    //echo $sql;                    $res=mysqli_query($dbc,$sql);                    if($res)                    {                        return true;                    }else{                            return false;                    }                }else{                        echo '連接錯誤!';                }                }/*         *更新信息          *@param: $objstr:json風格的數據庫更新信息字符串         *           $tablename:表名         *           $prekeyname:主鍵名                  * */        function updData($objstr,$prekeyname,$tablename)        {                $dbc=$this->conData();                if($dbc)                {                    $columnname=array();                    $columnname=$this->getColumns($tablename);                            //$clos=implode(',',$columnname); //將列名數組轉換為字符串                    $data=json_decode($objstr,true); //將json格式的字符串轉換為關聯數組                    $sets=array();                    foreach($columnname as $value)                    {                                //列名不等于主鍵名獲取值                        if($prekeyname!=$value)                        {                                //set $value=$data[$value];                                array_push($sets,'$value=$data[$value]');//接好的set語句部分                        }                    }                    //$sets數組轉化為字符串                    $stringsets=implode(',',$sets);                    //echo $stringsets;                    /*                    * SQL:update $tablename set ..... where $prekeyname=$data[$prekeyname];                     * */                    $sql=<<<SQL                        update $tablename set $stringsets where $prekeyname=$data[$prekeyname];SQL;                    $res=mysqli_query($dbc,$sql);                    if($res)                    {                        return true;                    }else{                        return false;                    }                }else{                        echo '連接錯誤';                }        }/*         *獲取表的所有列名         *@param:$tablename:表名         */        function getColumns($tablename)        {                $dbc=@mysqli_connect('localhost','root','1234','information_schema');            if(!$dbc)            {                echo 'Connect Error'.mysqli_connect_error($dbc);            }else            {                //連接成功,從表COLUMNS獲取表的所有列名                        $sql='select COLUMN_NAME from columns where TABLE_NAME='$tablename'';                $res=@mysqli_query($dbc,$sql);                $items=array();                if($res)                {                    while($row=mysqli_fetch_array($res,MYSQLI_ASSOC))                    {                        $columnname=$row['COLUMN_NAME'];                        array_push($items,$columnname);                    }                                return $items;                mysqli_close($dbc);                }                else{                    echo '查詢失敗,請檢查SQL語句!';                    }                        }        }

    完整代碼附件(其中easyui相關文件沒有添加


    PHP編程

    鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

  • 發表評論 共有條評論
    用戶名: 密碼:
    驗證碼: 匿名發表
    主站蜘蛛池模板: 婷婷久久综合九色综合色多多蜜臀 | 黄色大片在线观看 | 欧美特黄一级高清免费的香蕉 | 国产精品中文在线 | 中文字幕在线日韩 | 亚洲情在线 | 午夜精品久久久久久久久久久久久蜜桃 | 国产亚洲精品久久久久久久久久 | 99re热精品视频 | 亚洲精品tv久久久久久久久久 | 欧美综合在线观看视频 | 99热99精品 | 香蕉视频1024 | 99精品国产一区二区三区 | 一区二区三高清 | 一级尻逼视频 | 国产精品久久久久久久久粉嫩 | 黄色影院在线 | 蜜桃91丨九色丨蝌蚪91桃色 | 泰剧19禁啪啪无遮挡大尺度 | 在线看免费观看日本 | 国产精品区一区二区三区 | 亚洲第一视频在线 | 免费久久精品 | 精品一区二区久久久久久按摩 | 成人福利在线视频 | 日韩伦理电影免费观看 | 成年人国产视频 | 精品一区二区三区免费毛片 | 日本一区二区久久 | av免费入口 | 性片久久| 羞羞漫画无遮挡观看 | 中文字幕伦乱 | 一级黄色a视频 | 羞羞的网址 | 日韩电影av在线 | 亚洲精品日韩色噜噜久久五月 | 国产99久久久国产精品下药 | 视频毛片 | 亚洲第一精品在线 |