博客列表 >PHP 数据库操作总结

PHP 数据库操作总结

司马青衫
司马青衫原创
2020年07月25日 16:50:421437浏览

PHP 数据库操作总结

1.SQL简单操作

  • $sql = "INSERT 数据表名称 SET 设置项目值";:在数据库中插入数据
  • $sql = "INSERT INTO 数据表名称(设置项目) VALUES(设置值)";:在数据库中插入数据
  • $sql = "UPDATE 数据表名称 SET 设置项目值 WHERE 条件";:在数据库中修改/更新数据
  • $sql = "DELETE FROM 数据表名称 WHERE 条件";:在数据库中删除某数据
  • $sql = "SELECT 查找的项目 FROM 数据表名称 WHERE 条件";:在数据库中查找数据

2.mysqli操作mysql数据库

2.1 操作步骤

  • 1.设置连接参数建立数据库连接
    • $mysqli = new mysqli($host, $username, $password, $dbname);:创建连接对象 连接数据库
    • if($mysqli->connect_errno)die('Connect Error:'.$mysqli->connect_error);:检测错误
    • $mysqli->set_charset($charset);:设置客户端字符集编码
  • 2.操作数据库并使用预处理将sql语句转为sql语句对象:$stmt = $mysqli->prepare($sql);
  • 3.参数绑定:$stmt->bind_param('i', $id);
  • 4.给被绑定的变量进行赋值
  • 5.执行sql语句:$stmt->execute() or die($stmt->error);
  • 6.获取相关操作结果
  • 7.关闭数据库连接:$mysqli->close();

2.2 属性/方法

属性/方法 描述
mysqli() 创建连接对象 连接数据库
connect_errno 返回连接错误代码
connect_error 返回连接错误信息
set_charset() 设置默认字符编码
prepare() 准备执行一个 sql 语句 并返回语句对象
bind_param() 将变量作为参数绑定到准备好的语句
execute() 执行一条预处理语句
errno 返回语句调用的错误代码
error 返回语句调用的错误信息
affected_rows 返回最后执行的语句更改、删除或插入的行总数
insert_id 获取从上一次插入操作生成的 id
get_result() 从执行后 sql 语句对象中获取结果集
num_rows 返回结果中的行数
fetch_assoc() 以关联数组形式获取结果行
fetch_array() 以索引数组形式获取结果行
fetchAll() 以关联、索引数组或两者都有的形式获取所有结果行
bind_result() 将变量绑定到准备好的语句中用作存储结果
fetch() 将准备好的语句的结果存储到绑定的变量中
free() 释放结果集占用的内存
close() 关闭数据库连接

2.3 示例

  1. <?php
  2. //连接数据库
  3. $mysqli = new mysqli('localhost', 'root', 'root','db_users');
  4. if($mysqli->connect_errno) die('连接错误:'.$mysqli->connect_error);
  5. $mysqli->set_charset('utf8');
  6. //操作数据库 预处理 绑定参数 新增数据
  7. $sql = 'INSERT `user` SET `username`=?,`password`=?';
  8. $stmt = $mysqli->prepare($sql);
  9. $stmt->bind_param('ss', $name, $pwd);
  10. $name = 'php';
  11. $pwd = md5('php.cn');
  12. //执行预处理语句
  13. $stmt->execute() or die($stmt->error);
  14. //获取操作结果 受影响行数 新增的主键ID
  15. $aff_rows = $stmt->affected_rows;
  16. $ins_id = $stmt->insert_id;
  17. echo '新增了'.$aff_rows.'条数据,新增的主键ID='.$ins_id.'<br>';
  18. //操作数据库 预处理 绑定参数 更新数据
  19. $sql = 'UPDATE `user` SET `username`=?,`password`=? WHERE `id`=?';
  20. $stmt = $mysqli->prepare($sql);
  21. $stmt->bind_param('ssi', $name, $pwd, $id);
  22. $name = 'mysqli';
  23. $pwd = md5('mysqli');
  24. $id = $ins_id;
  25. //执行预处理语句
  26. $stmt->execute() or die($stmt->error);
  27. //获取操作结果 受影响行数
  28. $aff_rows = $stmt->affected_rows;
  29. echo '更新了'.$aff_rows.'条数据'.'<br>';
  30. //操作数据库 预处理 绑定参数 删除
  31. $sql = 'DELETE FROM `user` WHERE `id`=?';
  32. $stmt = $mysqli->prepare($sql);
  33. $stmt->bind_param('i', $id);
  34. $id = $ins_id;
  35. //执行预处理语句
  36. $stmt->execute() or die($stmt->error);
  37. //获取操作结果 受影响行数
  38. $aff_rows = $stmt->affected_rows;
  39. echo '删除了'.$aff_rows.'条数据'.'<br>';
  40. //操作数据库 预处理 绑定参数 查找并遍历数据
  41. $sql = 'SELECT `username` FROM `user` WHERE `id`=?';
  42. $stmt = $mysqli->prepare($sql);
  43. $stmt->bind_param('i', $id);
  44. $id = 1;
  45. //执行预处理语句
  46. $stmt->execute() or die($stmt->error);
  47. //获取操作结果
  48. $result = $stmt->get_result();
  49. if($result->num_rows > 0) vprintf('查找结果:%s',$result->fetch_assoc());

3.PDO操作mysql数据库

3.1 操作步骤

  • 1.设置连接参数建立数据库连接:$pdo = new PDO($dsn, $username, $password);
  • 2.操作数据库并使用预处理将sql语句转为sql语句对象:$stmt = $pdo->prepare($sql);
  • 3.参数绑定:$stmt->bindParam(1,$username,PDO::PARAM_STR,50);
  • 4.给被绑定的变量进行赋值
  • 5.执行sql语句:$stmt->execute();
  • 6.获取相关操作结果
  • 7.关闭数据库连接:$pdo = null;或者unset($pdo);

3.2 属性/方法

属性/方法 描述
PDO() 创建一个表示数据库连接的 pdo 实例
setAttribute() 设置属性/设置一个语句属性
prepare() 准备要执行 sql 的语句,并返回语句对象
bindParam() 绑定一个参数到指定的变量名
bindValue() 把一个值绑定到一个参数
execute() 执行一条预处理语句
rowCount() 返回受上一个 SQL 语句影响的行数
lastInsertId() 返回最后插入行的 ID 或序列值
bindColumn() 绑定一列到一个 PHP 变量
fetch() 从结果集中获取下一行
fetchAll() 返回一个包含结果集中所有行的数组

3.3 示例

  1. <?php
  2. $dsn = 'mysql:host=localhost;dbname=db_users;charset=utf8';
  3. $pdo = new PDO($dsn, 'root', 'root');
  4. //操作数据库 预处理 绑定参数 新增操作1
  5. $sql = 'INSERT `user` SET `username`=?,`password`=?';
  6. $stmt = $pdo->prepare($sql);
  7. $stmt->bindParam(1, $name);
  8. $stmt->bindParam(2, $pwd);
  9. $name = 'php';
  10. $pwd = md5('php.cn');
  11. //执行预处理语句
  12. $stmt->execute();
  13. //获取操作结果 受影响行数 新增的主键ID
  14. $aff_rows = $stmt->rowCount();
  15. $ins_id = $pdo->lastInsertId();
  16. echo '新增了'.$aff_rows.'条数据,新增的主键ID='.$ins_id.'<br>';
  17. //新增操作2
  18. $name = 'php';
  19. $pwd = md5('php.cn');
  20. $stmt->bindValue(1, $name);
  21. $stmt->bindValue(2, $pwd);
  22. //执行预处理语句
  23. $stmt->execute();
  24. //获取操作结果 受影响行数 新增的主键ID
  25. $aff_rows = $stmt->rowCount();
  26. $ins_id = $pdo->lastInsertId();
  27. echo '新增了'.$aff_rows.'条数据,新增的主键ID='.$ins_id.'<br>';
  28. //新增操作3
  29. //执行预处理语句 并绑定值
  30. $stmt->execute(['php',md5('php')]);
  31. //获取操作结果 受影响行数 新增的主键ID
  32. $aff_rows = $stmt->rowCount();
  33. $ins_id = $pdo->lastInsertId();
  34. echo '新增了'.$aff_rows.'条数据,新增的主键ID='.$ins_id.'<br>';
  35. //操作数据库 预处理 绑定参数 更新数据
  36. $sql = 'UPDATE `user` SET `username`=?,`password`=? WHERE `id`=?';
  37. $stmt = $pdo->prepare($sql);
  38. //执行预处理语句 并绑定值
  39. $stmt->execute(['mysqli', md5('mysqli'), $ins_id]);
  40. //获取操作结果 受影响行数
  41. $aff_rows = $stmt->rowCount();
  42. echo '更新了'.$aff_rows.'条数据'.'<br>';
  43. //操作数据库 预处理 绑定参数 删除
  44. $sql = 'DELETE FROM `user` WHERE `id`=?';
  45. $stmt = $pdo->prepare($sql);
  46. //执行预处理语句 并绑定值
  47. $stmt->execute([$ins_id]);
  48. //获取操作结果 受影响行数
  49. $aff_rows = $stmt->rowCount();
  50. echo '删除了'.$aff_rows.'条数据'.'<br>';
  51. //操作数据库 预处理 绑定参数 查找并遍历数据
  52. $sql = 'SELECT `username` FROM `user` WHERE `id`=?';
  53. $stmt = $pdo->prepare($sql);
  54. //执行预处理语句 并绑定值
  55. $stmt->execute([1]);
  56. //获取操作结果
  57. $result = $stmt->fetch();
  58. vprintf('查找结果:%s',$result);

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