Blogger Information
Blog 18
fans 0
comment 0
visits 13660
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
CURD语句的基本语法和PDO中操作数据表的基本步骤实例演示增删改查命令 2019年07月24日 23时10分
高明博客
Original
791 people have browsed it

一、常用的CUR

最常用的就是: `CURD` 增删改查   它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。


新增操作语法

* SQL规范: `INSERT INTO `数据表` (`字段1`,`字段2`...) VALUES ('值1','值2'...)`

  * 优点: 通用规范, 移植性好, 可同时插入多条记录

  * 缺点: 字段与值的顺序必须一一对应, 容易出现拼写错误

* MySQL扩展: `INSERT INTO `数据表` SET `字段1`='值1', `字段2`='值2'... `

  * 优点: 语法简洁优雅, 执行效率是传统语法的3倍以上

  * 缺点: 只适用于`MySQL`数据库, 移植性差,并且不支持同时插入多条记录

> Tips: 语句中的 `INTO` 可以省略, 主键可忽略赋值,如果赋值必须是为`NULL`

* 举例: `INSERT `category` (`email`,`password`) VALUES ('admin@php.cn','123');`

以上三种方式,都使用过,均可使用。

删除操作语法

* `DELETE FROM `数据表`  WHERE  删除条件`

* 与更新一样, 不能省略删除条件

更新操作语法

* `UPDATE `数据表` SET `字段1`='值1', `字段2`='值2'... WHERE  更新条件`

* 不要无条件更新

> `INSERT / UPDATE / DELETE`: 都是写操作, 会影响到当前数据表中的记录内容,返回受影响的记录数量

查询操作语法

* `SELECT `字段列表` FROM `数据表名` WHERE 查询条件`

* 结果集控制: `ORDER BY`排序, `GROUP BY`分组, `LIMIT`限制数量...

* 举例: `SELECT * FROM `user` WHERE `id` > 10 LIMIT 5`

* 查询语句是最灵活,也是最常用的功能, 日常80%以上操作与查询相关

* 查询不会影响到表中数据, 返回结果集


二、PDO中操作数据表的基本步骤

PHP数据对象(PDO),扩展为PHP访问数据库定义了一个轻量级的一致借口

PDO提供了一个数据访问抽象层,这意味着,不管使用哪种数据库,都可以用相同的函数来查询和获取数据

PDO操作步骤分三步:

第一步:连接数据库 :        $pdo = new PDO($dsn,$user,$pass)

第二步:执行SQL语句:      INSERT/DELETE/UPDATE/SELECT

第三步:关闭连接【可选】:  $pdo = null; //unset($pdo); 等价

三、实例演示insert/update/delete/select用法

操作前,先配置数据库

database.php

<?php
return [
    'type' => 'mysql',
    'host' => 'localhost',
    'dbname' => 'php',
    'username' =>'root',
    'password' => 'root'
];

connect.php

<?php

//引入连接数据文件
$db = require 'database.php';

//配置数据源DSN信息
$dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";

//连接数据库
try{
    $pdo = new PDO($dsn,$db['username'],$db['password']);
//    echo "success";
}catch(PDOException $e){
    die('loser'.$e->getMessage());
}


操作案例如下:


delete.php代码

<?php

// 删除记录 功能:删除cate_id等于8的记录

//1.连接数据库
require __DIR__.'/inc/connect.php';

//2.创建预处理对象
$stmt = $pdo->prepare('DELETE FROM `category` WHERE `cate_id`=:cate_id');

//3.执行SQL语句,cate_id等于8的记录
$stmt->execute(['cate_id'=>8]);
echo '成功删除'.$stmt->rowCount().'条记录';

////4.关闭连接
$pdo = null;

本地运行截图:delete.png


update.php

<?php

// 更新记录 功能:将cate_id 等于6的name值改为xjj,alias值改为小姐姐

//基本语法
//* `UPDATE `数据表` SET `字段1`='值1', `字段2`='值2'... WHERE  更新条件`
//* 不要无条件更新


//1.连接数据库
require __DIR__.'/inc/connect.php';

//2.创建预处理对象
$stmt = $pdo->prepare('UPDATE `category` SET `name`= :name,`alias`= :alias WHERE `cate_id`=:cate_id');

//3.执行SQL语句,更新cate_id 等于6的name值改为xjj,alias值改为小姐姐
$stmt->execute(['name' => 'xjj','alias' => '小姐姐','cate_id'=>6]);
echo '成功更新'.$stmt->rowCount().'条记录';

////4.关闭连接
$pdo = null;//unset($pdo);等价

本地运行截图:update.png


insert.php

<?php
//新增记录 功能:增加一条记录,name为yhhp,alias为用户好评

//1.连接数据库
require __DIR__.'/inc/connect.php';

//2.创建预处理对象
$stmt = $pdo->prepare('INSERT INTO `category` SET `name`= :name,`alias`= :alias');

//3.执行SQL语句
$stmt->execute(['name' => 'yhhp','alias' => '用户好评']);
echo '成功添加'.$stmt->rowCount().'条记录,该记录的主键id是:'.$pdo->lastInsertId();

////4.关闭连接
$pdo = null;//unset($pdo);等价

本地运行截图:insert.png


select.php

<?php
//查询操作  功能:查询cate_id等于2的所有数据

//查询操作基本语法
//* `SELECT `字段列表` FROM `数据表名` WHERE 查询条件`
//* 结果集控制: `ORDER BY`排序, `GROUP BY`分组, `LIMIT`限制数量...
//* 举例: `SELECT * FROM `user` WHERE `id` > 10 LIMIT 5`
//* 查询语句是最灵活,也是最常用的功能, 日常80%以上操作与查询相关
//* 查询不会影响到表中数据, 返回结果集

//1.连接数据库
require __DIR__.'/inc/connect.php';

//2.创建预处理对象
$stmt = $pdo->prepare('SELECT * FROM `movies`  WHERE `cate_id`=:cate_id');

//3.执行SQL语句
$stmt->execute(['cate_id'=>2]);


//遍历
//查询方法1,追条方式获取
//while()
//PDO::FETCH_ASSOC:获取模式,功能:只获关联部分数据,没有取索引部分数据
while ($movie =$stmt->fetch(PDO::FETCH_ASSOC) )
{
    echo '<pre>'.print_r($movie,true);
}

//查询方法2,多条方式获取,耗内存
//foreach()
//$movies = $stmt->fetchAll(PDO::FETCH_ASSOC);
//foreach ($movies as $movie){
//    echo '<pre>'.print_r($movie,true);
//}


////4.关闭连接
//$pdo = null;//unset($pdo);等价

本地运行截图:select.png

总结

* 最常用的就是: `CURD` 增删改查

* `SQL`语句编写规范

  * 关键字全部大写: `SELECT / INSERT / DELETE / UPDATE ...`

  * 表名与字段名使用反引号定界符: 表名`user`, 字段名`email`

  * 具体值,有类型与长度等属性




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