博客列表 >CURD语句的基本语法和PDO中操作数据表的基本步骤实例演示增删改查命令 2019年07月24日 23时10分

CURD语句的基本语法和PDO中操作数据表的基本步骤实例演示增删改查命令 2019年07月24日 23时10分

高明博客
高明博客原创
2019年08月01日 00:19:22778浏览

一、常用的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`

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




声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议