【php增刪改查執行個體】第四節 -自己 DIY 一個資料庫管理工具

來源:互聯網
上載者:User

標籤:res   orm   cells   admin   type   有一個   abc   mit   欄位名   

本節介紹如何自己DIY一個資料庫管理工具,可以在頁面輸入sql 進行簡單的增刪改查操作。

首先,找到xampp的安裝目錄,開啟htdocs:

建立一個php檔案,名稱為 mysqladmin.php

1.編寫php伺服器代碼1.1 寫上php標籤

首先,還是在這個頁面,要寫php代碼,就需要有一個php標籤:

我們的php代碼要寫在這個標籤內。

1.2 資料庫連接操作

xampp安裝的mysql預設沒有密碼,不寫就行。

1.3 擷取form表單傳過來的sql語句

1.4 用mysql_query函數執行傳過來的sql語句

目前為止,代碼已經足以對資料庫進行增刪改,接下來,我們來設計查詢sql的實現。

1.5 用split函數分割sql語句,擷取表名

1.6 通過表名去擷取這張表所有的列,並且把列名用一個數組裝起來

1.7 去查詢sql中擷取的結果集,展示到頁面
if($tableName){                        $query = mysql_query("select COLUMN_NAME from information_schema.COLUMNS where  TABLE_NAME = ‘$tableName‘;") or die("<p style=‘color:red‘>sql報錯,錯誤資訊為 ======> ".mysql_error()."</p>");                         //對結果集進行遍曆 -- mysql_fetch_array                                    $columns = array(); //儲存這張表中所有的欄位名稱            $count = 0; //記錄當前的下標                                    echo "<table>";                        echo "<tr>";                        while($row = mysql_fetch_array($query)){                                $columns[$count] =  $row["COLUMN_NAME"];                                echo "<td>" . $row["COLUMN_NAME"] . "</td>";                                $count = $count + 1;                            }                        echo "</tr>";                        //echo sizeof($columns);                                                                        $query_02 = mysql_query($sql) or die("<p style=‘color:red‘>sql報錯,錯誤資訊為 ======> ".mysql_error()."</p>");                                    while($row = mysql_fetch_array($query_02)){                                echo "<tr>";                for($i=0;$i<sizeof($columns);$i++){                    echo "<td>" . $row[$columns[$i]] . "</td>";                }                echo "</tr>";                            }                        echo "</table>";                                }            } 

示範效果如下:

訪問地址:http://localhost:8080/mysqladmin.php

完整的mysqladmin.php 代碼:

<form action="mysqladmin.php" method="post" >    <textarea cols="80" rows="10" id="sql" name="sql"></textarea>    <br>    <input type="submit" value="執行"  /> </form><style>    th {background: #eaeaea}    td {border:1px solid #ccc;padding:2px 10px;}    tr:hover {background: skyblue}</style><?php        //1、串連資料庫    $conn = mysql_connect("localhost","root","");    //2、選擇test資料庫    $db = mysql_select_db("test",$conn);    //3、設定編碼集    mysql_query("set names utf8");        $sql = "";    if(isset($_POST["sql"]) && $_POST["sql"] != null){        $sql = $_POST["sql"];        echo "<p>您執行的sql為:$sql </p>";           echo "<script>document.getElementById(‘sql‘).value=‘".$sql."‘</script>";        //開始真的執行sql        $query_origin = mysql_query($sql) or die("<p style=‘color:red‘>sql報錯,錯誤資訊為 ======> ".mysql_error()."</p>");        echo "<p style=‘color:green‘>執行成功!</p>";        /*            如果是update語句,則返回一個數字            如果是select語句,則返回一個結果集,比如:Resource id #6        */        //echo $query;        //echo strpos($query."",‘Resource‘);        //select COLUMN_NAME from information_schema.`COLUMNS` where TABLE_NAME = ‘tm_users‘;                //根據sql語句擷取表名        $arr = split(" ",$sql);        $tableName = "";        for($i=0;$i<sizeof($arr);$i++){            if($arr[$i] == "from"){                $tableName = $arr[$i+1];                break;            }        }                //echo $tableName;        //如果表名存在,就去查詢這個表中所有的欄位        if($tableName){            $query = mysql_query("select COLUMN_NAME from information_schema.`COLUMNS` where TABLE_NAME = ‘$tableName‘") or die("<p style=‘color:red‘>sql報錯,錯誤資訊為 ======> ".mysql_error()."</p>");                        $columns = array();            $count = 0;            echo "<table cellpadding=0 cellspacing=0><tr>";            while($row=mysql_fetch_array($query)){                                  $columns[$count++] = $row[‘COLUMN_NAME‘];            }               //遍曆數組            for($i=0;$i<sizeof($columns);$i++){                echo "<th>$columns[$i]</th>";            }            echo "</tr><tr>";            //然後去這張表裡面查詢            while($row=mysql_fetch_array($query_origin)){                //遍曆這張表的列名,然後對應從行中取值                for($i=0;$i<sizeof($columns);$i++){                    echo "<td>" . $row["$columns[$i]"] . "</td>";                }                //每遍曆好一行,就換行                echo "</tr>";            }            echo "</table>";        }                    }    ?>

【php增刪改查執行個體】第四節 -自己 DIY 一個資料庫管理工具

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.