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

pdo事务功能和防止sql注入功能

PDO1.访问不同的数据库2.自带事务功能3.防止SQL注入这下面是访问和自带的事务功能展示,

PDO
1.访问不同的数据库
2.自带事务功能
3.防止SQL注入

 

 

这下面是访问和自带的事务功能展示,

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns&#61;"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;utf-8" />
<title>无标题文档title>
head><body>php/*//1.造对象
$dsn &#61; "mysql:dbname&#61;mydb;host&#61;localhost";
$pdo &#61; new PDO($dsn,"root","123");//2.写SQL语句
$sql &#61; "update nation set name&#61;&#39;兽族&#39; where code&#61;&#39;n013&#39;";//3.执行SQL语句
//$r &#61; $pdo->query($sql);
$r &#61; $pdo->exec($sql);*///事务功能
//造对象
$dsn &#61; "mysql:dbname&#61;mydb;host&#61;localhost";
$pdo &#61; new PDO($dsn,"root","123");//设置异常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);//写SQL语句
$sql1 &#61; "insert into nation values(&#39;n016&#39;,&#39;人族&#39;)";
$sql2 &#61; "insert into nation values(&#39;n017&#39;,&#39;不死族&#39;)";//执行两条SQL语句
try
{//启动事务$pdo->beginTransaction();$pdo->exec($sql1);$pdo->exec($sql2);//提交事务$pdo->commit();
}
catch(PDOException $e)
{//$e->getMessage();//回滚$pdo->rollBack();
}
?>body>
html>

这下面是防止sql注入展示第一种方法 问号占位

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns&#61;"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;utf-8" />
<title>无标题文档title>
head><body>
php//造对象
$dsn &#61; "mysql:dbname&#61;mydb;host&#61;localhost";
$pdo &#61; new PDO($dsn,"root","123");//写SQL语句,预处理语句
$sql &#61; "insert into nation values(?,?)";//准备SQL语句,返回statement对象
$st &#61; $pdo->prepare($sql);//绑定参数
/*$st->bindParam(1,$code);
$st->bindParam(2,$name);$code&#61;"n022";
$name&#61;"矮人族";*/$attr &#61; array("n023","魔族"); //直接扔就可以了&#xff01;//提交执行,不用给SQL语句了&#xff0c;已经传过去了
var_dump($st->execute($attr));//预处理语句里面用?占位的&#xff0c;给数组的时候要给索引数组
?>
body>
html>

另一种方法名称占位

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns&#61;"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;utf-8" />
<title>无标题文档title>
head><body>php//造对象
$dsn &#61; "mysql:dbname&#61;mydb;host&#61;localhost";
$pdo &#61; new PDO($dsn,"root","123");//写SQL语句,预处理语句&#xff0c;使用name占位
$sql &#61; "insert into nation values(:code,:name)"; //注意用前面加冒号&#xff01;&#xff01;//准备执行
$st &#61; $pdo->prepare($sql);//绑定参数
/*$st->bindParam(":code",$code,PDO::PARAM_STR);
$st->bindParam(":name",$name,PDO::PARAM_STR);$code&#61;"n024";
$name&#61;"狼族";*/$attr &#61; array("code"&#61;>"n025","name"&#61;>"虫族");//执行
$st->execute($attr);
?>
body>
html>

最后是名称占位的好处

php
//造对象
$dsn &#61; "mysql:dbname&#61;mydb;host&#61;localhost";
$pdo &#61; new PDO($dsn,"root","123");//写SQL语句,预处理语句&#xff0c;使用name占位
$sql &#61; "insert into nation values(:code,:name)";//准备执行
$st &#61; $pdo->prepare($sql);//执行
$st->execute($_POST); 这个post 和提交的一样直接就赋值了&#xff01;

最后是查询&#xff01;&#xff01;

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns&#61;"http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;utf-8" />
<title>无标题文档title>
head><body>
php//造对象
$dsn &#61; "mysql:dbname&#61;mydb;host&#61;localhost";
$pdo &#61; new PDO($dsn,"root","123");//写SQL语句,预处理语句
$sql &#61; "select * from nation";//准备执行
$st &#61; $pdo->prepare($sql);//执行
$st->execute();//读数据
var_dump($st->fetchAll(PDO::FETCH_ASSOC));
?>
body>
html>

 

转:https://www.cnblogs.com/sq45711478/p/6040639.html



推荐阅读
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了SQL日志收缩的方法,包括截断日志和删除不需要的旧日志记录。通过备份日志和使用DBCC SHRINKFILE命令可以实现日志的收缩。同时,还介绍了截断日志的原理和注意事项,包括不能截断事务日志的活动部分和MinLSN的确定方法。通过本文的方法,可以有效减小逻辑日志的大小,提高数据库的性能。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
author-avatar
禾漾啊
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有