博客列表 >MySQLi操作数据库——CURD

MySQLi操作数据库——CURD

赵大叔
赵大叔原创
2020年05月09日 09:12:06611浏览

PDO CURD操作

连接数据库四个参数:

stt 说明
1 数据库的主机名: host
2 用户名: username
3 用户密码: password
4 默认的数据库 :dbname

1、连接数据库:$mysqli = new mysqli($host, $username, $password, $dbname);
2、插入语句: $sql = "INSERT 表名 SET name=?, age=?,.... ";
3、查询语句: $sql = "SELECT 字段列表 FROM 数据表名称 WHERE 查询条件 ";
4、更新语句:$sql = "UPDATE 表名 SET 字段=新值 WHERE 更新条件"
5、删除语句:$sql = "DELETE FROM 表名 WHERE 删除条件"

连接数据库

  1. <?php
  2. // MySQLi 连接数据库
  3. use Exception;
  4. use mysqli;
  5. // mysqli 连接四大参数
  6. // 1、 数据库的主机名: host
  7. // 2、 用户名: username
  8. // 3、 用户密码: password
  9. // 4、 默认的数据库 :dbname
  10. $host = 'localhost';
  11. $username = 'root';
  12. $password = 'root';
  13. $dbname = 'phpedu';
  14. $charset = 'utf8';
  15. // 2. mysqli连接数据库
  16. $mysqli = new mysqli($host, $username, $password, $dbname);
  17. // 3. 判断是否连接成功
  18. if ($mysqli->connect_errno) echo $mysqli->connect_error;
  19. // 4. 设置客户端默认的字符编码集
  20. $mysqli->set_charset($charset);

一、代码演示插入:

  1. <?php
  2. // 插入
  3. // 1、连接数据库
  4. require 'connect.php';
  5. // 前端表单->json格式的字符串, php将这种json字符串转为数组/对象
  6. $arr = [
  7. [1, 'Thinkpad', 'Thinkpad 联想笔记本电脑轻薄便携学生游戏本手提办公用商务华为 ', 'Thinkpad', 8493, 'img/1.jpg'],
  8. [2, 'Thinkpad', 'ThinkPad 联想笔记本电脑 i7 四核游戏本商务办公超薄 i5 学生图形设计 ', 'Thinkpad', 8665, 'img/2.jpg'],
  9. [3, 'Thinkpad', '联想 ThinkPad E495/E485 锐龙版学生超薄商务办公用笔记本电脑 ', 'Thinkpad', 9778, 'img/3.jpg'],
  10. [4, 'MacBook', 'Apple/苹果 MacBook Pro13 英寸 128GB1.4GHz 四核 I5 处理器笔记本电脑家用办公学生商务', 'Apple', 7357, 'img/4.jpg'],
  11. [5, 'MacBook', '2019 款 Apple/苹果 MacBook Air 13.3 英寸 1.6G 双核 i5 8G 内存 128G/256G 原彩视网膜屏笔记本电脑', 'Apple', 8683, 'img/5.jpg'],
  12. [6, 'MacBook', '2019 新款 Apple/苹果 MacBook Air128G/256G 带触控 ID 全新办公学习学生商务笔记本电脑', 'Apple', 8580, 'img/6.jpg'],
  13. [7, '联想小新', '联想小新 Air14 2020 十代酷睿 i5/i7 14 英寸全面屏轻薄本笔记本电脑 16G/512G/MX350', '联想', 7466, 'img/7.jpg'],
  14. [8, '联想小新', '联想小新 15 2020 十代酷睿 i5/i7 15.6 英寸轻薄本 笔记本电脑 轻薄便携 学生网课', '联想', 8313, 'img/8.jpg'],
  15. [9, '联想小新', '联想小新 Pro13 13.3 英寸超轻薄笔记本电脑标压 R5-3550H/16G/512G 办公网课电脑', '联想', 5159, 'img/9.jpg'],
  16. [10, '华硕笔记本', 'Asus/华硕 VivoBook14 V4000DA 超薄锐龙 R7 轻薄便携学生笔记本电脑办公商务女生手提官方正品', 'Asus', 5096, 'img/10.jpg'],
  17. [11, '华硕笔记本', 'Asus/华硕 VivoBook14/15 V4000 超薄锐龙 R7 轻薄便携学生笔记本电脑办公商务女生手提官方店 V5000', 'Asus', 5829, 'img/11.jpg'],
  18. [12, '华硕笔记本', '华硕/ASUSY5200 顽石轻薄本 15.6 英寸高清窄边框手提轻薄便携商务办公用学生电脑游戏笔记本官方旗舰店官网新品', 'Asus', 5935, 'img/12.jpg'],
  19. [13, '华为 MateBook', '华为 MateBook 14 2K 触屏 14 英寸笔记本电脑轻薄便携学生超薄本手提办公用商务超极本 2020 新款', '华为', 7682, 'img/13.jpg'],
  20. [14, '华为 MateBook', 'HUAWEI/华为 MateBook 13 笔记本电脑十代英特尔酷睿 i5 处理器 全面屏轻薄便携商务办公 苏宁', '华为', 4969, 'img/14.jpg'],
  21. [15, '华为 MateBook', '华为 MateBook 14 英寸 2K 触控屏 windows 全面屏独显便携本一碰传便携商务超级本笔记本电脑', '华为', 4240, 'img/15.jpg'],
  22. [16, '小米电脑', '小米 RedmiBook 14 英寸增强版十代 i5 独显轻薄商务便携学生 2019 款笔记本电脑苏宁官方', 'Xiaomi', 4297, 'img/16.jpg'],
  23. [17, '小米电脑', '小米 RedmiBook 14 锐龙版 R5 轻薄便携商务办公学生手提笔记本电苏宁易购电脑官方旗舰店', 'Xiaomi', 7118, 'img/17.jpg'],
  24. [18, '小米电脑', '小米 RedmiBook 14 增强版十代酷睿 i7 处理器便携学生笔记本电脑官方网独显', 'Xiaomi', 7556, 'img/18.jpg'],
  25. [19, '戴尔笔记本', 'Dell/戴尔 新 G3 i5 独显 GTX1650 轻薄白色学生游戏本笔记本电脑官网官方灵越吃鸡游匣分期手提电脑', 'Dell', 9250, 'img/19.jpg'],
  26. [20, '戴尔笔记本', '戴尔/DELL 灵越 5000 14 英寸 10 代 i5 独显 i7 轻薄便携本办公笔记本电脑学生本学习本手提 5493 官网', 'Dell', 4389, 'img/20.jpg']
  27. ];
  28. // print_r($arr);
  29. $sql .= "INSERT `goods` (`keyword`, `name`, `model`, `price`, `img`) VALUES ";
  30. foreach ($arr as $value){
  31. $sql .= "('$value[1]', '$value[2]', '$value[3]', $value[4], '$value[5]'),";
  32. }
  33. $sql = rtrim($sql, ",") .';';
  34. // echo $sql;die;
  35. /*
  36. * $mysqli->query($sql):执行sql语句
  37. * $mysqli->affected_rows:返回受影响记录数
  38. * $mysqli->insert_id: 返回新增记录主键ID
  39. * $mysqli->errno: 返回错误信息
  40. * */
  41. // 2、操作数据库
  42. if ($mysqli->query($sql)) {
  43. if ($mysqli->affected_rows > 0) {
  44. echo '成功添加了 ' . $mysqli->affected_rows . ' 条记录, 新增记录主键ID: ' . $mysqli->insert_id;
  45. } else {
  46. echo '没有添加新记录';
  47. }
  48. } else {
  49. die('添加失败'. $mysqli->errno . ' : ' . $mysqli->error);
  50. }
  51. // 3. 关闭连接
  52. // 释放结果集:查询时有结果集的才需要
  53. // $mysqli_result->free_result();
  54. // 关闭数据库连接
  55. $mysqli->close();

演示效果:

二、代码演示查询:

  1. <?php
  2. // 查询
  3. // 1、连接数据库
  4. require 'connect.php';
  5. // 2. 操作数据库
  6. $sql = "SELECT `id`, `name`,`price`,`img` FROM `goods` WHERE `price` > 5000";
  7. // 执行sql语句
  8. $mysqli_result = $mysqli->query($sql);
  9. // var_dump($mysqli_result);
  10. // fetch_array():一次输出一条记录,并自动下移指针
  11. // $staff = $mysqli_result->fetch_array();
  12. // printf('<pre>%s</pre>', print_r($staff, true));
  13. // fetch_all(): 一次获取所有数据;
  14. // $staffs = $mysqli_result->fetch_all();
  15. if ($mysqli_result && $mysqli_result->num_rows > 0 ) {
  16. $goods = $mysqli_result->fetch_all(MYSQLI_ASSOC);
  17. } else {
  18. echo '查询失败或没有查询到满足条件的员工';
  19. }
  20. // print_r($goods);
  21. // 3. 关闭连接[可选]
  22. // 释放结果集:查询时有结果集的才需要
  23. $mysqli_result->free_result();
  24. // 关闭数据库连接
  25. $mysqli->close();
  26. ?>
  27. <!DOCTYPE html>
  28. <html lang="en">
  29. <head>
  30. <meta charset="UTF-8">
  31. <title>商品列表</title>
  32. <style>
  33. .container {
  34. width: 500px;
  35. height: 210px;
  36. display: flex;
  37. border: 2px solid black;
  38. background-color: #b3d4fc;
  39. margin-bottom: 10px;
  40. }
  41. .container img {
  42. width: 200px;
  43. }
  44. .container > section {
  45. display: flex;
  46. flex-direction: column;
  47. justify-content: space-around;
  48. margin-left: 20px;
  49. }
  50. .container > section > span:last-of-type {
  51. font-size: 20px;
  52. color: red;
  53. }
  54. </style>
  55. </head>
  56. <body>
  57. <?php foreach ($goods as $good) : ?>
  58. <div class="container">
  59. <a href=""><img src="<?php echo $good['img']; ?>" alt=""></a>
  60. <section>
  61. <span><?php echo $good['name']; ?></span>
  62. <span><?php echo $good['price']; ?></span>
  63. </section>
  64. </div>
  65. <?php endforeach;?>
  66. </body>
  67. </html>

演示效果:

三、代码演示更新:

  1. <?php
  2. // 更新
  3. // 1、连接数据库
  4. require 'connect.php';
  5. // 2. 操作数据库
  6. // 前端表单->json格式的字符串, php将这种json字符串转为数组/对象
  7. $arr = ['联想小新', 'LENOVO',8000];
  8. $sql = "UPDATE `goods` SET `model` = '$arr[1]', price = $arr[2] WHERE `keyword` = '$arr[0]'";
  9. // echo $sql;die;
  10. // 执行操作
  11. if ($mysqli->query($sql)) {
  12. if ($mysqli->affected_rows > 0) {
  13. echo '成功更新了 ' . $mysqli->affected_rows . ' 条记录';
  14. } else {
  15. echo '没有更新任何记录';
  16. }
  17. } else {
  18. die('更新失败'. $mysqli->errno . ' : ' . $mysqli->error);
  19. }
  20. // 3. 关闭连接
  21. // 释放结果集
  22. $mysqli->close();

演示效果:

四、代码演示删除:

  1. <?php
  2. // 删除
  3. // 1、连接数据库
  4. require 'connect.php';
  5. // 2. 操作数据库
  6. $sql = "DELETE FROM `goods` WHERE `id` =" . $_GET['id'];
  7. if ($mysqli->query($sql)) {
  8. if ($mysqli->affected_rows > 0) {
  9. echo '成功删除了 id=' .$_GET['id'] . ' 的记录';
  10. } else {
  11. echo '没有删除任何记录';
  12. }
  13. } else {
  14. die('删除失败'. $mysqli->errno . ' : ' . $mysqli->error);
  15. }
  16. // 3. 关闭连接
  17. $mysqli->close();

演示效果:

总结

个人觉得直接遍历数组,绑定数组值给sql语句,对新人更友好,操作起来更方便,简单。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议