PDO讲解
PDO的知识点标注在代码里
<?php
//造DSN:驱动名:dbname=数据库名;host=服务器地址
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root",""); //写sql语句
$sql="select * from info"; //1.execu()执行增删改语句 //2.query()执行查询语句
//例子
/*//执行sql语句
$v=$pdo->query($sql); foreach($v as $a)
{ //返回的对象比较特殊,可以直接用循环遍历,尽量不要用
echo $a[0];
}*/ //3.预处理语句——prepare()和execute语句
//预处理,先把sql语句放到服务器上等待我们给他指令去执行
$stm=$pdo->prepare($sql); //execute()执行准备好的sql语句,成功返回true,失败返回false
if($stm->execute())
{
//获取结果的方法
//注意:各个获取结果的方法括号内可以写参数
//1.取一条数据
//var_dump($stm->fetch()); //fetch()和fetchALL()的参数相同 //2.取所有
//var_dump($stm->fetchAll(PDO::FETCH_ASSOC));//返回关联数组
//var_dump($stm->fetchAll(PDO::FETCH_NOM));//返回索引数组
//var_dump($stm->fetchAll(PDO::FETCH_OBJ));//返回对象数组 //3.取某一列
//var_dump($stm->fetchColumn(1)); //以0开始索引 //4.返回一条对象
//var_dump($stm->fetchObject());
}
else
{
echo "连接失败";
}
以下代码为PDO参数绑定
<?php
//造对象
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root",""); //写sql语句 //$sql="insert into nation values (?,?)"; //语句1 $sql="insert into nation values (:aa,:bb)"; //语句2 //预处理
$stm=$pdo->prepare($sql); //给参数绑定值 //1.1:$sql语句里用?时,使用bindParam()添加
$stm->bindParam(1,$code); //数字1代表占位符,$code代表添加的列名
$stm->bindParam(2,$name);
$code="n009"; //修改此两处的值实现反复添加
$name="犹太族"; //1.2:$sql语句里用?时,使用索引数组添加
$attr=array("n010","藏族"); //这种方法要把第一个参数写成索引形势,并且要把$attr放到execute($attr)内 //2.1:$sql语句里用:aa时,使用bindParam()添加
$stm->bindParam("aa",$code,PDO::PARAM_STR);
$stm->bindParam("bb",$name,PDO::PARAM_STR);
$code="n011";
$name="巨人族"; //2.2:$sql语句里用?时,使用关联数组
$attr=array("aa"=>"n012","bb"=>"小人族"); //执行
if($stm->execute($attr))
{
echo "执行成功";
}
else
{
echo "执行失败";
}
练习:PDO添加表单
前端页面
<body>
<h1>添加民族代号和名称</h1>
<br />
<form action="PDOtjchuli.php" method="post">
民族代号:<input type="text" name="one"/><br />
民族名称:<input type="text" name="two"/><br />
<input type="submit" value="提交"/>
</form>
</body>
</html>

后台处理代码
<?php
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root","");
$sql="insert into nation values (:aa,:bb)";
$result=$pdo->prepare($sql); $attr=array("aa"=>$_POST["one"],"bb"=>$_POST["two"]); if($result->execute($attr))
{
echo "<script>alert('添加成功')</script>";
}
else
{
echo "<script>alert('添加成功')</script>";
}
PDO讲解的更多相关文章
- 理解数据库的PDO处理的理念
做第一份工作的时候,脑海里没有数据安全性的概念,从来没有网站被黑客盯上的事情.网站用户量也不大,虽然工作繁忙,但是只要代码上了线,基本上没有出过问题.在这个期间曾经做过一些傻的事情,认为sql写的越复 ...
- 系统的讲解 - PHP WEB 安全防御
目录 常见漏洞 SQL注入攻击 XSS攻击 SSRF攻击 CSRF攻击 文件上传漏洞 信息泄露 越权 设计缺陷 小结 常见漏洞 看到上图的漏洞是不是特别熟悉,如果不进行及时防御,就会产生蝴蝶效应. 往 ...
- PHP(Mysqli和PDO)预处理
PHP预处理主要是用来防SQL注入的,开发程序的都明白这样一个道理,不能相信用户的任何输入,如果用户输入问题你没有做相应的安全, 那么:你的程序是很危险的,很容易被攻击的!预处理:只分析两个:mysq ...
- php通过Mysqli和PDO连接mysql数据详解
前言 在实际开发中,关于数据库操作类,很少是自己去写,大多是通过一些框架去实现,突然自己去写,还是需要借阅手册之类,于是我觉得有必要去总结一下,php连接mysql的方法,php连接mysql,可以通 ...
- 跟着百度学PHP[14]-PDO之Mysql的事务处理2
前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了. 将自动提交关闭. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT 将其设置为0即可关闭,如:$pd ...
- PDO、PDOStatement、PDOException
最近在学PDO 比较详细的资料 出处:http://blog.csdn.net/hsst027/article/details/23682003 PDO中包含三个预定义的类,它们分别是PDO.PDO ...
- PDO如何完成事务操作
起因 无意间翻看极客学院的APP,准备找一些教程看看.看到一篇PDO 安全处理与事务处理,一想对MySQL的事务处理仅仅停留在概念上(知道执行多条语句,其中一个失败了,就会回滚操作).但是把概念变成代 ...
- PHP中的PDO操作学习(四)查询结构集
关于 PDO 的最后一篇文章,我们就以查询结果集的操作为结束.在数据库的操作中,查询往往占的比例非常高.在日常的开发中,大部分的业务都是读多写少型的业务,所以掌握好查询相关的操作是我们学习的重要内容. ...
- PHP中的PDO操作学习(三)预处理类及绑定数据
要说 PDO 中最强大的功能,除了为不同的数据库提供了统一的接口之外,更重要的就是它的预处理能力,也就是 PDOStatement 所提供的功能.因为它的存在,才让我们可以安心地去使用而不用操心 SQ ...
随机推荐
- AGS API for JavaScript 图表上地图
原文:AGS API for JavaScript 图表上地图 图1 图2 图3 -------------------------------------华丽丽的分割线--------------- ...
- 数据库.mdf
对于.mdf文件和.ldf数据库文件, 首先打开SQL Server Management Studio Express,登陆上后,右键点击数据库,附加->选择目标文件就可以了.
- UILabel 添加图片
//设置显示图片 NSMutableAttributedString * cellAttributeStr = [[NSMutableAttributedString alloc]initWithSt ...
- 替换SearchBar 键盘上的 搜索 按钮
for (UIView *searchBarSubview in [searchBar subviews]) { if ([searchBarSubview conformsToProt ...
- Mysqldump 参数详解(全)
Mysqldump 参数详解(全) http://www.open-open.com/lib/view/open1358172843762.html mysqldump -S /tmp/mysql33 ...
- 微信公众平台开发(112) 自动更新微信access token
关键字:Memcache access_token 更新 存储 7200 本文介绍如何存储及更新 access token的方法. 一.Access Token access_token是公众号的全局 ...
- PHP for 循环
<!DOCTYPE html> <html> <body> <?php for ($x=0; $x<=10; $x++) { echo "数字 ...
- Inno Setup 教程
参考博客:制作部署安装包:Inno Setup 参考资料:Inno Setup详细教程 参考资料:Innosetup使用详细全面教程 个人使用的 风铃夜思雨 的汉化版,版本:5.5.5 ; 脚本由 I ...
- ThinkPHP 自动验证与自动填充无效可能的原因(转)
自动验证与自动填充是在使用ThinkPHP时经常用到的功能,但偶尔会遇到自动验证与自动填充无效的情况,本文就ThinkPHP 自动验证与自动填充无效可能的原因做一些分析. create() Think ...
- hibernate中@Entity和@Table的区别
Java Persistence API定义了一种定义,可以将常规的普通Java对象(有时被称作POJO)映射到数据库.这些普通Java对象被称作Entity Bean.除了是用Java Persis ...