Blogger Information
Blog 29
fans 0
comment 0
visits 19799
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MySQLI操作
手机用户1576673622
Original
989 people have browsed it

1.MySQLI操作思路及增删改查、根据操作思路说明MySQLI的常用方法

-大纲:

-具体内容:

  1. /**
  2. * MySQLI操作思路及增删改查
  3. * 其中$mysqli、$result、$stmt变量分别代表:
  4. * mysqli类、mysqli_result类、mysqli_stmt对象
  5. */
  6. /*————————————————————————————————*/
  7. #1:连接数据库及各种设置(略)
  8. $mysqli=new mysqli('localhost','root','root','dbname');
  9. #2:执行SQL查询:
  10. #2.1:准备sql语句
  11. #2.1.1:SQL语句
  12. //增
  13. $sql='INSERT `users` SET `name`=? ,`email`=?;';
  14. //删
  15. $sql='DELETE FROM `users` WHERE `id`=?;';
  16. //改
  17. $sql='UPDATE `users` SET `name`=?,`email`=? WHERE `id`=?;';
  18. //查:
  19. $sql='SELECT `name`,`email` FROM `users` WHERE `id`=? LIMIT n offset p ORDER BY `name` ASC;';
  20. #2.1.2:处理SQL语句
  21. /**
  22. *情况一:预处理
  23. *适用:常用,增、删、改、查
  24. */
  25. //a.创建mysqli_stmt对象
  26. $stmt=$mysqli->stmt_init();
  27. //b.预处理sql语句
  28. $stmt->prepare($sql);
  29. //c.绑定sql语句中的参数:
  30. /*语法:mysqli_stmt::bind_param( string $types, mixed &$var1[, mixed &$...] ) : bool
  31. $types:i(integer)、d(double)、s(string)、b(blob)
  32. */
  33. $user=['admin','admin@php.cn',5];
  34. list($name,$email,$id)=$user;
  35. $stmt->bind_param('ssi',$name,$email,$id);
  36. //d.执行
  37. /*方式一:
  38. 语法:mysqli_stmt::execute( void ) : bool*/
  39. $stmt->excecute();
  40. /*方式二:执行sql并获取结果集对象
  41. 语法:mysqli_stmt::get_result( void) : mysqli_result
  42. */
  43. $result=$stmt->get_result();
  44. /**
  45. *情况二:直接处理
  46. *适用:少用
  47. */
  48. //直接执行sql并获取结果集对象
  49. /*语法:mysqli::query( string $query[, int $resultmode = MYSQLI_STORE_RESULT] ) : mixed.*/
  50. $result=$mysqli->query($sql);
  51. #3:处理SQL执行结果
  52. #3.1:`增`、`删`、`改`的处理
  53. //查看受影响的记录
  54. /*常用的属性有:
  55. $stmt->affected_rows;//受影响的记录数
  56. $stmt->insert_id;//添加成功的主键,用于insert操作
  57. $stmt->error;//错误信息
  58. */
  59. if($stmt->affected_rows):
  60. echo '成功';
  61. else:
  62. echo '失败'.$stmt->error;
  63. endif;
  64. #3.2:`查`的处理
  65. #3.2.1:方法一,使用mysqli_stmt对象
  66. //a.绑定结果集
  67. /*结果集中字段/列,绑定到指定的变量上
  68. 语法:mysqli_stmt::bind_result( mixed &$var1[, mixed &$...] ) : bool
  69. */
  70. $stmt->bind_result($name,$email);
  71. //b.从结果集中获取记录
  72. /*方法:获取1条当前记录,并将指针移动到下一条记录->循环.
  73. 语法:mysqli_stmt::fetch( void) : bool
  74. */
  75. while ($stmt->fetch()):
  76. echo "$name--->$email <br>";
  77. endwhile;
  78. //c.释放结果集对象:
  79. $stmt->free_result()
  80. #3.2.2:方法二,使用mysqli_result对象(常用)
  81. //a.获取结果集对象
  82. /*方式一:预处理方式*/
  83. $result=$stmt->get_result();//获取结果集
  84. /*方式二:直接获取方式*/
  85. $result=$mysqli->query($sql);
  86. //b.从结果集对象中获取记录
  87. /*方式一:获取1条当前记录并将指针移到下一条记录->循环.
  88. 其中,分3种情况
  89. */
  90. //情况一:返回一维数组:索引+关联
  91. $result->fetch_array();
  92. //情况二:返回一维数组:索引
  93. $result->fetch_row();
  94. //情况三:返回一维数组:关联(常用)
  95. $result->fetch_assoc();
  96. //循环方式:while
  97. while ($result->fetch_assoc()):
  98. echo "{$user['name']}==>{$user['email']} <br>";
  99. endwhile;
  100. /*方式二:一次性获取所有数据->循环.*/
  101. //第一步:数据表指针复位
  102. $result->data_seek(0);
  103. //第二步:获取所有记录
  104. /*情况一:返回二维数组:索引=>索引*/
  105. $users=$result->fetch_all();
  106. /*情况二:返回二维数组:索引=>关联*/
  107. $users=$result->fetch_all(MYSQLI_ASSOC);
  108. //循环方式:foreach
  109. foreach($users as $user){
  110. echo "{$user['name']}==>{$user['email']} <br>";
  111. }
  112. //c.释放结果对象
  113. $result->free_result();
  114. //#4:结束操作
  115. //方式一:
  116. $stmt->close();
  117. //方式二:
  118. $mysqli->close();

2.手写作业



注:前期各种原因未能紧跟学习课程,现在才勉强赶上

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:继续努力
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