一、 写出常用的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 新增数据操作:
--------方法二
<?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;
显示结果:
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;
显示结果:
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;
显示结果:
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;
显示结果:
查询操作:方法一
<?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;
显示结果: