Blogger Information
Blog 42
fans 5
comment 0
visits 38541
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
pdo连接方法,及其增删查改
张浩刚
Original
848 people have browsed it

PDO接入数据库

$pdo = new PDO(‘数据源’,’数据库账户’,’数据库密码’);

$pdo = new PDO(‘myslq:host=127.0.0.1;dbname=root’,’rootzh’,’root123’);

数据源:myslq:host=127.0.0.1;dbname=root ;mysql就是数据库类型,host=数据库地址,dbname=数据库名称

以上是以本地数据库为例,本地数据库地址127.0.0.1,数据库名root ,数据库账户rootzh,数据库密码root123
  1. // 在php中配置数据库,一般用一维关联数组
  2. // 1、配置数据库
  3. $db = [
  4. 'type'=>'mysql',
  5. 'host'=>'localhost',
  6. 'dbname'=>'root',
  7. 'username'=>'rootzh',
  8. 'password'=>'root123',
  9. ]
  10. // 2、配置数据源 (mysql:host=...;dbname=...)
  11. $shujuyuan = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}"; //双引号配置法
  12. $shujuyuan = $db['type'] . ':host=' . $db['host'] . ';dbname=' . $db['dbname']; //单引号配置法
  13. // 3、连接数据库 (这里$pdo就是上图显示的,数据源,数据账户,数据库密码)
  14. try{
  15. $pdo = new PDO($shujuyuan,$db['username'],$db['password']);
  16. }catch(PDOException $e){ //PDOException 付给变量 $e
  17. die('错误提示:' . $e -> getMessage() ); //die终止程序 ,$e的错误内容,通过getMessage展示出来
  18. }
  19. // 小提示 数据库配置也可以使用 索引数组,但一般推荐使用关联数组
  20. $db = ['mysql','localhost','root','rootzh','root123'];
  21. $shujuyuan = $db[0] . ':host=' . $db[1] . ';dbname=' . $db[2];
  22. try{
  23. $pdo = new PDO($shujuyuan,$db[3],$db[4]);
  24. }catch(PDOExecption $e){
  25. die('错误提示:' . $e -> $getMessage());
  26. }

以上php假定保存在 content.php 中,方便调用

PDO预处理

  1. // 1、接入数据库
  2. require __DIR__ . '/content.php';
  3. // 2、创建SQL语句模板
  4. // 增
  5. $sql = 'INSERT INTO `数据表名` SET `字段1`=:值1, `字段2`=:值2, `字段3`=:值3';
  6. $sql = 'INSERT INTO `list` SET `title`=:t, `name`=:n';
  7. // 改
  8. $sql = 'UPDATE `数据表名` SET `字段1`=:值1, `字段2`=:值2, `字段3`=:值3' WHERE `字段`=值;
  9. $sql = 'UPDATE `list` SET `title`=:t, `name`=:n' WHERE `id`=7;
  10. // 删
  11. $sql = 'DELETE FROM `数据表名` WHERE `字段`=值;
  12. $sql = 'DELETE FROM `list` WHERE `id`=7;
  13. // 查
  14. $sql = 'SELECT * FROM `数据表名` WHERE `字段`=值;
  15. $sql = 'SELECT * FROM `list` WHERE `id`=7;
  16. // 3. 创建SQL语句对象
  17. $ssq = $pdo -> prepare($slq);
  18. **PDOStatement 类常用方法**
  19. execute(): 执行SQL语句(读/写)
  20. rowCount(): 返回受影响的记录数量(不适合SELECT)
  21. errorInfo(): 返回错误信息数组
  22. fetch(): 获取结果集中的下一行
  23. fetchAll(): 返回结果集中的所有行
  24. fetchColumn(): 返回结果集下一行的单独的一列
  25. bindColumn(): 将结果集某字段绑定到指定变量上

示例1,增

  1. require __DIR__ . '/content.php';
  2. // 增加,sql语句模板
  3. $sql = 'INSERT INTO `list` SET `title`=:title, `name`=:name `id`=:id';
  4. // 创建SQL语句对象
  5. $ssq = $pdo -> prepare($sql);
  6. // 1、新增的内容
  7. $id = 1;
  8. $title = '国产电影';
  9. $name = 'gc';
  10. // 2、将变量绑定到SQL语句模板的命名占位符上
  11. $ssq -> bindParam('id',$id,PDO::PARAM_INT);
  12. $ssq -> bindParam('title',$title,PDO::PARAM_SRR);
  13. $ssq -> bindParam('name',$name,PDO::PARAM_STR);
  14. // 3、执行SQL操作
  15. if($ssq -> execute()){
  16. if($ssq -> rowCount() > 0){
  17. echo '成功输入' . $ssq -> rowCount() . '条信息, 该记录的主键id是: ' . $pdo->lastInsertId();
  18. }
  19. }else{
  20. die(print_r($ssq -> errorInfo(),true));
  21. }
  22. // 4. 销毁pdo, 关闭连接
  23. $pdo = null; // unset($pdo) 等价

示例2,改

  1. require __DIR__ . '/content.php';
  2. // 1、要更改的SQL模板
  3. $sql = 'UPDATE `list` SET `title`=:t, `name`=:n WHERE `id`=:id';
  4. // 2、SQL语句对象
  5. $ssq = $pdo -> prepare($slq);
  6. // 要更改的内容
  7. $t = '日韩电影';
  8. $n = 'rh';
  9. $id = '2';
  10. // 将变量绑定到SQL语句模板的命名占位符上
  11. $ssq -> bindParam('t',$t,PDO::PARAM_STR);
  12. $ssq -> bindParam('n',$n,PDO::PARAM_STR);
  13. $ssq -> bindParam('$id',$id,PDO::PARAM_INT);
  14. // 执行SQL操作
  15. if($ssq -> execute()){
  16. if($ssq -> rowCount()){
  17. echo '成功更改' . $ssq -> rowCount() . '条信息';
  18. }
  19. }else{
  20. die(print_r($ssq -> errorInfo(), true));
  21. }
  22. // 销毁pdo
  23. unset($pdo); //从内存中删除,等价于 $pdo = Null;

示例3,删

  1. require __DIR__ . '/content.php';
  2. // 设置删除模板
  3. $sql = 'DELECT FROM `list` WHERE `id`=:id';
  4. $ssq = $pdo -> prepare($sql);
  5. // 设置删除那一条
  6. $id = 10;
  7. // 将变量绑定到SQL语句模板的命名占位符上
  8. $ssq->bindParam('id',$id,PDO::PARAM_INT);
  9. // 执行SQL操作 execute()执行sql语句
  10. if($ssq -> execute()){
  11. if($ssq -> rowCount()){
  12. echo '成功删除'.$ssq -> rowCount().'条信息';
  13. }
  14. }else{
  15. die(print_r($ssq->errorInfo(),true));
  16. }
  17. //最后销毁pdo,释放内存
  18. $pdo = Null; //或 unset($pdo);

示例4,查 fetch() + while()

  1. require __DIR__ . '/content.php';
  2. // 设置查询的sql模板
  3. $sql = 'SELECT * FROM `list` WHERE `id`=:id';
  4. // 设置查询的sql对象
  5. $ssq = $pdo -> prepare($sql);
  6. // 设置查询那一条id
  7. $id = 10;
  8. // 将变量绑定到SQL语句模板的命名占位符上
  9. $ssq->bindParam('id',$id,PDO::PARAM_INT);
  10. // 执行SQL操作 execute()执行sql语句
  11. $ssq -> execute();
  12. // 遍历
  13. while ($movie = $stmt->fetch(PDO::FETCH_ASSOC)) {
  14. echo '<pre>' . print_r($movie, true);
  15. }
  16. //最后销毁pdo,释放内存
  17. $pdo = Null; //或 unset($pdo);


Correcting teacher:查无此人查无此人

Correction status:qualified

Teacher's comments:完成的不错,继续努力。数据库很重要,要好好学习数据库。
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post