目录
Mysql语句
插入一条信息
查询语句
修改语句
删除语句
使用PHP操作Mysql
如何链接数据库
查询数据库渲染主页面(index.php)
添加一条数据(add.php)
删除一条数据(del.php)
修改操作
首页 后端开发 php教程 十分钟利用PHP+Mysql实现增删改查(实例详解)

十分钟利用PHP+Mysql实现增删改查(实例详解)

Dec 23, 2021 pm 07:10 PM
mysql php

本篇文章给大家带来了关于PHP怎样利用mysql实现增删改查功能的实例,希望对大家有帮助。

十分钟利用PHP+Mysql实现增删改查(实例详解)

PHP+Mysql实现增删改查

PHP 是一种创建动态交互性站点的强有力的服务器端脚本语言。

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。

MySQL 是一种在 Web 上使用,在服务器上运行的数据库系统;MySQL 是非常快速,可靠,且易于使用的,支持标准的 SQL。

Mysql语句

打开我们的wampserver服务器+Mysql可视化工具(这里我用Navicat),或则其它集成工具(Apache+PHP+Mysql)都可以。链接上我们的服务器
这是wampserver的用户名和密码
新建一个数据库
我们新建查询来操作数据库,先把基本的文件配置好
学生

插入一条信息

INSERT INTO 语法

  1. 需指定要插入数据的列名,只需提供被插入的值即可
INSERT INTO table_name VALUES (value1,value2,value3,...);
登录后复制
  1. 需要指定列名及被插入的值
INSERT INTO table_name (column1,column2,column3,...) VALUES (value1,value2,value3,...);
登录后复制

不指定列名向表格插入一条数据

INSERT INTO stu VALUES (null,'提莫', 1,30);
登录后复制

我们用第二种语法向表格插入一条数据

INSERT INTO stu (name, gender, age) VALUES ('Faker', 0,24);
登录后复制

成功

查询语句

SQL SELECT 语句

SELECT column_name,column_name FROM table_name;
登录后复制
SELECT * FROM table_name;
登录后复制

查询id一列

select id from stu;
登录后复制

查询当id为1的语句

select * from stu where id = 1;
登录后复制

因为id是唯一的,所以找到了该条数据则不用再继续

select * from stu where id = 1 limit 1;
登录后复制
修改语句

SQL UPDATE 语句 需要加上where语句,否则整个表格都会更新

UPDATE table_name SET column1=value1,column2=value2,... WHERE some_column=some_value;
登录后复制

修改名字当id为1的时候

update stu set name='the shy' where id=1;
登录后复制
删除语句

SQL DELETE 语法 WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除!

DELETE FROM table_name WHERE some_column=some_value;
登录后复制

删除id为2的该条学生信息

delete from stu where id = 2;
登录后复制

使用PHP操作Mysql

如何链接数据库
header("Content-Type:text/html;charset=utf-8");
// 1. 使用mysqli链接数据库(这里使用wampserver默认的)
$connection = mysqli_connect('127.0.0.1', 'root', '', 'students');
// 2. 解决识别不了数据库文件的中文
mysqli_query($connection,"set names 'utf8';");
if (!$connection) {
    // 连接数据库失败
    exit('<h1>连接数据库失败</h1>');
}
// 每次只能查询一条数据
$query = mysqli_query($connection, 'select * from stu;');
// 查询所有的数据
while ($row = mysqli_fetch_assoc($query)) {
    var_dump($row);
}
登录后复制
查询数据库渲染主页面(index.php)
  1. 采用混编的方法,在头部链接数据库
<?php
// 1.链接我们的数据库
$link = mysqli_connect(&#39;127.0.0.1&#39;, &#39;root&#39;, &#39;&#39;, &#39;students&#39;);
// 2.设置中文编码
mysqli_query($link,"set names &#39;utf8&#39;;");
// 3.检测链接
if ($link->connect_error) {
    die("连接失败: " . $link->connect_error);
}
// 4.查询数据
$query = mysqli_query($link, 'select * from stu;');
// 5.渲染数据
?>
登录后复制
  1. 引入bootstrap@4(bootstrap官网下载并引入bootstrap.css)
<link rel="stylesheet" href="./lib/bootstrap.css">
登录后复制
  1. 使用mysqli_fetch_assoc($query)渲染数据,因为后续需要添加(add.php),删除(del.php),修改(edit)操作所以这里先添加
<p class="container">
    <h1 class="text-center">首页</h1>
    <table class="table table-bordered">
        <thead>
        <tr>
            <th class="text-center">学号</th>
            <th class="text-center">姓名</th>
            <th class="text-center">性别</th>
            <th class="text-center">年龄</th>
            <th class="text-center">操作</th>
        </tr>
        </thead>
        <tbody>
        <?php while ($row = mysqli_fetch_assoc($query)): ?>
        <tr class="text-center">
            <td><?php echo $row[&#39;id&#39;]; ?></td>
            <td><?php echo $row[&#39;name&#39;]; ?></td>
            <td><?php echo $row[&#39;gender&#39;]==1?&#39;♀&#39; : &#39;♂&#39; ; ?></td>
            <td><?php echo $row[&#39;age&#39;]; ?></td>
            <td>
                <a href="del.php?id=<?php echo $row[&#39;id&#39;];?>" class="btn btn-primary">删除</a>
                <a href="edit_get.php?id=<?php echo $row[&#39;id&#39;];?>" class="btn btn-danger">修改</a>
            </td>
        </tr>
        <?php endwhile;?>
        </tbody>
    </table>
    <a class="btn btn-primary btn-block" href="add.php">添加学生信息</a></p>
登录后复制

结果显示

添加一条数据(add.php)
  1. 我们依旧使用混编的模式,表单数据提交到本页面,使用$_SERVER['PHP_SELF']使得代码鲁棒性更强
  2. 使用post提交数据,记得在页面提示信息错误
  3. 在头部链接数据库,插入一条数据
<?php// 1. 判断是否是post提交// 2. 处理表单传递过来的数据(不能为空!empty;这里我就先不做处理了)// 3. 连接数据库并插入一条数据// 4. 开始查询(insert into)// 5. 判断是否查询成功// 6. 判断是否插入成功`mysqli_affected_rows()`// 7. 重定向function add_user(){
    $name = $_POST[&#39;name&#39;];
    $age = $_POST[&#39;age&#39;];
    $gender = $_POST[&#39;gender&#39;];
    $link = mysqli_connect(&#39;127.0.0.1&#39;, &#39;root&#39;, &#39;&#39;, &#39;students&#39;);
    mysqli_query($link,"set names &#39;utf8&#39;;");
    if(!link){
        $GLOBALS[&#39;msg&#39;] = &#39;连接数据库失败&#39;;
        return;
    }
    $query = mysqli_query($link,"INSERT INTO stu (name, gender, age) VALUES (&#39;{$name}&#39;,{$gender},{$age});");
    if (!$query) {
        $GLOBALS[&#39;msg&#39;] = &#39;查询过程失败&#39;;
        return;
    }
    $affected = mysqli_affected_rows($link);
    if($affected!==1){
        $GLOBALS[&#39;error_message&#39;] = &#39;添加数据失败&#39;;
        return;
    }
    header(&#39;Location:index.php&#39;);}if($_SERVER[&#39;REQUEST_METHOD&#39;]===&#39;POST&#39;){
    add_user();}?>
登录后复制
  1. 界面
<p class="container add">
    <h4 class="alert alert-primary text-center">添加学生信息</h4>
    <form method="post" action="<?php echo $_SERVER[&#39;PHP_SELF&#39;]; ?>">
        <p class="form-group row">
            <label for="name" class="col-sm-2 col-form-label">姓名</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" name="name" id="name">
            </p>
        </p>
        <p class="form-group row">
            <label for="gender" class="col-sm-2 col-form-label">性别</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" id="gender" name="gender">
            </p>
        </p>
        <p class="form-group row">
            <label for="age" class="col-sm-2 col-form-label">年龄</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" id="age" name="age">
            </p>
        </p>
        <!--这里添加提示-->
        <?php if(!empty($GLOBALS[&#39;msg&#39;])): ?>
        <p class="alert alert-warning" role="alert">
            <?php echo $GLOBALS[&#39;msg&#39;]; ?>
        </p>
        <?php endif ?>
        <button type="submit" class="btn btn-primary btn-block">保存</button>
    </form></p>
登录后复制
  1. 点击添加学生信息,跳转到add.php
    add.php
删除一条数据(del.php)
  1. 我们已经在主页面已经写好了,并传入了id
  2. 我们根据传入的id使用sql语句进行删除即可
  3. 删除完成重定向
<?php// 1. 接收传递过来的id
    if(empty($_GET['id'])){
        exit('<h1>连接数据库失败</h1>');
    }
    $id = $_GET['id'];// 2. 连接数据库
    $link = mysqli_connect('127.0.0.1', 'root', '', 'students');
    mysqli_query($link,"set names 'utf8';");// 3. 删除该条数据
    $query = mysqli_query($link,"delete from stu where id = {$id}");// 4. 查询失败的处理
    if (!$query) {
        exit('<h1>查询数据失败</h1>');
    }// 5. 受影响的行数
    $affected_rows = mysqli_affected_rows($link);// 6. 删除失败
    if ($affected_rows <= 0) {
        exit('<h1>删除失败</h1>');
    }
    header('Location: index.php');?>
登录后复制
修改操作
  1. 接收index.php传过来的id,然后根据id查询数据(id是唯一的)
  2. 将数据渲染到界面上
  3. 通过id链接数据库查询该条数据
    if(empty($_GET['id'])){
        exit('<h1>必须传入指定参数</h1>');
        return;
    }
    $id = $_GET['id'];
    $link = mysqli_connect('127.0.0.1', 'root', '', 'students');
    mysqli_query($link,"set names 'utf8';");
    if(!$link){
        exit('<h1>连接数据库失败</h1>');
    }
    $query = mysqli_query($link,"select * from stu where id = {$id} limit 1");
    if(!$query){
        exit('<h1>查询数据失败</h1>');
    }
    $user = mysqli_fetch_assoc($query);
    if(!$user){
        exit('<h1>找不到你要编辑的数据</h1>');
    }
登录后复制
  1. 界面数据渲染
<p class="container edit">
    <h4 class="alert alert-primary text-center">添加学生信息</h4>
    <form method="post" action="edit_post.php">
        <p class="form-group row">
            <label for="name" class="col-sm-2 col-form-label">id</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" name="id" id="name" value="<?php echo $user[&#39;id&#39;]; ?>">
            </p>
        </p>
        <p class="form-group row">
            <label for="name" class="col-sm-2 col-form-label">姓名</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" name="name" id="name" value="<?php echo $user[&#39;name&#39;]; ?>">
            </p>
        </p>
        <p class="form-group row">
            <label for="gender" class="col-sm-2 col-form-label">性别</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" id="gender" name="gender" value="<?php echo $user[&#39;gender&#39;]; ?>">
            </p>
        </p>
        <p class="form-group row">
            <label for="age" class="col-sm-2 col-form-label">年龄</label>
            <p class="col-sm-10">
                <input type="text" class="form-control" id="age" name="age" value="<?php echo $user[&#39;age&#39;]; ?>">
            </p>
        </p>
        <button type="submit" class="btn btn-primary btn-block">保存</button>
    </form></p>
登录后复制
  1. 结果(生产环境中id是要隐藏的)
    数据渲染
  2. post提交数据,根据id修改数据
<?php
var_dump($_POST);
$id = $_POST["id"];
$name = $_POST['name'];
$age = $_POST['age'];
$gender = $_POST['gender'];
$link = mysqli_connect('127.0.0.1', 'root', '', 'students');
mysqli_query($link,"set names 'utf8';");
if(!$link){
    exit('<h1>连接数据库失败</h1>');
}
//$query = mysqli_query($link,"update stu set name={$name},age={$age},gender={$gender} where id = {$id};");
var_dump("UPDATE stu SET gender={$gender},age={$age},name='{$name}' WHERE id={$id}");
$query = mysqli_query($link,"UPDATE stu SET gender={$gender},age={$age},name='{$name}' WHERE id={$id}");
if (!$query) {
    exit('<h1>查询数据失败</h1>');
}
$affected = mysqli_affected_rows($link);
if($affected!==1){
    exit('<h1>找不到你要编辑的数据</h1>');
}
header('Location:index.php');
?>
登录后复制

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是十分钟利用PHP+Mysql实现增删改查(实例详解)的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

MySQL:初学者的数据管理易用性 MySQL:初学者的数据管理易用性 Apr 09, 2025 am 12:07 AM

MySQL适合初学者使用,因为它安装简单、功能强大且易于管理数据。1.安装和配置简单,适用于多种操作系统。2.支持基本操作如创建数据库和表、插入、查询、更新和删除数据。3.提供高级功能如JOIN操作和子查询。4.可以通过索引、查询优化和分表分区来提升性能。5.支持备份、恢复和安全措施,确保数据的安全和一致性。

navicat premium怎么创建 navicat premium怎么创建 Apr 09, 2025 am 07:09 AM

使用 Navicat Premium 创建数据库:连接到数据库服务器并输入连接参数。右键单击服务器并选择“创建数据库”。输入新数据库的名称和指定字符集和排序规则。连接到新数据库并在“对象浏览器”中创建表。右键单击表并选择“插入数据”来插入数据。

mysql:简单的概念,用于轻松学习 mysql:简单的概念,用于轻松学习 Apr 10, 2025 am 09:29 AM

MySQL是一个开源的关系型数据库管理系统。1)创建数据库和表:使用CREATEDATABASE和CREATETABLE命令。2)基本操作:INSERT、UPDATE、DELETE和SELECT。3)高级操作:JOIN、子查询和事务处理。4)调试技巧:检查语法、数据类型和权限。5)优化建议:使用索引、避免SELECT*和使用事务。

PHP的未来:改编和创新 PHP的未来:改编和创新 Apr 11, 2025 am 12:01 AM

PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。

navicat如何执行sql navicat如何执行sql Apr 08, 2025 pm 11:42 PM

在 Navicat 中执行 SQL 的步骤:连接到数据库。创建 SQL 编辑器窗口。编写 SQL 查询或脚本。单击“运行”按钮执行查询或脚本。查看结果(如果执行查询的话)。

navicat怎么新建连接mysql navicat怎么新建连接mysql Apr 09, 2025 am 07:21 AM

可在 Navicat 中通过以下步骤新建 MySQL 连接:打开应用程序并选择“新建连接”(Ctrl N)。选择“MySQL”作为连接类型。输入主机名/IP 地址、端口、用户名和密码。(可选)配置高级选项。保存连接并输入连接名称。

MySQL和SQL:开发人员的基本技能 MySQL和SQL:开发人员的基本技能 Apr 10, 2025 am 09:30 AM

MySQL和SQL是开发者必备技能。1.MySQL是开源的关系型数据库管理系统,SQL是用于管理和操作数据库的标准语言。2.MySQL通过高效的数据存储和检索功能支持多种存储引擎,SQL通过简单语句完成复杂数据操作。3.使用示例包括基本查询和高级查询,如按条件过滤和排序。4.常见错误包括语法错误和性能问题,可通过检查SQL语句和使用EXPLAIN命令优化。5.性能优化技巧包括使用索引、避免全表扫描、优化JOIN操作和提升代码可读性。

PHP与Python:了解差异 PHP与Python:了解差异 Apr 11, 2025 am 12:15 AM

PHP和Python各有优势,选择应基于项目需求。1.PHP适合web开发,语法简单,执行效率高。2.Python适用于数据科学和机器学习,语法简洁,库丰富。

See all articles