博客列表 >PHP 第课:PDO增删改查操作 以及常用预处理方法 11月21日

PHP 第课:PDO增删改查操作 以及常用预处理方法 11月21日

孤忆寻昔R
孤忆寻昔R原创
2019年11月24日 23:31:53726浏览

作业一

添加操作: insert into 表名 SET name=:n alias=:a’

  1. <?php
  2. //添加操作
  3. require __DIR__.'/pdo.php';
  4. $sql = 'INSERT INTO `works` SET `name`=:n, `alias`=:a';
  5. $stmt = $pdo->prepare($sql);
  6. $name = 'sdfasdf';
  7. $alias = '30';
  8. $stmt->bindParam('n',$name,PDO::PARAM_STR);
  9. $stmt->bindParam('a',$alias,PDO::PARAM_STR);
  10. $add = $stmt->execute();
  11. if($add){
  12. $count = $stmt->rowCount();
  13. if($count > 0){
  14. echo '插入成功';
  15. }else{
  16. echo '插入失败';
  17. }
  18. } else{
  19. die($stmt-> errorInfo());
  20. }
  21. $pdo = null;


删除操作 ‘DELETE * FROM 表名 WHERE id=:i’

  1. <?php
  2. //删除操作
  3. require __DIR__.'/pdo.php';
  4. $sql = 'DELETE FROM `works` WHERE `id`=:i';
  5. $stmt = $pdo -> prepare($sql);
  6. $id = 12;
  7. $stmt->bindParam('i',$id,PDO::PARAM_INT);
  8. if($stmt -> execute()){
  9. if ($stmt -> rowCount()> 0) {
  10. echo '删除数据成功'.$stmt -> rowCount();
  11. }
  12. } else {
  13. die(print_r($stmt->errorInfo(),true));
  14. }


更新操作 UPDATE 表名 SET name=:n alias=:a’

  1. <?php
  2. //更新操作
  3. require __DIR__.'/pdo.php';
  4. $sql = 'UPDATE `works` SET `name`=:n,`alias`=:a WHERE`id`=:d';
  5. $stmt = $pdo -> prepare($sql);
  6. $id = 2;
  7. $name = '张三';
  8. $alias = '山东理工大学';
  9. $stmt->bindParam('d',$id,PDO::PARAM_STR);
  10. $stmt->bindParam('n',$name,PDO::PARAM_STR);
  11. $stmt->bindParam('a',$alias,PDO::PARAM_STR);
  12. $upa = $stmt -> execute();
  13. if($upa){
  14. $count = $stmt -> rowCount();
  15. if ($count > 0) {
  16. echo '修改数据成功';
  17. } else {
  18. echo '修改数据失败';
  19. }
  20. } else {
  21. die(print_r($stmt->errorInfo(),true));
  22. }


查询操作 SELECT * FROM 表名; foreach

  1. <?php
  2. //查询操作
  3. require __DIR__.'/pdo.php';
  4. $sql = 'SELECT * FROM `works`';
  5. $stmt = $pdo -> prepare($sql);
  6. $select = $stmt->execute();
  7. if($select){
  8. $arr = $stmt->fetchAll();
  9. foreach($arr as $v){
  10. echo $v['id'].'-----'.$v['name'].'-----'.$v['alias'].'<hr>';
  11. }
  12. } else{
  13. die(print_r($stmt->errorInfo(),true));
  14. }


作业二

while查询

fetchAll()查询

  1. <?php
  2. # 查询2: fetchAll()
  3. // 1. 连接数据库
  4. require __DIR__ . '/pdo.php';
  5. // 2. 创建SQL语句模板
  6. $sql = 'SELECT * FROM `works` WHERE `id` = :d';
  7. // 3. 创建SQL语句对象
  8. $stmt = $pdo->prepare($sql);
  9. // 4. 将变量绑定到SQL语句模板的命名占位符上
  10. $id = 2;
  11. $stmt->bindParam('d', $id, PDO::PARAM_INT);
  12. // 5. 执行SQL操作
  13. $stmt->execute();
  14. // 遍历, 返回二维数组
  15. $works = $stmt->fetchAll(PDO::FETCH_ASSOC);
  16. foreach ($works as $work) {
  17. echo '<pre>' . print_r($work, true);
  18. }
  19. // 6. 销毁pdo, 关闭连接
  20. $pdo = null; // unset($pdo) 等价`

bindColumn()查询

  1. <?php
  2. # 查询3: bindColumn()
  3. // 1. 连接数据库
  4. require __DIR__ . '/pdo.php';
  5. // 2. 创建SQL语句模板
  6. $sql = 'SELECT * FROM `works` WHERE `id` = :i';
  7. // 3. 创建SQL语句对象
  8. $stmt = $pdo->prepare($sql);
  9. // 4. 将变量绑定到SQL语句模板的命名占位符上
  10. $id = 2;
  11. $stmt->bindParam('i', $id, PDO::PARAM_INT);
  12. // 5. 执行SQL操作
  13. $stmt->execute();
  14. // 将结果集中的记录中的字段, 绑定到指定的变量上
  15. $stmt->bindColumn('name', $name);
  16. $stmt->bindColumn('alias', $alias);
  17. while ($stmt->fetch(PDO::FETCH_ASSOC)) {
  18. $alias = mb_substr($alias,0, 20,'utf-8');
  19. echo '片名: ' . $name . '<br>' . '简介: ' . $alias . '...<hr>';
  20. }
  21. // 6. 销毁pdo, 关闭连接
  22. $pdo = null; // unset($pdo) 等价`

总结

1、增删改查 、 预处理 以及多种数据查询
2、预处理要注意 $sql语句和bindParam的写入方式
3、try 、catch 能够精准的判断出SQL错误方式!

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