博客列表 >数据库操作:增删改查和pdo

数据库操作:增删改查和pdo

初见
初见原创
2021年10月19日 16:00:30989浏览

sql增删改查

  • 插入数据 INSERT INTO
  1. (1)mysql命令,可以是大写,也可以是小写。但是我们程序员,默认命令是大写,其他的字段,数据,是小写
  2. (2)表名 和 字段名,用 ``符号 包裹。 ·· ``
  3. (3)值,是字符串的话,用 '' 单引号
  1. // 第一种
  2. INSERT INTO `user` VALUES (4, '小五', 25, '2021-10-15 21:54:42', 0);
  3. // 第二种
  4. INSERT INTO `user` ( `id` ) VALUES ( 5 )
  5. // 第三种
  6. INSERT INTO `user` SET `name` = '小六'
  • 查询 SELECT
  1. // 查询是不改变数据库里的数据的, 插入、修改、删除,都是要修改数据库中的数据。
  2. // 查询可以带条件
  3. SELECT * FROM `user`
  • 修改 UPDATE
  1. // 一定要增加条件,如果不增加条件,它会把表里的数据,全部修改
  2. // WHERE 命令,就是增加条件的
  3. UPDATE `user` SET `name` = '小七' WHERE `id` = 5
  • 删除 DELETE
  1. // 删除和更新是危险性操作,如果我们不增加条件WHERE,它会把所有的数据都删了。
  2. DELETE FROM `user` WHERE `id` = 6
  • 运算符:= <> > >= < <=
  1. SELECT * FROM `user` WHERE `id` < 5
  • 逻辑运算符 AND OR XOR
  1. SELECT * FROM `user` WHERE `id` < 5 OR `id` > 20
  • not ! 逻辑非
  1. SELECT * FROM `user` WHERE `name` IS NOT NULL
  • BETWEEN 相当于 >=10 AND <= 20
  1. SELECT * FROM `user` WHERE `id` BETWEEN 10 AND 20
  2. SELECT * FROM `user` WHERE `id` NOT BETWEEN 10 AND 20
  • LIKE 模糊查询
  1. SELECT * FROM `user` WHERE `account` LIKE '%abc%'
  • 返回值
  1. // * 会把所有的返回值 都返回
  2. SELECT `name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%abc%'
  • 分页 LIMIT
  1. // 数据库的条件,是从0开始的
  2. SELECT `name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%o%' LIMIT 0,10
  • 排序 ORDER BY
  1. // 默认是正序 从小到大
  2. SELECT `id`,`name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%o%' ORDER BY `id` LIMIT 0,10
  3. // DESC是倒序,从大到小
  4. SELECT `id`,`name`,`phone`,`age` FROM `user` WHERE `account` LIKE '%o%' ORDER BY `id` DESC LIMIT 0,10

PDO

  • php获取mysql数据
  1. // 1.连接数据库
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. // 2.预处理sql语句
  4. $pre = $pdo -> prepare('SELECT * FROM `user`');
  5. // 3.执行sql语句
  6. $exe = $pre -> execute();
  7. // 4.返回结果集
  8. $data = $pre -> fetchAll();
  9. print_r($data);

php获取mysql数据

  • 防止连接出错
  1. try{
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. // 链接数据库
  4. }catch(PDOException $e){
  5. // 抛出错误
  6. echo '数据库连接失败' . $e->getMessage();
  7. }
  • fetch() 查询出来是一维数据
  1. try{
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. $pre = $pdo -> prepare('SELECT * FROM `user` WHERE `id`=1');
  4. $exe = $pre -> execute();
  5. $data = $pre -> fetch();
  6. print_r($data);
  7. }catch(PDOException $e){
  8. // 抛出错误,错误是你可以定义的
  9. echo '数据库连接失败' . $e->getMessage();
  10. }

fetch

  • 添加数据
  1. try{
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. }catch(PDOException $e){
  4. // 抛出错误,错误是你可以定义的
  5. echo '数据库连接失败' . $e->getMessage();
  6. }
  7. $pre = $pdo -> prepare("INSERT INTO `user` VALUES (null, '小八', 35, '2021-10-15 21:54:42', 0)");
  8. $exe = $pre -> execute();
  9. if(!$exe){
  10. // 错误信息打印出来
  11. print_r($pre->errorInfo());
  12. }
  13. print_r($exe);

返回数据1, 数据添加成功

  • PDO绑定参数
  1. try{
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. }catch(PDOException $e){
  4. // 抛出错误,错误是你可以定义的
  5. echo '数据库连接失败' . $e->getMessage();
  6. }
  7. //pdo只要你给个占位符,在下面的代码中,传值给站位符
  8. $sql = 'INSERT INTO `user` SET `name`=:name, `age`=:age,`ctime`=:ctime,`utime`=:utime';
  9. $pre = $pdo -> prepare($sql);
  10. //bindParam 参数绑定
  11. $pre -> bindParam ('name',$name, PDO::PARAM_STR);
  12. $pre -> bindParam ('age',$age, PDO::PARAM_INT);
  13. $pre -> bindParam ('ctime',$ctime, PDO::PARAM_STR);
  14. $pre -> bindParam ('utime',$utime, PDO::PARAM_INT);
  15. $name = '小九';
  16. $age = 31;
  17. $ctime = date('Y-m-d H:i:s',time());
  18. $utime=0;
  19. $exe = $pre -> execute();
  20. if(!$exe){
  21. // 错误信息打印出来
  22. print_r($pre->errorInfo());
  23. }else{
  24. // rowCount 获取是否成功。影响数量
  25. echo $pre -> rowCount();
  26. echo '<hr>';
  27. // lastInsertId 获取这次自增的ID,类是用连接的类$pdo
  28. echo $pdo -> lastInsertId();
  29. }

占位

  • 用?号占位
  1. try{
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. }catch(PDOException $e){
  4. // 抛出错误,错误是你可以定义的
  5. echo '数据库连接失败' . $e->getMessage();
  6. }
  7. $sql = 'INSERT INTO `user` SET `name`=?, `age`=?,`ctime`=?,`utime`=?';
  8. $pre = $pdo -> prepare($sql);
  9. //bindParam 参数绑定
  10. $pre -> bindParam (1,$name, PDO::PARAM_STR);
  11. $pre -> bindParam (2,$age, PDO::PARAM_INT);
  12. $pre -> bindParam (3,$ctime, PDO::PARAM_STR);
  13. $pre -> bindParam (4,$utime, PDO::PARAM_INT);
  14. $name = '小十';
  15. $age = 31;
  16. $ctime = date('Y-m-d H:i:s',time());
  17. $utime=0;
  18. $exe = $pre -> execute();
  19. if(!$exe){
  20. // 错误信息打印出来
  21. print_r($pre->errorInfo());
  22. }else{
  23. // rowCount 获取是否成功。影响数量
  24. echo $pre -> rowCount();
  25. echo '<hr>';
  26. // lastInsertId 获取这次自增的ID,类是用连接的类$pdo
  27. echo $pdo -> lastInsertId();
  28. }

用?号占位

  • 明文占位
  1. try{
  2. $pdo = new PDO('mysql:host=127.0.0.1;dbname=inbox','root','root');
  3. }catch(PDOException $e){
  4. // 抛出错误,错误是你可以定义的
  5. echo '数据库连接失败' . $e->getMessage();
  6. }
  7. $sql = 'INSERT INTO `user` SET `name`=:name, `age`=:age,`ctime`=:ctime,`utime`=:utime';
  8. $pre = $pdo -> prepare($sql);
  9. $exe = $pre -> execute([
  10. ':name' => '十一郎',
  11. ':age' => 21,
  12. ':ctime' => date('Y-m-d H:i:s',time()),
  13. ':utime' => 0
  14. ]);
  15. if(!$exe){
  16. // 错误信息打印出来
  17. print_r($pre->errorInfo());
  18. }else{
  19. // rowCount 获取是否成功。影响数量
  20. echo $pre -> rowCount();
  21. echo '<hr>';
  22. // lastInsertId 获取这次自增的ID,类是用连接的类$pdo
  23. echo $pdo -> lastInsertId();
  24. }

明文

商城项目 建表

  • 用户表

用户表

  • 商品表

商品表

  • 订单表

订单表

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