批改状态:合格
老师批语:写得还行, 好的商业 源码, 有一半是注释, 希望你重视起来
1.增加数据 INSERT
INSERT `表名` SET `列1`(可以理解为要在某一个字段增加数据,就写某一个字段)='值1',`列2`='值2'........
例
表大概是这这个样子 (表名test)
插入数据(表名与字段名用的是反引号,插入的值使用的单引号,数值型不用引号)
INSERT `test` SET `name`='张飞',`age`=18
图1插入成功
图2已经有数据了
2.更新数据 UPDATE
格式
UPDATE `表明` SET `列1`(可以理解为要在某一个字段更新数据,就写某一个字段)='值1',`列2`='值2'........
例,把‘张飞’的年龄改成16
UPDATE `test` SET `age`=16 WHERE `name`='张飞'
图
3.数据查询 SELECT
格式
SELECT `(需要返回的字段)` 可以用星号(*)代替表示返回所有字段 FROM `表名` WHERE(条件可以使用表达式)`列1`+条件;
例(查询数据表test中age>20的并返回满足条件的所有字段)
SELECT * FROM `test` WHERE `age`>20
图
4.删除数据 DELETE
格式
DELETE FROM `表名` WHERE 条件
例
DELETE FROM `test` WHERE `age`<'20'
图(age小于20的都被删除了)
需要注意:更新与删除操作,都要带上条件,如果不带条件,会更新所有的数据或者删除所有的数据
1.连接数据库
在连接到数据库的时候需要使用到对象PDO
连接数据库需要先设置数据源(数据类型,主机,数据库名)
然后设置登录名与登录密码
例
<?php//创建数据源mysql为数据类型 host=localhost为主机,dbname=phpedu为数据库名$dsn = 'mysql:host=localhost;dbname=phpedu;';//设置用户名$username = 'root';//设置密码$password = 'root';//创建PDO实例并把上面三个参数传递进去$pdo = new PDO($dsn,$username,$password);
2.操作数据库
操作数据库就是,写一条关于数据库的增加、删除、查询或者更新的语句
例
<?php//这里需要注意,表名,与查询字段都是反引号,'='后面的条件为单引号$sql = "SELECT * FROM `test` WHERE `age`>20";//创建SQL语句的模板对象,并把创建的SQL语句传递进去$stmt = $pdo->prepare($sql);//执行SQL语句;$stmt->execute();//获取结果,fecth()方法为每次获取一条结果,里面的(PDO::FETCH_ASSOC)为只获取相关联的部分$age =$stmt->fetch(PDO::FETCH_ASSOC);echo '<pre>'.print_r($age,true).'</pre>';//打印获取到的第二条数据$age =$stmt->fetch(PDO::FETCH_ASSOC);echo '<pre>'.print_r($age,true).'</pre>';
图
如果想一次性获取所有的数据可以使用fetchAll
例
<?php//这里需要注意,表名,与查询字段都是反引号,'='后面的条件为单引号$sql = "SELECT * FROM `test` WHERE `age`>20";//创建SQL语句的模板对象,并把创建的SQL语句传递进去$stmt = $pdo->prepare($sql);//执行SQL语句;$stmt->execute();//使用fetchAll获取所有满足条件的数据$age =$stmt->fetchAll(PDO::FETCH_ASSOC);echo '<pre>'.print_r($age,true).'</pre>';
图
根据学习到的MYSQL语句,创建一个表格,大概是这样的
成品大概是这样的,里面图片数据都是由数据获取

贴个交易区的HTML代码
<?php//引入PHP文件include 'handle.php';//引入头部模块include "head.php";?><!-- 导入二手交易内容 --><div class="public-headline"><span>二手交易</span></div><div class="public-second-hand"><!-- 标题1--><div class="title1"><a href="">抢好货</a><span>0低价</span><span>便捷</span><span>安全</span><span>快速</span></div><!-- 标题2--><div class="title2"><span>热门分类</span><a href="list.php?cid=1">美女写真</a><a href="list.php?cid=2">日本美女</a><a href="list.php?cid=3">美国美女</a><a href="list.php?cid=4">国内美女</a><a href="list.php?cid=5">AV美女</a></div><!-- 交易内容--><div class="exhibition"><!-- 交易内容左边--><div class="exhibition-lt"><!--嵌入PHP代码遍历在handle.php文件里面获取到的随机数据,并把数据填充到HTML代码--><?php foreach($randpics as $item):?><div class="exhibition-lt-shop"><a href="<?=$item['url']?>"><img src="../../<?=$item['path']?>" alt="" width="178" height="122"></a><span><?=$item['brief']?></span><div><spa>¥333</spa><span>美女</span></div></div><?php endforeach;?></div><!-- 交易内容右边--><div class="exhibition-rt"><!--嵌入PHP代码遍历在handle.php文件里面获取到的侧边栏广告图片,并填充进HTML代码--><?php foreach($secondad as $item):?><a href="<?=$item['url']?>"><img src="../../<?=$item['path']?>" alt="" width="190" height="130"></a><?php endforeach;?><div class="exhibition-rt-ad2"><?php foreach($secondad1 as $item):?><a href="<?=$item['url']?>"><img src="../../<?=$item['path']?>" alt="" width="393" height="60"></a><?php endforeach;?></div></div></div></div><?php//引入评论区,分页,友情链接模块include 'replay.php';include 'paginate.php';include 'footlinks.php';?>
<?php//使用命名空间namespace PDO;//引用PDOuse PDO;//创建数据源$dsn = 'mysql:host=localhost;dbname=phpedu';//创建用户名,密码$username = 'root';$password = 'root';//创建PDO类实例$pdo = new PDO($dsn, $username, $password);//创建查询类,因为数据里面只有图片,名字就取了个imageclass Image{public $table;public $search;public $condition;//调用此方法需要传递一个数据源public function getImages($pdo){$sql = "SELECT * FROM `$this->table` WHERE `$this->search`='$this->condition'";// 创建预处理对象,PDO实例由外部传入$stmt = $pdo->prepare($sql);// 执行预处理对象$stmt->execute();// 获取数据满足条件的所有数据$images = $stmt->fetchAll(PDO::FETCH_ASSOC);return $images;}// 构造方法,调用此方法需要传入,$table(表名),$search(查询字段一个),$condition(条件一个)public function __construct($table, $search, $condition){$this->table = $table;$this->search = $search;$this->condition = $condition;}}//创建一个遍历数组的类把一个二维数组遍历为普通数组class Newdata{public $type;public function getNewdata(){//调用传递进来的二维数组并遍历它foreach ($this->type as $item) {$value = $item;//返回一个普通数组(索引数组或者关联数组)return $value;}}//构造方法,需要传递一个二维数组进去public function __construct($data){// 把这个二维数组赋值给当前类里面的$type$this->type = $data;}}// 创建一个获取到随机数据的类class Randdata{public $type;public $num;// 创建一个方法,获取到随机键名数组public function getRandom(){return array_rand($this->type, $this->num);}//创建一个方法,通过引用获取到的随机键名数组方法,获取到具体的随机数据public function getData(){//调用当前类的getRandom()方法,把此方法获取到的随机键名进行遍历foreach (self::getRandom() as $item) {//把每次遍历的键名传递到要获取数据的数组里面,然后赋值给$data$data[] = $this->type[$item];}//返回$data值return $data;}//创建构造方法,把要获取随机信息的数组$type,与想要获取几条随机信息的$num传递进类里面public function __construct($type, $num){$this->type = $type;$this->num = $num;}}//创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'id', 1);//访问image类里面的方法,并把获取到的数据赋值给images$picroll = $image->getImages($pdo);//创建一个Newdata实例$obj = new Newdata($picroll);// 把获取到的轮播图二维数据变为关联数组$picroll = $obj->getNewdata();// 测试是否成功// print_r($picroll);// die();// 测试有没有拿到数据// echo '<pre>'.print_r($images,true).'</pre>';// 获取轮播图右侧图片// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'rollright');// 获取到图片数据$rollright = $image->getImages($pdo);// 创建一个newdata类实例,传入获取到的右侧图片$obj = new Newdata($rollright);// 获取到一个关联数组$rollright = $obj->getNewdata();// echo '<pre>' . print_r($rollright, true) . '</pre>';// 获取到新闻资讯需要的图片// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'news');// 获取到新闻资讯图片$picnews = $image->getImages($pdo);// 创建一个newdata类实例,传入获取到的新闻图片$obj = new Newdata($picnews);// 获取到转为关联数组的新闻图片$picnews = $obj->getNewdata();// print_r($picnews);// die;// 获取新闻资讯广告图片// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'newsad');// 获取到新闻广告图片$newsad = $image->getImages($pdo);// print_r($newsad);// die;// 获取到图片专区需要的图片// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'picarea1');// 获取到图片专区图片1$picarea1 = $image->getImages($pdo);// echo '<pre>'.print_r($picarea1,true).'</pre>';// die;$image = new Image('images', 'note', 'picarea2');// 获取到图片专区图片2$picarea2 = $image->getImages($pdo);// echo '<pre>'.print_r($picarea2,true).'</pre>';// die;$image = new Image('images', 'note', 'picarea3');// 获取到图片专区图片3$picarea3 = $image->getImages($pdo);// echo '<pre>'.print_r($picarea3,true).'</pre>';// die;// 获取二手交易广告图片// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'secondad');// 获取到二手交易广告图片$secondad = $image->getImages($pdo);// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'secondad1');// 获取到二手交易广告图片1$secondad1 = $image->getImages($pdo);// echo '<pre>'.print_r($secondad,true).'</pre>';// 获取二手交易商品图片// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'secondshop');// 获取二手交易商品图片$secondshop = $image->getImages($pdo);//使用创建好的获取随机数据类实例,传递进去需要随机获取的数据,与数据数量$randdata = new Randdata($secondshop, 8);//使用getdata方法,获取到数据并赋值给变量randpic$randpics = $randdata->getData();//打印数据,查看是否成功// echo '<pre>'.print_r($randpic,true).'</pre>';// 创建image类实例,并传递参数分别是表明,查询字段,条件$image = new Image('images', 'note', 'logo');// 获取到LOGO图片$logo = $image->getImages($pdo);// echo '<pre>'.print_r($logo,true).'</pre>';// 把获取到的LOGO数据更改为普通数据$obj = new Newdata($logo);$logo = $obj->getNewdata();//关闭数据库unset($pdo);
此次案例主要运用的是查询语句,比较简单的一个用法,还需要继续努力,提高自己的逻辑思维与写代码的能力。
最后,写完了回看的时候,发现懵逼了,自己写的类方法,如果不写备注,都看不懂!!!还是代码写少了,分析少了,逻辑思维还不够灵活,自己写的代码应该要一看就知道是怎么回事才对!!!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号