博客列表 >1121_mysql基础2 九期第19课

1121_mysql基础2 九期第19课

叮叮当当
叮叮当当原创
2019年11月23日 13:58:10536浏览

1 pdo操作:连接、增删查改操作(手写)

(1) 连接:mysql.php

  1. # 数据库连接参数
  2. $db = [
  3. 'type' => 'mysql',
  4. 'host' => '127.0.0.1',
  5. 'dbname' => 'SqlTest',
  6. 'username' => 'root',
  7. 'password' => 'root',
  8. 'port' => 3306,
  9. 'charset' => 'utf8'
  10. ];
  11. $dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']};charset={$db['charset']}";
  12. # 连接数据库
  13. try{
  14. $pdo = new PDO($dsn, $db['username'], $db['password']);
  15. }
  16. catch(PDOException $e){
  17. die('Connection Failed: ' . $e->getMessage() );
  18. }

(2) insert

  1. # (1) 连接数据库
  2. require __DIR__ . '/mysql.php';
  3. # (2) 创建SQL语句模板,相当于占位
  4. $sql = 'INSERT INTO `zsgc` SET `user_name`=:name, `desc`=:desc, `hobby`=:hobby, `create_time`=:ct';
  5. # (3) 创建SQL语句对象
  6. $stmt = $pdo->prepare( $sql );
  7. # (4) 将变量绑定到SQL语句模板的命名占位符上
  8. $name = 'Andrew';
  9. $desc = '他很优秀';
  10. $hobby = '跳伞';
  11. $ct = time();
  12. $stmt->bindParam('name',$name,PDO::PARAM_STR);
  13. $stmt -> bindParam('desc',$desc,PDO::PARAM_STR);
  14. $stmt -> bindParam('hobby',$hobby,PDO::PARAM_STR);
  15. $stmt -> bindParam('ct',$ct,PDO::PARAM_INT);
  16. # (5) 执行SQL操作
  17. $add = $stmt->execute();
  18. if( $add ){
  19. $count = $stmt->rowCount();
  20. if( $count>0 ){
  21. echo '新增成功';
  22. }
  23. else{
  24. echo '新增失败';
  25. }
  26. }
  27. else{
  28. die( print_r( $stmt->errorInfo(),true) );
  29. }
  30. # (6) 销毁pdo, 关闭连接
  31. $pdo = null; // unset($pdo) 等价

(3) update

  1. # (1) 连接数据库
  2. require __DIR__ . '/mysql.php';
  3. # (2) 创建SQL语句模板,相当于占位
  4. $sql = 'UPDATE `zsgc` SET `email`=:email, `update_time`=:ut WHERE `id`=:id';
  5. # (3) 创建SQL语句对象
  6. $stmt = $pdo->prepare( $sql );
  7. # (4) 将变量绑定到SQL语句模板的命名占位符上
  8. $eamil = '123456@qq.com';
  9. $ut = time();
  10. $id = 3;
  11. $stmt->bindParam('email', $eamil, PDO::PARAM_STR);
  12. $stmt->bindParam('ut', $ut, PDO::PARAM_INT);
  13. $stmt->bindParam('id', $id, PDO::PARAM_INT);
  14. # (5) 执行SQL操作
  15. $update = $stmt->execute();
  16. if( $update ){
  17. $count = $stmt->rowCount();
  18. if( $count ){
  19. echo '修改成功';
  20. }
  21. else{
  22. echo '修改失败';
  23. }
  24. }
  25. else{
  26. die( print_r( $stmt->errorInfo(),true ) );
  27. }
  28. # (6) 销毁pdo, 关闭连接
  29. $pdo = null; // unset($pdo) 等价

(4) select

  1. # (1) 连接数据库
  2. require __DIR__ . '/mysql.php';
  3. # (2) 创建SQL语句模板,相当于占位
  4. $sql = 'SELECT * FROM `zsgc`';
  5. # (3) 创建SQL语句对象
  6. $stmt = $pdo->prepare( $sql );
  7. # (4) 将变量绑定到SQL语句模板的命名占位符上
  8. # (5) 执行SQL操作
  9. $select = $stmt->execute();
  10. if( $select ){
  11. #为什么多索引下标,是pdo这个类操作出来的,fetch读取一行,fetchall读取所有行
  12. #对于fetch( N )里的N,1去掉索引数组,加了一个queryString;2去掉索引数组;3只剩索引数组;4全部都有
  13. // $arr = $stmt->fetch(2);
  14. // print_r($arr);
  15. $arrs = $stmt->fetchAll();
  16. if( $arrs ){
  17. foreach( $arrs as $val ){
  18. echo '姓名:' . $val['user_name'] .'<br>';
  19. echo '性别:' ;
  20. if( !$val['sex'] ){
  21. echo '女<br>';
  22. }
  23. else{
  24. echo '男<br>';
  25. }
  26. echo '描述:' . $val['desc'] .'<br>';
  27. echo '爱好:' . $val['hobby'] .'<br>';
  28. echo '<hr>';
  29. }
  30. }
  31. else{
  32. echo '没有数据';
  33. }
  34. }
  35. else{
  36. die( print_r($stmt->errorInfo(),true) );
  37. }
  38. # (6) 销毁pdo, 关闭连接
  39. $pdo = null; //unset($pdo);

(5) delete

  1. # (1) 连接数据库
  2. require __DIR__ . '/mysql.php';
  3. # (2) 创建SQL语句模板,相当于占位
  4. $sql = 'DELETE FROM `zsgc` WHERE `id`=:id';
  5. # (3) 创建SQL语句对象
  6. $stmt = $pdo->prepare( $sql );
  7. # (4) 将变量绑定到SQL语句模板的命名占位符上
  8. $id = 8;
  9. $stmt->bindParam('id', $id, PDO::PARAM_INT);
  10. # (5) 执行SQL操作
  11. $delete = $stmt->execute();
  12. if( $delete ){
  13. if ($stmt->rowCount() > 0) {
  14. echo '删除成功';
  15. }
  16. else{
  17. echo '删除失败';
  18. }
  19. }
  20. else{
  21. die( print_r( $stmt->errorInfo(),true ) );
  22. }
  23. # (6) 销毁pdo, 关闭连接
  24. $pdo = null; // unset($pdo) 等价

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