PHP简单实现防止SQL注入的方法,结合实例形式分析了PHP防止SQL注入的常用操作技巧与注意事项,PHP源码备有详尽注释便于理解,需要的朋友可以参考下!

方法一:execute代入参数

 $var_Value) {
//获取POST数组最大值
$num = $num + 1;
}
//下标为i的数组存储的是商品id, 下标为j数组的存储的是此商品的库存
for($i=0;$isetAttribute(PDO::ATTR_EMULATE_PREPARES, false);
//查询数据库中是否存在该ID的商品
//当调用 prepare() 时,查询语句已经发送给了数据库服务器,此时只有占位符 ? 发送过去,没有用户提交的数据
$stmt = $pdo->prepare("select good_id from delphi_test_content WHERE good_id = ?");
//当调用到 execute()时,用户提交过来的值才会传送给数据库,他们是分开传送的,两者独立的,SQL攻击者没有一点机会。
$stmt->execute(array($_POST[$i]));
//返回查询结果
$count = $stmt->rowCount();
//如果本地数据库存在该商品ID和库存记录,就更新该商品的库存
if($count != 0)
{
$stmt = $pdo->prepare("update delphi_test_content set content = ? WHERE good_id = ?");
$stmt->execute(array($_POST[$j], $_POST[$i]));
}
//如果本地数据库没有该商品ID和库存记录,就新增该条记录
if($count == 0)
{
$stmt = $pdo->prepare("insert into delphi_test_content (good_id,content) values (?,?)");
$stmt->execute(array($_POST[$i], $_POST[$j]));
}
}
}
$pdo = null;
//关闭连接
}
?>

方法二:bindParam绑定参数

 $var_Value) {
//获取POST数组最大值
$num = $num + 1;
}
//下标为i的数组存储的是商品id, 下标为j数组的存储的是此商品的库存
for($i=0;$iprepare("select good_id from delphi_test_content WHERE good_id = ?");
$stmt->execute(array($_POST[$i]));
$stmt->bindParam(1,$_POST[$i]);
$stmt->execute();
//返回查询结果
$count = $stmt->rowCount();
//如果本地数据库存在该商品ID和库存记录,就更新该商品的库存
if($count != 0)
{
$stmt = $pdo->prepare("update delphi_test_content set content = ? WHERE good_id = ?");
$stmt->execute(array($_POST[$j], $_POST[$i]));
$stmt->bindParam(1,$_POST[$j]);
$stmt->bindParam(2,$_POST[$i]);
$stmt->execute();
}
//如果本地数据库没有该商品ID和库存记录,就新增该条记录
if($count == 0)
{
$stmt = $pdo->prepare("insert into delphi_test_content (good_id,content) values (?,?)");
$stmt->bindParam(1,$_POST[$i]);
$stmt->bindParam(2,$_POST[$j]);
$stmt->execute();
}
}
}
$pdo = null;
//关闭连接
}
?>

PHP实现防止SQL注入的2种方法的更多相关文章

  1. 网站mysql防止sql注入攻击 3种方法总结

    mysql数据库一直以来都遭受到sql注入攻击的影响,很多网站,包括目前的PC端以及手机端都在使用php+mysql数据库这种架构,大多数网站受到的攻击都是与sql注入攻击有关,那么mysql数据库如 ...

  2. 防止 jsp被sql注入的五种方法

    一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...

  3. 防止sql注入的几种方法

    一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...

  4. 预处理(防止sql注入的一种方式)

    <!--- 预处理(预编译) ---><?php/* 防止 sql 注入的两种方式: 1. 人为提高代码的逻辑性,使其变得更严谨,滴水不漏. 比如说 增加判断条件,增加输入过滤等,但 ...

  5. Hibernate使用中防止SQL注入的几种方案

    Hibernate使用中防止SQL注入的几种方案 Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数 ...

  6. 【原创】内核ShellCode注入的一种方法

    标 题: [原创]内核ShellCode注入的一种方法 作 者: organic 时 间: 2013-05-04,04:34:08 链 接: http://bbs.pediy.com/showthre ...

  7. MySQL命令执行sql文件的两种方法

    MySQL命令执行sql文件的两种方法 摘要:和其他数据库一样,MySQL也提供了命令执行sql脚本文件,方便地进行数据库.表以及数据等各种操作.下面笔者讲解MySQL执行sql文件命令的两种方法,希 ...

  8. PL/SQL Developer执行.sql文件的几种方法

    1.复制SQL 第一种方法非常常见,也非常简单,先用文本编辑器打开.sql文件,然后把sql复制到PL/SQL Developer的SQL窗口或者命令窗口中运行就行了,本来我也是这么做的,但是我将SQ ...

  9. SQL注入的几种类型

    SQL注入就是: 将构造SQL语句来插入到web提交的数据之中,让其返回数据时运行自己构造的恶意SQL语句. SQL注入构造恶意SQL语句的方法有: 构造堆叠,构造闭合,构造报错,构造时间差,等等 S ...

随机推荐

  1. DEV gridview根据单元格值改变其他单元格格式

    string style = ""; private void gridView1_RowCellStyle(object sender, DevExpress.XtraGrid. ...

  2. adv生成控制器手腕位置倾斜原因以及解决方案

    系统默认问题导致手腕倾斜详情描述: 手腕部分默认生成轴向是冲向模板下一层级第一个物体  简单说就是 FK轴向冲向模板中指方向 如图 默认模板没问题是因为  默认模板没有改动情况下系统中指与手腕在一条直 ...

  3. 2050 Programming Competition

    http://2050.acmclub.cn/contests/contest_show.php?cid=3 开场白 Time Limit: 2000/1000 MS (Java/Others)    ...

  4. 顺序栈代码实现&&stack库

    #include<iostream> using namespace std; ; typedef int Elemtype; struct SqStack { Elemtype *bas ...

  5. TensorFlow:检查显卡支持哪个版本的CUDA

    最近想学习TensorFlow深度学习编程,然后就开始查这方面的信息. 第0步是安装环境,配置环境. 首先到TensorFlow的官网查看在Windows上安装的条件和步骤. 可以仅仅安装CPU版本的 ...

  6. 面向对象编程导论 An Introduction to Object-Oriented Programming (Timothy 著)

    第1章 面向对象思想 第2章 抽象 第3章 面向对象设计 第4章 类和方法 第5章 消息,实例和初始化 第6章 案例研究: 八皇后问题 第7章 研究研究: 台球游戏 第8章 继承与替换 第9章 案例研 ...

  7. Yii2 设计模式——Yii2 中用到哪些设计模式?

    Yii 2 设计模式“包含了两个方面的内容:1. 设计模式,2. Yii 2 框架. <设计模式>一书虽然以JAVA语言来表达设计模式的思想,但是设计模式远不限制于某一种特定的语言,而是在 ...

  8. HttpClient 上传图片

    Image image = Image.FromFile(@"F:\image2\DSC02028.JPG"); var data = ImageToByteArray(image ...

  9. 360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法

    360或者金山毒霸可能会导致HP网络打印机驱动安装失败“数据无效”的解决办法     同事办公室的打印机是网线接口的那种网络打印机,不是直接连到电脑的那种,他电脑安装了360和金山毒霸,WIN10下安 ...

  10. windows下的拷贝利器robocopy

    robocopy xxcopy http://www.cnblogs.com/zhanglei1371/p/6724167.html [转载]robocopy的用法 经常进行文件管理操作的朋友们,不满 ...