本节介绍如何自己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 一个数据库管理工具的更多相关文章

  1. 【php增删改查实例】第九节 - 部门管理模块(模糊查询)

    给datagrid添加一个工具栏. 效果: 模糊查询部门名称. 接下来,在工具栏区域画一个input框: <div id="toolbar" style="padd ...

  2. 【php增删改查实例】 第二节 - MYSQL环境配置

    安装好xampp后,会自带一个mysql,也就是说,正常情况下,你直接这样: 就可以启动mysql了. 如果你了,下面的步骤就别看了哈. if( 启动成功 ){ return; } 如果你的电脑上已经 ...

  3. 【php增删改查实例】第一节 - PHP开发环境配置

    最近需要使用PHP,于是把平时的积累整理一下,就有了这个教程. 首先是环境配置: 1.操作系统:windos7 2.后台:PHP 3.前台:Html + js + css 4.数据库:MYSQL 5. ...

  4. yii2.0增删改查实例讲解

    yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...

  5. JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面

    前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...

  6. python链接oracle数据库以及数据库的增删改查实例

    初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...

  7. java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)

    1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...

  8. 百度鹰眼Java接口调用增删改查实例

    因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...

  9. Maven多模块项目+MVC框架+AJAX技术+layui分页对数据库增删改查实例

    昨天刚入门Maven多模块项目,所以简单写了一个小测试,就是对数据库单表的增删改查,例子比较综合,写得哪里不妥还望大神赐教,感谢! 首先看一下项目结构: 可以看到,一个项目MavenEmployee里 ...

随机推荐

  1. JSTL核心标签库——错误处理标签

    <c:catch>标签 Demo: 错误发生时,不转发至其他网页来显示错误信息,而在当前网页捕捉异常,并显示相关信息. <%@page contentType="text/ ...

  2. 【Redis】Redis学习(一) Redis初步入门

    一.Redis基础知识 1.1 Redis简介 Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理.它支持字符串.哈希表.列表.集合.有序集合,位图,h ...

  3. 使用Fiddler模拟客户端http响应

    在客户端开发中,常常需要对一些特殊情况做处理,比如404.503等,又比如服务返回错误数据等.而测试这些情况会比较麻烦,往往都是找开发人员配合修改代码,这样效率不高. 接触到Fiddler之后,这样的 ...

  4. 华为Eudemon 100E的密码恢复

    华为Eudemon 100E的密码恢复 转自http://blog.sina.com.cn/s/blog_53835f380100hdc3.html  为了让自己下次能记住 Eudemon 100E系 ...

  5. CSS| position定位和float浮动

    对基础知识再度做个巩固和梳理. 一.position定位 (一):position的属性 1.absolute:生成绝对定位的元素,相对于最近一级定位不是static的父元素来进行定位: 2.rela ...

  6. SqlServer中sqlmaint 实用工具和xp_sqlmaint扩展过程

    sqlmaint 实用工具可以对一个或多个数据库执行一组指定的维护操作.使用 sqlmaint,可以运行 DBCC 检查.备份数据库及其事务日志.更新统计以及重建索引.所有数据库维护活动都会生成报表, ...

  7. LUA 运算笔记

    循环 比如要实现这样的一个For for(int i=10;i>1;i—) { print(i) } lua的for循环 转换成LUA for i=10,1,-1 do print(i) end ...

  8. 写Ansible playbook添加zabbix被监控的对象

    本主题达到的效果是能通过编写Ansible Playbook,创建zabbix主机组,把被监控的对象加入到zabbix监控系统中,同时链接到对象的模板. 1.准备工作 在zabbix服务器上面,我们需 ...

  9. EF5.0中的跨数据库操作

    以前在用MVC + EF 的项目中,都是一个数据库,一个DbContext,因此一直没有考虑过在MVC+EF的环境下对于多个数据库的操作问题.等到要使用时,才发现这个问题也不小(关键是有个坑).直接说 ...

  10. Docker容器学习与分享04

    Docker容器的基本操作(2) 基于docker分享03的centos容器,接着学习docker容器的基本操作. docker分享03中创建了一个centos镜像,如果想要查看容器的具体信息就要使用 ...