標籤: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 一個資料庫管理工具