第1关:PHP对MySQL的基本操作
require 'public_function.php';
//创建对象,连接数据库
$link=new mysqli('127.0.0.1','root','123123');
//判断数据库连接是否成功,如果不成功则显示错误信息并终止脚本继续执行
if($link->connect_error){
die('连接数据库失败!'.$link->connect_error);
}
//设置字符集,选择数据库
$link->query("drop database if exists 'educoder';");
$link->query("create database educoder;");
$link->query('set names utf8;');
$link->query('use educoder;');
//创建部门信息表
$sql="create table emp_dept(
d_id int unsigned primary key auto_increment,d_name varchar(20) not null) charset=utf8;";
$link->query($sql);
//向部门信息表中插入数据
$sql="INSERT INTO emp_dept VALUES
(1, '开发部'), (2, '媒体部'), (3, '人事部'),(4, '后勤部'),
(5, '市场部'), (6, '运维部'), (7, '销售部');";
$link->query($sql);
//修改用户表
$sql="drop table if exists emp_info;";
$link->query($sql);
$sql="create table emp_info (
e_id int unsigned primary key auto_increment,
e_name varchar(20) not null,
d_id int unsigned not null,
date_of_birth timestamp not null,
date_of_entry timestamp not null
)charset=utf8;";
$link->query($sql);
//向其中添加用户数据
$sql="INSERT INTO emp_info VALUES
(1, '小红', 1, '2015-4-9 17:51:00', '2015-4-9 17:52:00'),
(2, '李四', 5, '2008-4-3 13:33:00', '2013-10-24 17:53:00'),
(3, '王五', 4, '2008-4-3 13:33:00', '2015-4-21 13:33:00'),
(4, '赵六', 4, '2008-4-3 13:33:00', '2015-3-20 17:54:00'),
(5, '小兰', 2, '1989-5-4 17:33:00', '2012-6-18 17:54:00'),
(6, '小新', 5, '1993-9-18 17:36:00', '2015-2-28 17:36:00'),
(7, '小白', 2, '1991-10-17 17:37:00', '2014-8-16 17:37:00'),
(8, '小智', 7, '1987-6-20 17:37:00', '2015-1-10 17:38:00'),
(9, '大头', 6, '1991-2-14 08:49:00', '2014-7-12 08:49:00'),
(10, '小明', 3, '1991-2-14 08:49:00', '2015-3-4 09:10:00'),
(11, '小刘', 1, '1992-3-18 14:52:00', '2014-7-21 09:00:00');";
$link->query($sql);
//左连接查询
//填充下面sql语句
$sql="select emp.e_id,emp.e_name,emp.date_of_birth,emp.date_of_entry,dept.d_name
from emp_info as emp
left join emp_dept as dept
on emp.d_id = dept.d_id;";
$result=$link->query($sql);
$db=new Init();
$emp_info =$db->fetchAll($sql);
//设置常量,用以判断视图页面是否由此页面加载
define('APP', 'educoder');
//加载视图页面,显示数据
require 'list_html.php';
第2关:PHP实现下拉菜单显示数据 上
Class Init
{
private $link;
private static $host="127.0.0.1";
private static $root="root";
private static $password="123123";
function __construct()
{
$this->link=new mysqli(self::$host,self::$root,self::$password);
//判断数据库连接是否成功,如果不成功则显示错误信息并终止脚本继续执行
if($this->link->connect_error){
die('连接数据库失败!');
}
//设置字符集,选择数据库
$this->link->query('set names utf8;');
$this->link->query('use educoder;');
}
public function query($sql) {
if ($result =$this->link->query($sql)) {
return $result;
}else{
echo 'SQL执行失败:
';
echo '错误的SQL为:',$sql,'
';
echo '错误的代码为:',$this->link->connect_errno,'
';
echo '错误的信息为:',$this->link->connect_error,'
';
return false;
}
}
public function fetchAll($sql) {
if ($result =$this->link->query($sql)) {
//执行成功
//遍历结果集
$rows=array();
while($row=$result->fetch_assoc()){
$rows[]=$row;
}
//释放结果集资源
$result->free();
return $rows;
} else {
//执行失败
return false;
}
}
public function fetchRow($sql) {
//执行query()函数
if ($result = $this->link->query($sql)) {
//从结果集取得一次数据即可
$row=$result->fetch_assoc();
return $row;
} else {
return false;
}
}
function safeHandle($data){
//转义字符串中的HTML标签
$data = htmlspecialchars($data);
//转义字符串中的特殊字符
$data = mysqli_real_escape_string($this->link,$data);
return $data;
}
}
//初始化数据库
$db=new Init();
//判断是否有表单提交
if(!empty($_POST)){
//声明变量$value,用来保存字段信息
$fields = array('e_name','e_dept','date_of_birth','date_of_entry');
//声明变量$value,用来保存值信息
$value = array();
//遍历$allow_field,获取输入员工数据的键和值
foreach($fields as $k => $v){
$data = isset($_POST[$v]) ? $_POST[$v] : '';
if($data=='') die($v.'字段不能为空');
$data =$db-> safeHandle($data);
//把字段使用反引号包裹,赋值给$fields数组
$fields[$k] = "`$v`";
//把值使用单引号包裹,赋值给$values数组
$values[] = "'$data'";
}
//将$fields数组以逗号连接,赋值给$fields,组成insert语句中的字段部分
$fields = implode(',', $fields);
//将$values数组以逗号连接,赋值给$values,组成insert语句中的值部分
$values = implode(',', $values);
//最后把$fields和$values拼接到insert语句中,注意要指定表名
$sql = "insert into `emp_info` ($fields) values ($values)";
//执行SQL
if($res = $db->query($sql)){
//成功时返回到 showList.php
header('Location: ./showList.php');
//停止脚本
die;
}else{
//执行失败
die('员工添加失败!');
}
}
$sql = 'select * from emp_dept';
//调用fetchAll()函数,执行SQL并进行数据处理,把处理后的部门数据赋值给$emp_dept
$emp_dept = $db->fetchAll($sql);
//没有表单提交时,显示员工添加页面
define('APP', 'educoder');
require 'add_html.php';
第3关:PHP实现下拉菜单显示数据 下
require "empUpdate.php";
if(!defined('APP')) die('error!');
?>
来源地址:https://blog.csdn.net/m0_62788719/article/details/127657538