前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >PHP第四节

PHP第四节

作者头像
用户3461357
发布于 2019-08-02 06:55:35
发布于 2019-08-02 06:55:35
1.4K00
代码可运行
举报
文章被收录于专栏:web前端基地web前端基地
运行总次数:0
代码可运行

SQL高级

  • where 条件 查询时,不添加 where 条件, 返回数据表所有行。需要添加限定条件,只返回需要的行。 select 字段列表 from table where 条件;
  • Like 模糊匹配 % 通配符 -- 查找姓张的人 select * from table where name like '张%';
  • in 语法:一次查询多个符合条件的数据 select 字段列表 from tb where 字段 in (value1,value2,value3);
  • count() 获取返回数据的总条数 -- 查询满足条件数据的总条数 select count(*) from table where 条件
  • 排序 select * from table order by 字段名称; 默认升序 select * from table order by 字段名称 desc; 降序
  • limit 对结果集进行截取 select 字段列表 from table limit 截取的起始索引,截取的长度
  • 联合查询(多个表联合查询) select 字段列表 from 表A join 表B on A.字段=B.字段 where 条件

PHP操作数据库

连接数据库基本步骤

  1. 连接数据库
  2. 准备sql语句
  3. 执行sql语句
  4. 获取执行的结果并分析
  5. 关闭数据库

操作数据库常用API

  • mysqli_connect(IP, 用户名,密码,数据库名) 连接数据库
  • mysqli_query($link, $sql) 执行SQL语句
  • mysqli_error($link); 返回错误描述
  • mysqli_close($link); 关闭连接
  • mysqli_fetch_assoc($res); 从结果集中取得一行作为关联数组返回
  • mysqli_num_rows($res); 返回结果集的行数

sql操作注意事项:

  • 使用PHP发送SQL语句前,可以先打印SQL语句,检查语句的正确性。
  • 使用变量拼接SQL语句时,字段为字符串类型,需要在变量的两侧使用单、双引号包裹。可以将所有的字段外面都使用双引号包含。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  // 1. 连接数据库
  // mysqli_connect(ip地址, 用户名, 密码, 数据库的名称, 端口号);
  // 执行结果
  //    1. 连接成功, 返回一个数据库连接对象
  //    2. 连接失败, 返回 false
  // @表示错误抑制符, 可以抑制错误的输出
  $link = @ mysqli_connect('127.0.0.1', 'root', 'root', 'test02', 3306);

  // var_dump($link);

  // 如果数据库连接失败
  if ( !$link ) {
    // 程序结束, die 方法, 结束当前程序, 输出一段语句
    die("数据库连接失败");  
  }

  echo "数据库连接成功<br>";

  // 2. 准备 sql 语句: 删除一条数据
  $sql = "delete from stu where id = 14";

  // 3. 让数据库执行 sql 语句, 并分析结果
  // mysqli_query(数据库连接对象, 要执行的sql语句)
  // 执行成功返回 true, 执行失败返回 false
  if ( mysqli_query( $link, $sql ) ) {
    echo "删除成功";
  }
  else {
    echo "删除失败<br>";
    // mysqli_error 可以查看错误消息
    echo mysqli_error($link);
  }

  // 4. 关闭数据库连接 (挂电话)
  mysqli_close( $link );

非查询(增删改)和查询语句(select)的区别

通过mysqli_query()函数,来执行sql语句,操作数据库

  • 执行的是非查询sql语句时,mysqli_query()执行成功返回true,失败返回false
  • 而执行查询的sql语句时,mysqli_query()执行成功,返回查询数据的结果集,失败返回false查询数据逻辑如下 // 操作步骤: // 1. 连接数据库 // 2. 准备 sql 语句 // 3. 让数据库执行 sql 语句 // 4. 分析执行结果 // 5. 关闭数据库连接 // 1. 连接 $link = @ mysqli_connect('127.0.0.1', 'root', 'root', 'test02', 3306); if ( !$link ) { // 连接失败 die('数据库连接失败'); } // 2. 准备 sql 语句 $sql = 'select * from stu where id;'; // 3. 执行 sql 语句, 分析结果 // mysqli_query // (1) 执行非查询语句, 成功 true, 失败 false // (2) 执行查询语句, 成功返回结果集, 失败 false $res = mysqli_query( $link, $sql ); if ( !$res ) { echo mysqli_error( $link ); die('数据库查询失败'); } // mysqli_fetch_assoc 查询成功, 从结果集中取数据, 以关联数组的形式返回 // 一次只取一条数据, 如果没取到, 返回 null $arr = []; while( $row = mysqli_fetch_assoc( $res ) ) { // 将值推到数组中 $arr[] = $row; } echo '<pre>'; print_r($arr); echo '</pre>';

数据库工具函数的封装

为了提高代码的复用性,把数据增删改的操作封装成一个方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  // 定义常量
  define( 'HOST', '127.0.0.1' );
  define( 'UNAME', 'root' );
  define( 'PWD', 'root' );
  define( 'DB', 'test02' );
  define( 'PORT', 3306 );


  // 非查询语句封装
  // 封装一个执行非查询语句的方法, 提高代码的复用性
  // 参数: $sql 要执行的 sql 语句
  // 返回值: true / false
  function my_exec( $sql ) {
    // 1. 连接数据库
    $link = @ mysqli_connect( HOST, UNAME, PWD, DB, PORT);

    if( !$link ) {
      echo '数据库连接失败';
      return false;
    }

    // 2. 准备 sql 语句, 就是传递过来的 $sql

    // 3. 执行 sql 语句, 分析结果
    if ( mysqli_query( $link, $sql ) ) {
      // 执行成功
      mysqli_close( $link ); // 关闭数据库
      return true;
    }
    else {
      // 执行失败
      mysqli_close( $link ); // 关闭数据库
      return false;
    }

  }

  // 查询语句的封装
  // 参数: $sql 要执行的 sql 语句
  // 返回值:
  //    (1) 成功, 返回数据(二维数组)
  //    (2) 失败, 返回 false
  function my_query( $sql ) {

    // 1. 建立连接
    $link = @ mysqli_connect( HOST, UNAME, PWD, DB, PORT );
    if ( !$link ) {
      echo "数据库连接失败";
      return false;
    }

    // 2. 准备 sql 语句 $sql
    // 3. 执行 sql 语句, 分析结果
    $res = mysqli_query( $link, $sql );  // 结果集 或者 false

    if ( !$res ) {
      echo "获取数据失败<br>";
      echo mysqli_error($link);
      mysqli_close( $link );
      return false;
    }

    // 得到结果集, 将结果集的所有内容取出到数组中
    $arr = [];
    while ( $row = mysqli_fetch_assoc($res) ) {
      $arr[] = $row;
    }

    mysqli_close( $link );
    return $arr; // 返回结果数组
  }

学生管理系统2.0基本功能

基本功能

  • 添加学生功能
  • 展示学生列表功能
  • 删除学生功能
  • 查看学生详情
  • 更新学生数据

实现思路

注册功能思路:

  1. 表单设计,点击提交按钮向服务器提交表单数据
  2. 在后台获取表单提交的数据,保存到数据库中
    • 先获取表单的标签的数据
    • 保存上传的图片(并保存图片存储的路径)
    • 将表单的数据和图片的路径一起保存到数据库中
  3. 保存完成,跳转到列表页,查看新添加的数据

展示功能思路:

  1. 先从数据库中获取数据(二维数组arr)
  2. 遍历二维数组,将数组中数据渲染到页面中

删除功能思路:

  1. 获取要删除数据的id
  2. 根据id删除数据库中指定的数据
  3. 删除完毕,返回列表页

详情展示功能

  1. 获取要查看详情数据的id
  2. 根据id通过联合查询,获取到需要用数据
  3. 把数据显示在页面中
  4. 点击返回按钮,可以返回到列表页

更新数据思路:更新数据的思路=先渲染 再 提交

  1. 获取要查看详情数据的id
  2. 把对应id的数据填充到修改页面中
  3. 点击修改按钮,获取表单的数据,提交给服务器
  4. 在服务器更新数据
  5. 更新完成后跳转到列表页
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 web前端基地 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
PHP数据库的查询和更新(一)
在PHP中,您可以使用SELECT语句来查询数据库。以下是一个MySQLi查询示例:
堕落飞鸟
2023/04/27
1.4K0
PHP-封装MySQL的单例
3、为了保证代码的可重用性,一个方法只实现一个功能,所以初始化参数和连接数据库分到两个方法中。
cwl_java
2022/11/30
9630
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
本文实例讲述了针对thinkPHP5框架存储过程bug重写的存储过程扩展类。分享给大家供大家参考,具体如下:
用户8832582
2021/07/13
4430
Mysql详细学习笔记
日拱一卒,功不唐捐! 缺士怕双车,缺象怕炮 布局:出动大子,左右均衡,抢占要道 类型:急攻、缓攻、灵活、散手
20岁爱吃必胜客
2022/11/13
4.7K0
Mysql详细学习笔记
PHP升级到5.5+后MySQL函数及其Mysqli函数代替用法
由于MySQL扩展从php5.5开始弃用,所以以后不推荐大家再用MySQL扩展,请用MySQLi或PDO代替,以下是MySQL对应的MySQLi函数(绿色字体)供大家参考。(注:PHP手册上的有误,这里是最准的)
IT工作者
2021/12/20
1.1K0
【PHP】当mysql遇上PHP
本文介绍了PHP和MySQL在Web开发中的重要性,并详细讲解了PHP和MySQL的基本语法、数据类型、操作符、流程控制、函数、数组、错误处理、面向对象、数据库、缓存、安全、性能和优化等方面的知识。
啦啦啦321
2018/01/03
5.8K0
【PHP】当mysql遇上PHP
PHP怎么连接和操作MySQL数据库-MySQLi 面向过程的方式
PHP连接和操作MySQL数据库的常用方式有3种,分别是MySQLi (面向对象),MySQLi (面向过程),PDO (面向对象)。MySQLi和PDO 都是PHP的扩展,MySQLi只针对 MySQL 数据库,PDO则可以应用在十几种数据库中。而面向对象和面向过程是项目开发中两种不同的编程思想。
素浅
2020/11/09
3.1K0
MySQL 删除数据表的通用语法
MySQL中删除数据表是非常容易操作的,但是你在进行删除表操作时要非常小心,因为执行删除命令后所有数据都会消失。
用户1685462
2021/07/26
9560
【PHP】一文详解如何连接Mysql数据库(附源码)
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言ABAP,SQL进行任务的完成,对SAP企业管理系统,SAP ABAP开发和数据库具有较深入的研究。 💅文章概要: 各位小伙伴们大家好呀!本文主要讲解PHP如何连接数据库并且根据前端的form表单提交的数据返回到数据库最后查询出来展现。希望能帮助到大家! 🤟每日一言: 你可以遗憾,但
THUNDER王
2023/02/23
1.3K0
【PHP】一文详解如何连接Mysql数据库(附源码)
PHP7原生MySQL数据库操作实现代码
PHP5中mysql_connect()等函数大多被PHP7中类的成员函数所代替。PHP5中连接mysql是过程性的,而PHP7中强调了类的使用与面向对象的方法
用户8832582
2021/07/13
8900
PHP-操作数据库数据
1.3 操作数据 1.3.1 数据操作语句 通过mysqli_query()执行SQL语句 增、删、改语句执行成功返回true,失败返回false <?php //1、连接数据库 $link=my
cwl_java
2020/03/27
8760
PHP连接MySQL的几种方式及推荐
https://www.runoob.com/php/php-mysql-intro.html
码客说
2023/07/11
6930
PHP连接MySQL的几种方式及推荐
PHP操作mysql数据库
mysqli_connect(主机名,用户名,密码) 返回值是我们一个连接的对象,如何连接失败,报错并且返回false
白胡杨同学
2020/04/10
5K0
新手 php连接数据库大概。简单过程浅析以及遇到的问题分析
重点:PHP运行在服务器上的请记住!!! 1.在连接数据库与PHP之前首先要检查一下自己PHP文件夹里的php.ini配置文件里是否有 ;extension=php_mysqli.dll  有的话改成extension=php_mysqli.dll       如果已经是的话就不用改了      extension=php_mysql.dll    至于这个存在不存在都可以了    在几年前这个就被extension=php_mysqli.dll 给替代了     用了加强版的mysqli。 如果是用APA
徐飞机
2018/05/15
1.2K0
php基础编程-php连接mysql数据库-mysqli的简单使用
很多php小白在学习完php基础后,或多或少要接触到数据库的使用。而mysql数据库是你最好的选择,本文就mysql来为大家介绍php如何连接到数据库。 PHP MySQLi = PHP MySQL
学长冷月
2020/08/02
5.3K0
简单实例分享之mysqli的基本使用
$connect = mysqli_connect('127.0.0.1', 'root', 'root', 'test', 8889);
用户1503405
2021/10/08
4000
SQL注入原理及代码分析(一)
我们都知道,学安全,懂SQL注入是重中之重,因为即使是现在SQL注入漏洞依然存在,只是相对于之前现在挖SQL注入变的困难了。而且知识点比较多,所以在这里总结一下。通过构造有缺陷的代码,来理解常见的几种SQL注入。本文只是讲解几种注入原理,没有详细的利用过程。 如果想要了解Access的详细手工注入过程,可以看我的这篇文章https://www.cnblogs.com/lxfweb/p/12643011.html 如果想要了解MySQL的详细手工注入过程,可以看我的这篇文章https://www.cnblogs.com/lxfweb/p/12655316.html 如果想要了解SQL server的详细手工注入过程,可以看我的这篇文章https://www.cnblogs.com/lxfweb/p/12675023.html
雪痕@
2020/09/27
9360
SQL注入原理及代码分析(一)
三日php之路 -- 第二,三天(php知识要点)
异常(Exception)用于在指定的错误发生时改变脚本的正常流程。
lpe234
2020/07/28
1.4K0
PHP与数据库的连接
老猫-Leo
2023/12/11
2180
使用PHP连接MySQL:从入门到精通的实战指南
随着互联网的迅猛发展,数据库作为存储、检索和管理数据的关键组件,在Web应用中扮演着举足轻重的角色。MySQL,作为一种流行的开源关系型数据库管理系统,因其高效、稳定和易用性而广受开发者青睐。而PHP,作为一种广泛应用于Web开发的服务器端脚本语言,与MySQL的结合使用,可以轻松实现动态网站的数据交互功能。本文将从基础到进阶,详细讲解如何使用PHP连接MySQL,并通过案例说明,帮助读者更好地理解和应用这一技术。
小明爱吃火锅
2024/07/05
3780
相关推荐
PHP数据库的查询和更新(一)
更多 >
LV.1
这个人很懒,什么都没有留下~
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文