Blogger Information
Blog 30
fans 0
comment 1
visits 24080
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0117数据库基础与春节案例
Original
666 people have browsed it

数据库

MySQL常用语句

1.增加数据 INSERT

  1. INSERT `表名` SET `列1`(可以理解为要在某一个字段增加数据,就写某一个字段)='值1'`列2`='值2'........


表大概是这这个样子 (表名test)

插入数据(表名与字段名用的是反引号,插入的值使用的单引号,数值型不用引号)

  1. INSERT `test` SET `name`='张飞',`age`=18

图1插入成功

图2已经有数据了

2.更新数据 UPDATE
格式

  1. UPDATE `表明` SET `列1`(可以理解为要在某一个字段更新数据,就写某一个字段)='值1'`列2`='值2'........

例,把‘张飞’的年龄改成16

  1. UPDATE `test` SET `age`=16 WHERE `name`='张飞'



3.数据查询 SELECT
格式

  1. SELECT `(需要返回的字段)` 可以用星号(*)代替表示返回所有字段 FROM `表名` WHERE(条件可以使用表达式)`列1`+条件;

例(查询数据表test中age>20的并返回满足条件的所有字段)

  1. SELECT * FROM `test` WHERE `age`>20



4.删除数据 DELETE
格式

  1. DELETE FROM `表名` WHERE 条件

  1. DELETE FROM `test` WHERE `age`<'20'

图(age小于20的都被删除了)

需要注意:更新与删除操作,都要带上条件,如果不带条件,会更新所有的数据或者删除所有的数据

PDO

1.连接数据库
在连接到数据库的时候需要使用到对象PDO
连接数据库需要先设置数据源(数据类型,主机,数据库名)
然后设置登录名与登录密码

  1. <?php
  2. //创建数据源mysql为数据类型 host=localhost为主机,dbname=phpedu为数据库名
  3. $dsn = 'mysql:host=localhost;dbname=phpedu;';
  4. //设置用户名
  5. $username = 'root';
  6. //设置密码
  7. $password = 'root';
  8. //创建PDO实例并把上面三个参数传递进去
  9. $pdo = new PDO($dsn,$username,$password);

2.操作数据库
操作数据库就是,写一条关于数据库的增加、删除、查询或者更新的语句

  1. <?php
  2. //这里需要注意,表名,与查询字段都是反引号,'='后面的条件为单引号
  3. $sql = "SELECT * FROM `test` WHERE `age`>20";
  4. //创建SQL语句的模板对象,并把创建的SQL语句传递进去
  5. $stmt = $pdo->prepare($sql);
  6. //执行SQL语句;
  7. $stmt->execute();
  8. //获取结果,fecth()方法为每次获取一条结果,里面的(PDO::FETCH_ASSOC)为只获取相关联的部分
  9. $age =$stmt->fetch(PDO::FETCH_ASSOC);
  10. echo '<pre>'.print_r($age,true).'</pre>';
  11. //打印获取到的第二条数据
  12. $age =$stmt->fetch(PDO::FETCH_ASSOC);
  13. echo '<pre>'.print_r($age,true).'</pre>';



如果想一次性获取所有的数据可以使用fetchAll

  1. <?php
  2. //这里需要注意,表名,与查询字段都是反引号,'='后面的条件为单引号
  3. $sql = "SELECT * FROM `test` WHERE `age`>20";
  4. //创建SQL语句的模板对象,并把创建的SQL语句传递进去
  5. $stmt = $pdo->prepare($sql);
  6. //执行SQL语句;
  7. $stmt->execute();
  8. //使用fetchAll获取所有满足条件的数据
  9. $age =$stmt->fetchAll(PDO::FETCH_ASSOC);
  10. echo '<pre>'.print_r($age,true).'</pre>';


案例练习

根据学习到的MYSQL语句,创建一个表格,大概是这样的

成品大概是这样的,里面图片数据都是由数据获取


贴个交易区的HTML代码

  1. <?php
  2. //引入PHP文件
  3. include 'handle.php';
  4. //引入头部模块
  5. include "head.php";
  6. ?>
  7. <!-- 导入二手交易内容 -->
  8. <div class="public-headline">
  9. <span>
  10. 二手交易
  11. </span>
  12. </div>
  13. <div class="public-second-hand">
  14. <!-- 标题1-->
  15. <div class="title1">
  16. <a href="">抢好货</a>
  17. <span>0低价</span>
  18. <span>便捷</span>
  19. <span>安全</span>
  20. <span>快速</span>
  21. </div>
  22. <!-- 标题2-->
  23. <div class="title2">
  24. <span>热门分类</span>
  25. <a href="list.php?cid=1">美女写真</a>
  26. <a href="list.php?cid=2">日本美女</a>
  27. <a href="list.php?cid=3">美国美女</a>
  28. <a href="list.php?cid=4">国内美女</a>
  29. <a href="list.php?cid=5">AV美女</a>
  30. </div>
  31. <!-- 交易内容-->
  32. <div class="exhibition">
  33. <!-- 交易内容左边-->
  34. <div class="exhibition-lt">
  35. <!--嵌入PHP代码遍历在handle.php文件里面获取到的随机数据,并把数据填充到HTML代码-->
  36. <?php foreach($randpics as $item):?>
  37. <div class="exhibition-lt-shop">
  38. <a href="<?=$item['url']?>"><img src="../../<?=$item['path']?>" alt="" width="178" height="122"></a>
  39. <span><?=$item['brief']?></span>
  40. <div>
  41. <spa>&yen;333</spa>
  42. <span>美女</span>
  43. </div>
  44. </div>
  45. <?php endforeach;?>
  46. </div>
  47. <!-- 交易内容右边-->
  48. <div class="exhibition-rt">
  49. <!--嵌入PHP代码遍历在handle.php文件里面获取到的侧边栏广告图片,并填充进HTML代码-->
  50. <?php foreach($secondad as $item):?>
  51. <a href="<?=$item['url']?>"><img src="../../<?=$item['path']?>" alt="" width="190" height="130"></a>
  52. <?php endforeach;?>
  53. <div class="exhibition-rt-ad2">
  54. <?php foreach($secondad1 as $item):?>
  55. <a href="<?=$item['url']?>"><img src="../../<?=$item['path']?>" alt="" width="393" height="60"></a>
  56. <?php endforeach;?>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. <?php
  62. //引入评论区,分页,友情链接模块
  63. include 'replay.php';
  64. include 'paginate.php';
  65. include 'footlinks.php';
  66. ?>

关键的handle.php里面的代码

  1. <?php
  2. //使用命名空间
  3. namespace PDO;
  4. //引用PDO
  5. use PDO;
  6. //创建数据源
  7. $dsn = 'mysql:host=localhost;dbname=phpedu';
  8. //创建用户名,密码
  9. $username = 'root';
  10. $password = 'root';
  11. //创建PDO类实例
  12. $pdo = new PDO($dsn, $username, $password);
  13. //创建查询类,因为数据里面只有图片,名字就取了个image
  14. class Image
  15. {
  16. public $table;
  17. public $search;
  18. public $condition;
  19. //调用此方法需要传递一个数据源
  20. public function getImages($pdo)
  21. {
  22. $sql = "SELECT * FROM `$this->table` WHERE `$this->search`='$this->condition'";
  23. // 创建预处理对象,PDO实例由外部传入
  24. $stmt = $pdo->prepare($sql);
  25. // 执行预处理对象
  26. $stmt->execute();
  27. // 获取数据满足条件的所有数据
  28. $images = $stmt->fetchAll(PDO::FETCH_ASSOC);
  29. return $images;
  30. }
  31. // 构造方法,调用此方法需要传入,$table(表名),$search(查询字段一个),$condition(条件一个)
  32. public function __construct($table, $search, $condition)
  33. {
  34. $this->table = $table;
  35. $this->search = $search;
  36. $this->condition = $condition;
  37. }
  38. }
  39. //创建一个遍历数组的类把一个二维数组遍历为普通数组
  40. class Newdata
  41. {
  42. public $type;
  43. public function getNewdata()
  44. {
  45. //调用传递进来的二维数组并遍历它
  46. foreach ($this->type as $item) {
  47. $value = $item;
  48. //返回一个普通数组(索引数组或者关联数组)
  49. return $value;
  50. }
  51. }
  52. //构造方法,需要传递一个二维数组进去
  53. public function __construct($data)
  54. {
  55. // 把这个二维数组赋值给当前类里面的$type
  56. $this->type = $data;
  57. }
  58. }
  59. // 创建一个获取到随机数据的类
  60. class Randdata
  61. {
  62. public $type;
  63. public $num;
  64. // 创建一个方法,获取到随机键名数组
  65. public function getRandom()
  66. {
  67. return array_rand($this->type, $this->num);
  68. }
  69. //创建一个方法,通过引用获取到的随机键名数组方法,获取到具体的随机数据
  70. public function getData()
  71. {
  72. //调用当前类的getRandom()方法,把此方法获取到的随机键名进行遍历
  73. foreach (self::getRandom() as $item) {
  74. //把每次遍历的键名传递到要获取数据的数组里面,然后赋值给$data
  75. $data[] = $this->type[$item];
  76. }
  77. //返回$data值
  78. return $data;
  79. }
  80. //创建构造方法,把要获取随机信息的数组$type,与想要获取几条随机信息的$num传递进类里面
  81. public function __construct($type, $num)
  82. {
  83. $this->type = $type;
  84. $this->num = $num;
  85. }
  86. }
  87. //创建image类实例,并传递参数分别是表明,查询字段,条件
  88. $image = new Image('images', 'id', 1);
  89. //访问image类里面的方法,并把获取到的数据赋值给images
  90. $picroll = $image->getImages($pdo);
  91. //创建一个Newdata实例
  92. $obj = new Newdata($picroll);
  93. // 把获取到的轮播图二维数据变为关联数组
  94. $picroll = $obj->getNewdata();
  95. // 测试是否成功
  96. // print_r($picroll);
  97. // die();
  98. // 测试有没有拿到数据
  99. // echo '<pre>'.print_r($images,true).'</pre>';
  100. // 获取轮播图右侧图片
  101. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  102. $image = new Image('images', 'note', 'rollright');
  103. // 获取到图片数据
  104. $rollright = $image->getImages($pdo);
  105. // 创建一个newdata类实例,传入获取到的右侧图片
  106. $obj = new Newdata($rollright);
  107. // 获取到一个关联数组
  108. $rollright = $obj->getNewdata();
  109. // echo '<pre>' . print_r($rollright, true) . '</pre>';
  110. // 获取到新闻资讯需要的图片
  111. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  112. $image = new Image('images', 'note', 'news');
  113. // 获取到新闻资讯图片
  114. $picnews = $image->getImages($pdo);
  115. // 创建一个newdata类实例,传入获取到的新闻图片
  116. $obj = new Newdata($picnews);
  117. // 获取到转为关联数组的新闻图片
  118. $picnews = $obj->getNewdata();
  119. // print_r($picnews);
  120. // die;
  121. // 获取新闻资讯广告图片
  122. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  123. $image = new Image('images', 'note', 'newsad');
  124. // 获取到新闻广告图片
  125. $newsad = $image->getImages($pdo);
  126. // print_r($newsad);
  127. // die;
  128. // 获取到图片专区需要的图片
  129. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  130. $image = new Image('images', 'note', 'picarea1');
  131. // 获取到图片专区图片1
  132. $picarea1 = $image->getImages($pdo);
  133. // echo '<pre>'.print_r($picarea1,true).'</pre>';
  134. // die;
  135. $image = new Image('images', 'note', 'picarea2');
  136. // 获取到图片专区图片2
  137. $picarea2 = $image->getImages($pdo);
  138. // echo '<pre>'.print_r($picarea2,true).'</pre>';
  139. // die;
  140. $image = new Image('images', 'note', 'picarea3');
  141. // 获取到图片专区图片3
  142. $picarea3 = $image->getImages($pdo);
  143. // echo '<pre>'.print_r($picarea3,true).'</pre>';
  144. // die;
  145. // 获取二手交易广告图片
  146. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  147. $image = new Image('images', 'note', 'secondad');
  148. // 获取到二手交易广告图片
  149. $secondad = $image->getImages($pdo);
  150. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  151. $image = new Image('images', 'note', 'secondad1');
  152. // 获取到二手交易广告图片1
  153. $secondad1 = $image->getImages($pdo);
  154. // echo '<pre>'.print_r($secondad,true).'</pre>';
  155. // 获取二手交易商品图片
  156. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  157. $image = new Image('images', 'note', 'secondshop');
  158. // 获取二手交易商品图片
  159. $secondshop = $image->getImages($pdo);
  160. //使用创建好的获取随机数据类实例,传递进去需要随机获取的数据,与数据数量
  161. $randdata = new Randdata($secondshop, 8);
  162. //使用getdata方法,获取到数据并赋值给变量randpic
  163. $randpics = $randdata->getData();
  164. //打印数据,查看是否成功
  165. // echo '<pre>'.print_r($randpic,true).'</pre>';
  166. // 创建image类实例,并传递参数分别是表明,查询字段,条件
  167. $image = new Image('images', 'note', 'logo');
  168. // 获取到LOGO图片
  169. $logo = $image->getImages($pdo);
  170. // echo '<pre>'.print_r($logo,true).'</pre>';
  171. // 把获取到的LOGO数据更改为普通数据
  172. $obj = new Newdata($logo);
  173. $logo = $obj->getNewdata();
  174. //关闭数据库
  175. unset($pdo);

此次案例主要运用的是查询语句,比较简单的一个用法,还需要继续努力,提高自己的逻辑思维与写代码的能力。
最后,写完了回看的时候,发现懵逼了,自己写的类方法,如果不写备注,都看不懂!!!还是代码写少了,分析少了,逻辑思维还不够灵活,自己写的代码应该要一看就知道是怎么回事才对!!!

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