Blogger Information
Blog 26
fans 0
comment 0
visits 18375
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MySql操作数据库的CURD
雪~人胖胖
Original
537 people have browsed it

连接数据库

连接参数

  1. namespace mysql_edu;
  2. return[
  3. 'host'=>$host ?? 'localhost',
  4. 'dbname'=>$dbname ?? 'phpedu',
  5. 'charset'=>$charset ?? 'utf8',
  6. 'port'=>$port ?? '3306',
  7. 'username'=>$username ?? 'root',
  8. 'password'=>$password ?? 'root',
  9. ];

设置连接

  1. namespace mysql_edu;
  2. use mysqli;
  3. $config = require __DIR__."\\config\database.php";
  4. //mysql连接的四大参数:host,username,password,dbname
  5. //extract将关联数组拆成名值对变量
  6. extract($config);
  7. //连接数据库
  8. $mysqli = new mysqli($host,$username,$password,$dbname);
  9. //判断是否成功
  10. if ($mysqli->connect_errno){
  11. echo $mysqli->connect_error;
  12. };
  13. //设置客户端默认的字符集编码
  14. $mysqli->set_charset($charset);

新增操作

  1. namespace mysql_edu;
  2. //连接数据库
  3. require 'connect.php';
  4. //操作数据库
  5. $arr = ['iphoneX','太空银',8888,10];
  6. array_walk($arr,function(&$item,$key,$length){
  7. if ($key < $length-2) $item = "'$item'";
  8. },count($arr));
  9. $data = implode(',',$arr);
  10. $sql = "INSERT `goods`(`name`,`color`,`price`,`num`) VALUES($data)";
  11. if ($mysqli->query($sql)){
  12. if ($mysqli->affected_rows > 0){
  13. echo '成功添加了'.$mysqli->affected_rows.'条数据','新增的ID是'.$mysqli->insert_id;
  14. }
  15. }else{
  16. die('添加失败'.$mysqli->errno.':'.$mysqli->error);
  17. }
  18. //关闭连接
  19. $mysqli->close();

更新操作

  1. //连接数据库
  2. namespace mysql_edu;
  3. require 'connect.php';
  4. //操作数据库
  5. $arr = ['name'=>'iphoneXR','color'=>'太空灰'];;
  6. array_walk($arr,function(&$item,$key){
  7. $item = "`$key`= '$item'";
  8. });
  9. $data = implode(',',$arr);
  10. $sql = "UPDATE `goods` SET".$data."WHERE `id`= 5";
  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. //关闭连接
  21. $mysqli->close();

查询操作

  1. namespace mysql_edu;
  2. //连接数据库
  3. require 'connect.php';
  4. //操作数据库
  5. $sql = 'SELECT `name`,`color`,`price` FROM `goods` WHERE `num`=10';
  6. //查询使用:$mysqli->query($sql),
  7. //返回值
  8. //1.查询:返回一个结果集对象
  9. //2.写操作:返回受影响的记录数量返回bool值,成功true,失败false 通过affected_rows返回受影响的记录数量
  10. // $stmt = $mysqli->prepare($sql);
  11. // $stmt->execute();
  12. // var_dump($stmt);
  13. //单挑查询
  14. $mysqli_result = $mysqli->query($sql);
  15. // $goods = $mysqli_result->fetch_array(MYSQLI_ASSOC);
  16. //如果只想要关联部分
  17. // $goods = $mysqli_result->fetch_assoc();
  18. // 如果只想要索引部分
  19. // $mysqli_result->fetch_array(MYSQLI_NUM);
  20. // $goods = $mysqli_result->fetch_row();
  21. //指针复位
  22. // $mysqli_result->data_seek(0);
  23. // if ($mysqli_result && $mysqli_result->num_rows > 0){
  24. // while ($goods = $mysqli_result->fetch_assoc()){
  25. // print_r($goods);
  26. // }
  27. // }else{
  28. // echo '查询失败或者没有符合要求的结果';
  29. // }
  30. //多条记录查询
  31. if ($mysqli_result && $mysqli_result->num_rows > 0){
  32. $goods = $mysqli_result->fetch_all(MYSQLI_ASSOC);
  33. foreach($goods as $good){
  34. vprintf('<li>型号:%s---颜色:%s---价格:%s</li>',$good);
  35. }
  36. }
  37. //关闭连接
  38. //释放结果集
  39. $mysqli_result->free_result();
  40. $mysqli->close();

删除操作

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

总结

比pdo要麻烦一点,mysql的查询返回一个结果集,用写操作返回布尔值,使用affected_rows返回受影响的记录

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:mysqli 看上去似乎比pdo麻烦一些, 但是却更规范好理解 , 如果仅考虑适应 mysql的话, 显然 mysqli效率更好, 并且功能更多, 但pdo可以适应任何类型数据库, 各有利弊吧
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post