PHP对MySQL数据库的交互(增删改查)

准备

先创建好我们需要的数据库。
以student为例。
在这里插入图片描述
PHP文件
func.php
add.php
del.php
edit.php
getlist.php

代码

func.php
此文件封装公用代码

<?php
header("content-type:text/html;charset=utf-8");//解决中文乱码
//连接数据库,设置字符编码
function conn($host="127.0.0.1",$user="root",$password="root",$database="stu"){
    $link = mysqli_connect($host,$user,$password,$database);
    if($link===false){
        exit("失败");
    }
    mysqli_set_charset($link,"utf8");
    return $link;
}
?>

获取列表

getlist.php

<?php
header("content-type:text/html;charset=utf-8");//解决中文乱码
include "func.php";//引入
//1连接数据库,设置字符编码
$link = conn();
//2.操作数据库$link,$sql
$sql = "select *from student";
$result = mysqli_query($link,$sql);
if($result===false){
    echo "error".mysqli_error($link);
    exit;
}
//获取结果并解析
$arr = mysqli_fetch_all($result);
echo "<pre>";
print_r($arr);
echo "</pre>";

//释放结果集,关闭数据库
mysqli_free_result($result);
mysqli_close($link);

在页面中显示为
在这里插入图片描述

删除

del.php
我们删掉编号为104的学生

<?php
header("content-type:text/html;charset=utf-8");//解决中文乱码

include "func.php";
//1.连接数据库
$link = conn();
//操作数据库
$Sno = "104";//要删掉的数据

$query = "delete from student where Sno='$Sno'";
$result = mysqli_query($link,$query);
if($result===false){
    echo "error".mysqli_error($link);
    exit;
}
$row = mysqli_affected_rows($link);
if($row>0){
    echo "删除成功!";
}else{
    echo "修改失败!";
}
?>

页面会显示“修改成功!”并且数据库中编号为104的学生数据已被删除。返回看一下getlist.php
在这里插入图片描述

增加

add.php
让我们把编号为104的学生数据再添加回来

<?php
header("content-type:text/html;charset=utf-8");//解决中文乱码
include "func.php";
//1.连接数据库
$link = conn();
//操作数据库
$Sno = "104";
$Sname = "王红";
$Ssex = "女";
$Sbirthday = "1988-09-09 00:00:00";
$mypwd = "123";
$query = "insert into student(Sno,Sname,Ssex,Sbirthday,pwd) value('$Sno','$Sname','$Ssex','$Sbirthday','$mypwd')";
$result = mysqli_query($link,$query);
if($result===false){
    echo "error".mysqli_error($link);
    exit;
}
if(mysqli_insert_id($link)==0){
    echo 0;//成功
}else{
    echo 1;//失败
}
?>

此时getlist.php中会返回 0 在这里插入图片描述
数组最后一项105号数据添加成功,pwd项为空(在数据库中设置可以为空)。

修改

edit.php
让我们来修改一下104号学生数据

<?php
header("content-type:text/html;charset=utf-8");//解决中文乱码
include "func.php";
//1.连接数据库
$link = conn();
//操作数据库
$Sno = "104";
$Sname = "李五";
$Ssex = "女";
$Sbirthday = "1991-03-13 09:01:31";
$query = "update student set Sname = '$Sname',Sbirthday = '$Sbirthday',Ssex = '$Ssex' where Sno='$Sno'";
$result = mysqli_query($link,$query);
if($result===false){
    echo "error".mysqli_error($link);
    exit;
}
$row = mysqli_affected_rows($link);
if($row>0){
    echo "修改成功!";
}else{
    echo "修改失败!";
}
?>

其中y以下这一行很重要,一定要有 where Sno=’$Sno’,否则会修改所有数据并且一旦刷新就无法撤回,在数据库的实际操作中是灾难性的。

$query = "update student set Sname = '$Sname',Sbirthday = '$Sbirthday',Ssex = '$Ssex' where Sno='$Sno'";

好了修改成功了,让我们来看一下getlist.php刷新效果。可以看出王红已经被修改为李五,相应数据已经修改完毕。
在这里插入图片描述

总结步骤

最后让我们总结一下。

1.连接数据库,设置字符编码;
2.操作数据库(增删改查等);
3.获取结果并解析;
4.释放结果集,关闭数据库。

如果有哪里说的不对,欢迎指正,感激不尽。

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值