【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>";
}
}
?>
【php增删改查实例】第四节 -自己 DIY 一个数据库管理工具的更多相关文章
- 【php增删改查实例】第九节 - 部门管理模块(模糊查询)
给datagrid添加一个工具栏. 效果: 模糊查询部门名称. 接下来,在工具栏区域画一个input框: <div id="toolbar" style="padd ...
- 【php增删改查实例】 第二节 - MYSQL环境配置
安装好xampp后,会自带一个mysql,也就是说,正常情况下,你直接这样: 就可以启动mysql了. 如果你了,下面的步骤就别看了哈. if( 启动成功 ){ return; } 如果你的电脑上已经 ...
- 【php增删改查实例】第一节 - PHP开发环境配置
最近需要使用PHP,于是把平时的积累整理一下,就有了这个教程. 首先是环境配置: 1.操作系统:windos7 2.后台:PHP 3.前台:Html + js + css 4.数据库:MYSQL 5. ...
- yii2.0增删改查实例讲解
yii2.0增删改查实例讲解一.创建数据库文件. 创建表 CREATE TABLE `resource` ( `id` int(10) NOT NULL AUTO_INCREMENT, `textur ...
- JS组件系列——BootstrapTable+KnockoutJS实现增删改查解决方案(四):自定义T4模板快速生成页面
前言:上篇介绍了下ko增删改查的封装,确实节省了大量的js代码.博主是一个喜欢偷懒的人,总觉得这些基础的增删改查效果能不能通过一个什么工具直接生成页面效果,啥代码都不用写了,那该多爽.于是研究了下T4 ...
- python链接oracle数据库以及数据库的增删改查实例
初次使用python链接oracle,所以想记录下我遇到的问题,便于向我这样初次尝试的朋友能够快速的配置好环境进入开发环节. 1.首先,python链接oracle数据库需要配置好环境. 我的相关环境 ...
- java:JSP(JSPWeb.xml的配置,动态和静态导入JSP文件,重定项和请求转发,使用JSP实现数据库的增删改查实例)
1.JSP的配置: <%@ page language="java" import="java.util.*" pageEncoding="UT ...
- 百度鹰眼Java接口调用增删改查实例
因感觉百度鹰眼的使用场景比较符合实际业务,于是对百度鹰眼做了简单功能调试.刚开始使用springframework封装的RestTemplate,但是测试提示ak参数不存在.后又试了几种方法,均提示a ...
- Maven多模块项目+MVC框架+AJAX技术+layui分页对数据库增删改查实例
昨天刚入门Maven多模块项目,所以简单写了一个小测试,就是对数据库单表的增删改查,例子比较综合,写得哪里不妥还望大神赐教,感谢! 首先看一下项目结构: 可以看到,一个项目MavenEmployee里 ...
随机推荐
- SecureCRT使用问题记录
1.破解版下载&安装 参考:https://bbs.feng.com/read-htm-tid-6939481.html 2.session导入 查看 SecureCRT-Preference ...
- Oracle EBS OM 发放订单
DECLARE l_header_rec OE_ORDER_PUB.Header_Rec_Type; l_line_tbl OE_ORDER_PUB.Line_Tbl_Type; l_action_r ...
- 【QT5】 第一个hello world 程序
#include <QApplication> #include <QWidget> #include <QPushButton> int main(int arg ...
- CentOS6源码安装vim8
CentOS6源码安装vim8 vim8相比vim7多了很多功能. 不过需要源码来进行安装. 移除旧版本的vim yum remove vim 安装依赖库 sudo yum install -y ru ...
- tp查询顺序
tp竟然可以跟据商品的id来进行排序查询的数据 记一些php中排序: sort()方法一维索引数组进行值升序排序 rsort()方法一维索引数组进行值降序排序 unsort()方法负责编写自定义排序操 ...
- November 14th, 2017 Week 46th Tuesday
Eternity is said not to be an extension of time but an absence of time. 永恒不是时间的无限延伸,而是没有时间. What is ...
- Oracle_spatial的函数介绍
Oracle_spatial的函数 一sdo_Geom包的函数: 用于表示两个几何对象的关系(结果为True/False)的函数:RELATE,WITHIN_DISTANCE 验证的函数:VALIDA ...
- BZOJ1007:[HNOI2008]水平可见直线(计算几何)
Description 在xoy直角坐标平面上有n条直线L1,L2,...Ln,若在y值为正无穷大处往下看,能见到Li的某个子线段,则称Li为 可见的,否则Li为被覆盖的. 例如,对于直线: L1:y ...
- 理解C#的Lock语法意义
一. 为什么要lock,lock了什么? 当我们使用线程的时候,效率最高的方式当然是异步,即各个线程同时运行,其间不相互依赖和等待.但当不同的线程都需要访问某个资源的时候,就需要同步机制了,也就是说当 ...
- 织梦提交表单(提交留言)前的js校验
第一种情况:页面有引入jq的 在form标签上加上id <form action="/plus/diy.php" enctype="multipart/form-d ...