博客列表 >7.24、CURD的基本操作及PDO操作数据表的基本步骤

7.24、CURD的基本操作及PDO操作数据表的基本步骤

55555的博客
55555的博客原创
2019年07月27日 11:03:23961浏览

一、 写出常用的CURD语句的基本语法

一、CURD的基本语法

-----CURD操作,即增删改查

1、新增数据 INSERT

语法:INSERT INTO '表名' ('字段1', '字段2' ...)  VALUES ('值1', '值2' ...)

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

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


MySQL扩展:

INSERT INTO '表名' SET '字段1' = '值1', '字段2' = '值2' ...

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

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


**注意**:语句中的'INTO'可以省略,主键可忽略赋值,如果赋值必须是为‘NULL’

* 列如:INSERT 'category' ('email', 'password') VALUES ('molang@php.cn',  '55555');


2、更新数据 UPDATE

语法:UPDATE '表名' SET '字段1' = '值1', '字段2' = '值2' .... WHERE 更新条件

** 不要吴条件更新--where


3、删除数据 DELETE 

语法:DELETE FROM '表名' WHERE 删除条件

** 不好省略删除条件-- where


4、查询操作 SELECT

语法:SELECT '字段列表' FROM '表名' WHERE 查询条件

结果集控制:ORDER BY--排序,GROUP BY --分组,LIMIT --限制数据

列如:SELECT * FROM 'user' WHERE id > 5 limit 8

查询语句是最灵活、也是最常用的功能

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


二、PDO中操作数据表的基本步骤, 并实例演示insert/update/delete/select

1、公共部分:连接数据库

           文件: database.php

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

   

          文件:  connect.php

<?php
//  连接数据库:PDO

$db = require 'database.php';

//  $dsn = '数据库的类型:host=数据库主机名; dbname=默认数据库名称';
$dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}";
$username = $db['username'];
$password = $db['password'];

//  Exception异常处理
try{
    $pdo = new PDO($dsn,$username,$password);
    // var_dump($pdo);
}catch (PDOException $e){
    // getMessage() 获取异常消息内容
    die('连接失败:'.$e->getMessage());
}

/*
 * try{}catch(){}经常用于捕获程序代码内主动抛出的异常错误,而没有主动抛出或者抛出后不捕获、处理的话,会导致程序出现异常。
 * Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
 * Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。
 */


2、insert 新增数据操作:

    --------方法一

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

//  2、创建sql语句的模板
$sql = 'INSERT INTO `category` SET `name` = :name,`alias` = :alias';

//  3、创建sql语句对象:预处理对象
$stmt = $pdo->prepare($sql);    // PDO::prepare — 准备要执行的语句,并返回语句对象
//var_dump($stmt);  // PDOStatement

//  4、给sql语句模板中的变量绑定值
$name = 'js';
$alias = '***介绍';
//  PDOStatement::bindParam — 绑定一个参数到指定的变量名
$stmt->bindParam(':name',$name,PDO::PARAM_STR);
$stmt->bindParam(':alias',$alias,PDO::PARAM_STR);

//  5、执行sql语句
//  PDOStatement::execute — 执行一条预处理语句
if($stmt->execute()){
    //  $stmt->rowCount():返回新增的记录数量
    if($stmt->rowCount() > 0){
        echo '成功添加' . $stmt->rowCount() . '条数据,主键是:' . $pdo->lastInsertId();
    }else{
        die('<pre>' . print_r($stmt->errorInfo(),true));
    }
}

//  6、关闭连接:可选
$pdo = null;

            显示结果:

    insert.jpg


        insert 新增数据操作:   

 --------方法二

<?php

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

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

//  3、执行sql语句
$stmt->execute(['name'=>'about', 'alias'=>'关于我们']);
echo '成功添加' . $stmt->rowCount() .'条记录,主键是:' . $pdo->lastInsertId();

//  4、关闭连接:可选
$pdo = null;

       显示结果:

    insert2.jpg


3、update 更新数据操作

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

//  2、创建sql语句
$stmt = $pdo->prepare('UPDATE `category` SET `name`= :name, `alias`= :alias where `id`= :id');

//  3、执行sql语句
$stmt->execute(['name'=>'xy', 'alias'=>'信用资质', 'id'=>5]);
echo '成功的更新' . $stmt->rowCount() . '条记录';

//  4、关闭连接:可选
$pdo = null;

        显示结果:

update.jpg


4、删除操作:

<?php
//  删除操作

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

//  2、创建sql语句
$stmt = $pdo->prepare('DELETE FROM `category` where `id`= :id');

//  3、执行sql语句
$stmt->execute(['id'=>6]);
echo '删除了' . $stmt->rowCount() .'条记录';

//  4、关闭连接:可选
$pdo =null;

        显示结果:

    delete.jpg


5、查询操作:方法一

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

//  2、创建sql语句
$stmt = $pdo->prepare('SELECT * FROM `category` where `id`= :id');

//  3、执行sql语句
$stmt->execute(['id'=>3]);
//var_dump($stmt);

//  遍历输出
/*
while ($stmt->fetch(PDO::FETCH_ASSOC)){
    echo '<pre>' . print_r($stmt,true);
}
*/

//echo '<pre>' . print_r($stmt->fetchAll(PDO::FETCH_ASSOC,true));

$cates = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach($cates as $cate){
    echo '<pre>' . print_r($cate,true);
}

//  4、关闭连接:可选
$pdo = null;

            显示结果:

    select.jpg


查询操作:方法一

<?php
//  查询:将结果集中的字段列表与变量绑定

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

//  2、创建sql语句
$stmt = $pdo->prepare('SELECT * FROM `category` where `id`>=:id');

//  3、执行sql语句
$stmt->execute(['id'=>5]);  // 获取结果集

$stmt->bindColumn('name',$name);
$stmt->bindColumn('alias',$alias);

//  遍历输出
while($stmt->fetch(PDO::FETCH_ASSOC)){
    echo '简称:' . $name . '<br>别名:' . mb_substr($alias,0,3) .'<hr>';
}

//  4、关闭连接:可选
$pdo = null;

            显示结果:

    select2.jpg

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