php pdo 关闭,php pdo预处理

什么是预处理语句?

可以把它看作是想要运行的 SQL 的一种编译过的模板,它可以使用变量参数进行定制。

预处理语句可以带来两大好处:

查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次。当查询准备好后,数据库将分析、编译和优化执行该查询的计划。对于复杂的查询,此过程要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大大降低应用程序的速度。通过使用预处理语句,可以避免重复分析/编译/优化周期。简言之,预处理语句占用更少的资源,因而运行得更快。

提供给预处理语句的参数不需要用引号括起来,驱动程序会自动处理。如果应用程序只使用预处理语句,可以确保不会发生SQL 注入。(然而,如果查询的其他部分是由未转义的输入来构建的,则仍存在 SQL 注入的风险)。

预处理语句如此有用,以至于它们唯一的特性是在驱动程序不支持的时PDO 将模拟处理。这样可以确保不管数据库是否具有这样的功能,都可以确保应用程序可以用相同的数据访问模式。

php pdo预处理语句之查询

$dns = 'mysql:host=数据库地址;dbname=数据库名称';

$username = '数据库帐号';

$password = '数据库密码';

// 1.连接数据库,创建PDO对象

$pdo = new PDO($dns,$username,$password);

// 2.准备SQL语句,创建预处理对象

$sql = "SQL语句";

$stmt = $pdo->prepare($sql);

// 3. 执行SQL语句

$stmt->execute();

// 4. bindColumn()将结果集中的列绑定到指定变量上

// 注意与bindParam()的区别

$stmt->bindColumn('id', $id, PDO::PARAM_INT);

$stmt->bindColumn('name', $name, PDO::PARAM_STR, 15);

$stmt->bindColumn('position', $position, PDO::PARAM_STR, 20);

// PDO::FETCH_BOUND: 指定获取方式,将结果集的列绑定到指定变量(可选)

while ($stmt->fetch(PDO::FETCH_BOUND)) {

echo 'id=' . $id . ', name=' . $name . ', position='. $position ; }

// 5. 关闭连接,如果不断开,系统也会自动切断

$pdo = null;

php pdo预处理语句之插入数据

$dns = 'mysql:host=数据库地址;dbname=数据库名称';

$username = '数据库帐号';

$password = '数据库密码';

// 1.连接数据库,创建PDO对象

$pdo = new PDO($dns,$username,$password);

// 2.准备SQL语句,创建预处理对象

$sql = "INSERT INTO `staff` (name,age,sex,position,mobile,hiredate) VALUES (:name,:age,:sex,:position,:mobile,:hiredate)";

$stmt = $pdo->prepare($sql);

// 3.绑定参数到指定的变量名

$stmt->bindParam(':name', $name);

$stmt->bindParam(':age', $age);

$stmt->bindParam(':sex', $sex);

$stmt->bindParam(':position', $position);

$stmt->bindParam(':mobile', $mobile);

$stmt->bindParam(':hiredate', $hiredate);

// 4.插入一行数据

$name ='天勤猿';

$age ='22';

$sex ='1';

$position ='程序猿';

$mobile ='188888888';

$hiredate ='1548999267';

// 5. 执行SQL语句

$stmt->execute();

// 6. 关闭连接,如果不断开,系统也会自动切断

$pdo = null;

天勤 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权

转载请注明原文链接:php pdo预处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566446.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 下载后删除,在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路...

当前位置:我的异常网 Java Web开发 在服务器端生成文件后,下载后并删除,改了后发现文件在服务器端生成文件后,下载后并删除,改了后发现文件变成空白解决思路www.myexceptions.net 网友分享于:2015-08-26 浏览:99次在服务器端生成文件后,下载后并删除,…

matlab出现红色括号,想让大家看下标红地方为什么说有括号问题

MATLAB特征提取代码for i1:26fstrcat(D:\bishe\,num2str(i)); imagestrcat(f,.jpg); PSimread(image);PSimresize(PS,[300,300],bilinear);%归一化大小 PSrgb2gray(PS);[m,n]size(PS); %测量图像尺寸参数GPzeros(1,256); %预创建存放灰度出现概率的向量for k0:255GP(k1)length…

mysql 数据类型怎么用,myMySQL数据库怎么更改表中某字段的数据类型? MySQL数据库使用教程...

在mysql中,可以使用“ALTER TABLE”语句配合“MODIFY”关键字来更改表中某字段的数据类型;语法格式“ALTER TABLE MODIFY ”。(推荐教程:mysql视频教程)在 MySQL 中,ALTER TABLE 语句可以改变原有表的结构,例如增加或删…

matlab multithreading spyder,spyder和python的关系是什么

版权所有:http://wWw.pxcodeS.comspyder和python的关系:1、Spyder是Python的一个简单的集成开发环境;2、它和其他的Python开发环境相比**大的优点就是模仿MATLAB的“工作空间”的功能,可以很方便地观察和修改数组的值。LHF少儿编程…

python私有成员和保护成员,喜大普奔!Maya 2022来了?!

距离Maya 2020第一个版本发布已经过去将近1年半。各位用户苦等Maya 2021的发布,不料2021没等到,而Maya 2022要来了?!这两天小编刷Maya官网,在帮助页面竟然看到官方放出了“Maya 2022 新特性”的页面!吓得小…

php web教程视频教程下载,Web全栈 PHP+React系列视频教程下载

Web全栈 PHPReact系列视频教程下载课程介绍:此套Web全栈 PHPReact系列视频教程覆盖PHP、前端和区块链应用开发三大热门职位,教程对网络基础、前端基础(HTML CSSJavaScriptjQuery)、网站基础、PHP、React、区块链等均做了详细的讲解,无源码。Web全栈 PHPR…

mac怎么配置php开发环境变量,Mac M1安装mnmp(Mac+Nginx+MySQL+PHP)开发环境

之前刚装好了 HomeBrew ,接下来就要安装 环境了。注意:如果 brew install 出以下错误, 则安装时使用arch -arm64 brew install软件包名 进行安装安装 Nginxbrew install nginx安装成功后,通过 brew info nginx ,查看 nginx 信息,最主要是看 网…

php5 dm.dll,win10模块dll加载失败二进制怎么解决?

首先使用【WinR】,打开运行窗口,输入“Powershell”,并回车;然后在打开的Powershell管理器中,输入“Get-AppXPackage -AllUsers | Foreach {....}”命令;最后等待系统自行处理即可解决方法:1、我…

oracle查询cpu占用率高,解决oracle进程CPU占用过高问题

解决问题的过程:1)查看服务器CPU使用情况输入top会发现排在前面的都是oracle的进程,而且CPU占用率都是50以上。$toptop - 16:28:41 up 4 days, 22:35, 1 user, load average: 21.49, 22.14, 22.05Tasks: 299 total, 31 running, 268 sleeping, 0 st…

有oracle操作系统,Oracle操作系统认证方式

oracle操作系统认证方式linux下只需要在sqlnet.ora文件中添加:SQLNET.AUTHENTICATION_SERVICES (NTS)就禁止了操作系统认证的登陆方式。如果使用操作系统认证的话,要把nts去掉。如下:SQLNET.AUTHENTICATION_SERVICES (TNSNAME,HOSTNAME)windows下需要添…

matlab旋转机械转子故障信号仿真,旋转机械转子不对中故障诊断技术研究解说.docx...

石家庄铁道大学毕业论文旋转机械转子不对中故障诊断技术研究Study on Fault Diagnosis for Rotor Misalignmentof Rotating Machinery2015 届 机械工程 学院专 业 机械设计制造及其自动化 学 号 学生姓名 邵阳鑫 指导教师 申永军完成日期 2015年 5 月 29 日摘要不对中故障是旋转…

oracle10g配置失败6,Oracle10g DataGuard中ORA-16026错误解决-入门基础-Oracle频道-中国IT实验室...

今天配置一个 10g DataGuard的环境,遇到一个如下错误:Tue Sep 2 08:21:26 2008Errors in file /home/oracle/admin/ora10g/udump/ora10g_ora_32028.trc:ORA-16026: parameter LOG_ARCHIVE_DEST_1 contains an invalid attribute valueORA-16026是因为主库…

oracle ndv,CBO_ORACLE

ORACLE_CBOOracle的聚簇因子对于查询IO的影响Oracle中,对于同一个查询语句,有时候会很快的完成,有时候却很慢,但是表结构什么的完全一致,表中的数据也完全一致,这个具体是什么原因呢,就要从Inde…

oracle将千万行查询优化到一秒内,oracle下一条SQL语句的优化过程(比较详细)

oracle下一条SQL语句的优化过程(比较详细)更新时间:2010年04月14日 23:56:49 作者:很简单的一次调整,语句加了适当的索引后性能就有大幅的提升。当时看到这条语句的时候,第一感觉就是执行效率肯定低下。语句的功能是求某一客户当…

商城是用jsp还是php,建设网上购物网站使用JSP系统还是ASP系统

网上购物系统是用来建设网上商城网站的体系架构,也成为电商购物系统和商城系统。网上商城系统的种类有不少,如jsp网上购物系统、asp购物系统和php网购系统等。今天小编来和大家探讨一下建设网上商城网站是使用jsp系统好呢还是使用asp系统好呢&#xff1f…

oracle tb级别数据量,备份TB级别Oracle数据库的一些技巧

备份TB级别数据的一些技巧1、 考虑使用增量备份, 不要老是想着用全量备份2、 对于增量备份而言 开启block change tracking 能极大地减少物理读,提升速度3、 11g以后对于bigfile tablespace可以启用section size 来提升速度4、 考虑到负载更低的 Data Gu…

oracle dg snapshot,Oracle Broker Snapshot Standby测试

Oracle 11g Dataguard Snapshot Standby数据库功能,可将备库置于打开读写状态,进行模拟生产环境主库中测试。当备库Snapshot standby任务完成后,可以切换回物理备库角色。在Snapshot Standby数据库状态下,备库是可以接受主库传过来…

oracle ora 47306,Oracle SQL提示含义与示例 --- 分布式查询和并行提示

《Oracle 高性能SQL引擎剖析:Oracle SQL 优化与调优技术详解》一书的附录部分。作为对该书的补充,帮助读者理解和掌握“提示”这一项在SQL优化中使用的这一重要辅助手段。语法:DRIVING_SITE([])描述:指示优化器选择那个数据库作为…

oracle 拉文件进ubuntu,ubuntu 18-20 安装oracle java 打开jnlp文件

时间太久,转载的链接找不到了。一、安装orale java上java官网,下载jre文件包。解压缩到 /usr/lib/jvm/目录下,或者其他目录也行。我的是在/usr/lib/jvm/jre1.8.0_261/bin/etc/alternatives 目录 javaws,controlpanel连接到 jre目录。/usr/bin…

linux用vfork创建进程,[Linux进程]使用vfork创建子进程并且执行命令

/*这是一个其分别利用子进程和父进程对一个count进行计数并且输出,用于展示父进程和子进程是共享一个数据段*/#include #include #include #include int main (int argc,char *argv[]){int count 1;int child;printf("此时执行的是父进程,当前coun…