热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2.PDO的使用

1.exec()1.1建表

这里写图片描述
这里写图片描述



1. exec()
这里写图片描述

1.1 建表
phptry {$dsn &#61; &#39;mysql:host&#61;localhost;dbname&#61;test&#39;;$username &#61; &#39;root&#39;;$password &#61; &#39;123456&#39;;$pdo &#61; new PDO($dsn,$username,$password);//exec();执行一条 sql 语句&#xff0c;并返回受影响的记录的条数,如果没有受影响返回0//exec 对 select 没有作用$sql &#61; <<<EOF
create table if not exists user(id int unsigned auto_increment key,username varchar(20) not null unique,password char(32) not null,email varchar(32) not null
)
EOF;$res &#61; $pdo->exec($sql);var_dump($res);} catch (PDOException $e) {echo $e->getMessage();
}返回 0&#xff1b;

插入记录&#xff1a;
//插入一条记录//$sql &#61; &#39;insert user(username,password,email) values("wjh",md5("wjh"),"188&#64;qq.com")&#39;;//$res &#61; $pdo->exec($sql); 返回 1//插入多条记录
$sql &#61; <<values("wjh1",md5("wjh"),"188&#64;qq.com"),("wjh2",md5("wjh"),"188&#64;qq.com"),("wjh3",md5("wjh"),"188&#64;qq.com")
EOF;$res &#61; $pdo->exec($sql); // 返回 3$pdo->lastInsertId(); //返回 最后一条插入记录的 ID

这里写图片描述

更新记录&#xff1a;$sql &#61; &#39;update user set username&#61;"immoc" where id&#61;3&#39;;$res &#61; $pdo->exec($sql);

删除记录$sql &#61; &#39;delete from user where id&#61;2&#39;;$res &#61; $pdo->exec($sql);

获取错误信息&#xff1a;//删除记录$sql &#61; &#39;delete from user12 where id&#61;2&#39;;$res &#61; $pdo->exec($sql);if ($res &#61;&#61;&#61; false) {//返回数据库句柄上一次操作相关的SQLSTATE的值echo $pdo->errorCode();echo &#39;
&#39;
;//返回数据库句柄上一次操作错误信息的数组&#xff0c;数组包括3个单元//1. 0 &#61;> SQLSTATE//2. 1 &#61;> 错误编号,CODE//3. 3 &#61;> 信息$errInfo &#61; $pdo->errorInfo();var_dump($errInfo);} else {var_dump($res);}

这里写图片描述
这里写图片描述



2. query()

try {$pdo &#61; new PDO(&#39;mysql:host&#61;localhost;dbname&#61;test&#39;,&#39;root&#39;,&#39;123456&#39;);//$sql &#61; &#39;select * from user where id&#61;2;&#39;;$sql &#61; &#39;select * from user;&#39;;//执行 sql 语句&#xff0c;返回PDOStatement对象$stmt &#61; $pdo->query($sql);foreach ($stmt as $row) {echo $row[&#39;id&#39;];echo &#39;
&#39;
;echo $row[&#39;username&#39;];echo &#39;
&#39;
;echo $row[&#39;password&#39;];echo &#39;
&#39;
;echo $row[&#39;email&#39;];echo &#39;
&#39;
;}} catch (PDOException $e) {echo $e->getMessage();
}


3.prepare() and execute()

try {$pdo &#61; new PDO(&#39;mysql:host&#61;localhost;dbname&#61;test&#39;,&#39;root&#39;,&#39;123456&#39;);$sql &#61; "select * from user";//返回一个 PDOStatement 对象//prepare($sql);准备 sql 语句$stmt &#61; $pdo->prepare($sql);//设置默认的返回模式$stmt->setFetchMode(PDO::FETCH_OBJ);// execute(); 执行预处理语句,返回布尔值$res &#61; $stmt->execute();//取出结果集取出一条记录
// $row &#61; $stmt->fetch();if ($res) {while($row &#61; $stmt->fetch(PDO::FETCH_ASSOC)) {var_dump($row );}}//用 fetchAll()/*$rows &#61; $stmt->fetchAll();var_dump($rows);*/} catch (PDOException $e) {echo $e->getMessage();
}

这里写图片描述
这里写图片描述
这里写图片描述



4.getAttribute() and setAttribute()

try {$dsn &#61; &#39;mysql:host&#61;localhost;dbname&#61;test&#39;;$username &#61; &#39;root&#39;;$password &#61; &#39;123456&#39;;$pdo &#61; new PDO($dsn,$username,$password);// 默认为 1 &#xff0c;自动提交echo &#39;自动提交 : &#39; . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);echo &#39;
&#39;
;echo &#39;默认错误处理模式 &#xff1a;&#39; . $pdo->getAttribute(PDO::ATTR_ERRMODE);echo &#39;
&#39;
;$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,0);echo &#39;自动提交 : &#39; . $pdo->getAttribute(PDO::ATTR_AUTOCOMMIT);
} catch (PDOException $e) {echo $e->getMessage();
}

这里写图片描述
这里写图片描述
这里写图片描述



try {$dsn &#61; &#39;mysql:host&#61;localhost;dbname&#61;test&#39;;$username &#61; &#39;root&#39;;$password &#61; &#39;123456&#39;;$pdo &#61; new PDO($dsn,$username,$password);$attArr &#61; array(&#39;AUTOCOMMIT&#39;,&#39;CASE&#39;,&#39;CLIENT_VERSION&#39;,&#39;CONNECTION_STATUS&#39;,&#39;DRIVER_NAME&#39;,&#39;ERRMODE&#39;,&#39;ORACLE_NULLS&#39;,&#39;PERSISTENT&#39;,&#39;PREFETCH&#39;,&#39;SERVER_INFO&#39;,&#39;SERVER_VERSION&#39;,&#39;TIMEOUT&#39;);foreach ($attArr as $attr) {echo "PDO_ATTR_$attr : ";echo $pdo->getAttribute(constant("PDO::ATTR_$attr"));echo &#39;
&#39;
;}} catch (PDOException $e) {echo $e->getMessage();
}

这里写图片描述


推荐阅读
  • 驱动程序的基本结构1、Windows驱动程序中重要的数据结构1.1、驱动对象(DRIVER_OBJECT)每个驱动程序会有唯一的驱动对象与之对应,并且这个驱动对象是在驱 ... [详细]
  • 本文探讨了如何从文本文件中正确读取一行数据,并将其赋值给C语言中的变量,同时解决了常见的错误和注意事项。 ... [详细]
  • 【Java数据结构和算法】008栈
    目录0、警醒自己一、栈的应用场景和介绍1、栈的应用场景一个实际的场景:我的思考:2、栈的介绍入栈演示图:出栈演示图 ... [详细]
  • mysql数据库json类型数据,sql server json数据类型
    mysql数据库json类型数据,sql server json数据类型 ... [详细]
  • Linux环境下的PHP7安装与配置指南
    本文详细介绍了如何在Linux操作系统中安装和配置PHP7,包括检查当前PHP版本、升级PHP以及配置MySQL支持等步骤,适合后端开发者参考。 ... [详细]
  • 本文详细介绍了MySQL表分区的概念、类型及其在实际应用中的实施方法,特别是针对Zabbix数据库的优化策略。 ... [详细]
  • 本文介绍了DOM中用于获取节点信息的关键属性,包括父节点、子节点列表、首个及末个子节点、相邻兄弟节点以及节点类型等,同时提供了每个属性的具体使用说明。 ... [详细]
  • C#爬虫Fiddler插件开发自动生成代码
    哈喽^_^一般我们在编写网页爬虫的时候经常会使用到Fiddler这个工具来分析http包,而且通常并不是分析一个包就够了的,所以为了把更多的时间放在分析http包上,自动化生成 ... [详细]
  • 本文详细介绍了Keycloak框架中UserRepresentation类下的isEnabled()方法的功能与应用,并通过多个实际代码示例说明其在用户管理中的具体实现。 ... [详细]
  • 本文提供了解决在尝试重置MySQL root用户密码时遇到连接失败问题的方法,包括停止MySQL服务、以安全模式启动MySQL、手动更新用户表中的密码等步骤。 ... [详细]
  • 本文深入探讨了JLine库中的ConsoleReader.drawBuffer()方法的使用场景和具体实现,通过多个实际代码示例,帮助开发者更好地理解和应用此方法。 ... [详细]
  • 本文深入探讨了领域驱动设计(DDD)中的聚合概念及其在事件溯源架构中的应用。聚合是一组紧密相关的类,这些类作为一个整体运作,形成一个有明确边界的组织。只有通过聚合根才能与聚合内的对象进行交互。 ... [详细]
  • 尽管在WPF中工作了一段时间,但在菜单控件的样式设置上遇到了一些基础问题,特别是关于如何正确配置前景色和背景色。 ... [详细]
  • 本文探讨了在使用JavaMail发送电子邮件时,抄送功能未能正常工作的问题,并提供了详细的代码示例和解决方法。 ... [详细]
  • 如何处理PHP缺少扩展的问题
    本文将详细介绍如何解决PHP环境中缺少扩展的问题,包括检查当前环境、修改配置文件以及验证修改是否生效的具体步骤,帮助开发者更好地管理和使用PHP扩展。 ... [详细]
author-avatar
星宇ooo
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有