代码如下:

  1. <?php
  2. namespace php_edu;
  3. use PDO;
  4. /**
  5. * 数据库常用操作
  6. * 1. 读操作: select
  7. * 2. 写操作: insert,update,delete
  8. * 简称: CURD, 增删改查
  9. */
  10. // 1. 连接数据库
  11. require __DIR__ . '/config/connect.php';
  12. // 2. CURD: INSERT
  13. /**
  14. * PDO预处理
  15. * 为什么要用预处理?
  16. * 1. 防止SQL注入攻击, 2. 数据延迟绑定
  17. * (编程时只写SQL语句模板,执行SQL时再给占位符绑定真实数据)
  18. * 预处理过程:
  19. * 1. 创建SQL语句模板对象: 数据使用占位符表示
  20. * 2. 执行SQL语句,根据操作类型(写/读),读返回结果集/数组, 写返回受影响的记录数量
  21. */
  22. // INSERT 插入
  23. // INSERT 表名 SET 字段1=值1, 字段2=值2, ....
  24. // SQL语句的推荐规范:
  25. // 1. 关键字全大写
  26. // 2. 表名,字段名使用反引号做为定界符
  27. $sql = 'INSERT `myhome` SET `name` = ?, `sex` = ?, `email` = ?';
  28. // 1. 创建SQL语句模板对象
  29. $stmt = $db->prepare($sql);
  30. // var_dump($stmt);
  31. // 2. 执行SQL语句
  32. $stmt->execute(['爸爸', 0, 'father@qq.com']);
  33. $stmt->execute(['妈妈', 1, 'mother@qq.com']);
  34. $stmt->execute(['爷爷', 0, 'grandpa@qq.com']);
  35. $stmt->execute(['奶奶', 1, 'grandma@qq.com']);
  36. $stmt->execute(['哥哥', 0, 'brother@qq.com']);
  37. $stmt->execute(['姐姐', 1, 'sister@qq.com']);
  38. $stmt->execute(['我自己', 0, 'myself@qq.com']);
  39. // 成功
  40. // $stmt->rowCount(): 返回受影响的记录数量
  41. if ($stmt->rowCount() > 0) {
  42. echo '新增成功, 新增记录的主键ID = ' . $db->lastInsertId();
  43. } else {
  44. echo '新增失败';
  45. print_r($stmt->errorInfo());
  46. }
  47. // 2. CURD: UPDATE 更新
  48. $sql = 'UPDATE `myhome` SET `name` = ? WHERE `id` = ?';
  49. $stmt = $db->prepare($sql);
  50. $stmt->execute(['夏天', 1]);
  51. if ($stmt->rowCount() > 0) {
  52. echo '更新成功';
  53. } else {
  54. echo '更新失败';
  55. print_r($stmt->errorInfo());
  56. }
  57. echo '<hr>';
  58. // 3. CURD: DELETE 删除
  59. $sql = 'DELETE FROM `myhome` WHERE `id` = ?';
  60. $stmt = $db->prepare($sql);
  61. $stmt->execute([2]);
  62. if ($stmt->rowCount() > 0) {
  63. echo '删除成功';
  64. } else {
  65. echo '删除失败';
  66. print_r($stmt->errorInfo());
  67. }
  68. echo '<hr>';
  69. // 4. CURD: SELECT 单条查询
  70. // SELECT 字段列表 FROM 表名 WHERE 查询条件
  71. $sql = 'SELECT `id` ,`name` FROM `myhome` WHERE `id` > :id';
  72. $stmt = $db->prepare($sql);
  73. $stmt->execute(['id'=>6]);
  74. // 单条查询
  75. $myhome = $stmt->fetch(PDO::FETCH_ASSOC);
  76. printf('<pre>%s</pre>', print_r($myhome, true));
  77. echo '<hr>';
  78. // 5. CURD: SELECT 多条查询
  79. // SELECT 字段列表 FROM 表名 WHERE 查询条件
  80. $sql = 'SELECT `id`,`name` FROM `myhome` WHERE `id` > :id';
  81. $stmt = $db->prepare($sql);
  82. $stmt->execute(['id' => 7]);
  83. // fetchAll: 返回全部满足条件的记录集合,二维数组
  84. $myhomes = $stmt->fetchAll();
  85. // print_r($staffs);
  86. foreach ($myhomes as $myhome) {
  87. printf('<pre>%s</pre>', print_r($myhome, true));
  88. }

数据库更新如下:

更多相关文章

  1. Android(安卓)反射获得控件对象
  2. android读取联系人信息(学习版)
  3. Android(安卓)ContentProviders数据共享
  4. Laravel中如何轻松容易的输出完整的SQL语句
  5. 如何更换Android系统默认字体(Android6.0)
  6. Android(安卓)判断数据库中是否存在某个表
  7. 看Android(安卓)短信的一些关键字
  8. Android(安卓)sqlite 表更新
  9. 【简单的学生管理界面】Android的if语句中有字符串判断

随机推荐

  1. xhgui不显示php本机功能
  2. 使用PHP显示用户输入
  3. 以完整二叉树,数组格式获取所有节点
  4. 在phpword中如何在表格中新建行?
  5. php 写一个算法,查寻数组里第一个大于某数
  6. 插入PHP数组作为MYSQL列
  7. PHP+Mysql 实现留言板
  8. PHP结束后执行函数
  9. 怎么使用PHPMailer实现邮件的发送??
  10. 支付宝手机接口,服务端PHP验证失败,求助