zoukankan      html  css  js  c++  java
  • 【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具

    本节介绍如何自己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>";
    
    		}
    
    
    
    		
    
    		
    
    	}
    
    	
    ?>
    
  • 相关阅读:
    Leetcode Substring with Concatenation of All Words
    Leetcode Divide Two Integers
    Leetcode Edit Distance
    Leetcode Longest Palindromic Substring
    Leetcode Longest Substring Without Repeating Characters
    Leetcode 4Sum
    Leetcode 3Sum Closest
    Leetcode 3Sum
    Leetcode Candy
    Leetcode jump Game II
  • 原文地址:https://www.cnblogs.com/skyblue-li/p/9056135.html
Copyright © 2011-2022 走看看