php 之 PDO数据访问抽象层(0513)
PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口。
PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数,
基于数据库使用的安全性,因为后者欠缺对于SQL资料隐码的防护。
一、PDO连接数据库:
1.造DSN,定义数据源: 驱动名:dbname=数据库名;host=服务器地址
$dsn="mysql:dbname=mydb;host=localhost";
2.造PDO对象:
$pdo=new PDO($dsn."root","");
3.写SQL语句:
$sql="select * from Info";
4.执行SQL语句:
4.1 用query(),这种不常用,仅作了解。
$v=$pdo->query($sql);
//返回的对象比较特殊,可以直接用循环遍历:
foreach ($v as $a)
{
echo $a[0];
}
4.2 预处理,先把SQL语句放到服务器上等待我们给它指令去执行
//准备一条SQL语句:
$stm=$po->prepare($sql);
//执行准备好的SQL语句,成功返回true,失败返回false
if($stm->execute())
{
//输出方式:
//1.逐行取数据:
$stm->fetch();
里面可以写参数
//var_dump($stm->fetch(PDO::FETCH_ASSOC));//关联数组 //var_dump($stm->fetch(PDO::FETCH_BOTH));//都有 //var_dump($stm->fetch(PDO::FETCH_NUM));//索引数组//2.取所有的数据,里面也可以写参数,同上:
$stm->fetchAll();
//3.取某一列,括号里面是索引:
$stm->fetchcolumn(1);
//4.返回对象:
$stm->fetchObject();
}
else
{
echo "执行失败!";
}
二、修改SQL语句,添加数据:
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root","");
1.方法一:直接使用添加的SQL语句
$sql="insert into nation values ('p0001','张三')";
$stm=$pdo->prepare($sql);
if($stm->execute())
{
echo "执行成功";
}
else
{
echo "执行失败";
}
2.方法二:用?来代替参数,然后给参数绑定值(方法有些麻烦,一般不用)
//用?来代替:
$sql="insert into nation values (?,?)";
$stm=$pdo->prepare($sql);
//给参数绑定值:
绑定值方法一:索引数组
$stm->bindParam(1,$code);
$stm->bindParam(2,$name);
$code = "p100";
$name = "回家";
绑定值方法二:关联数组
$stm->bindParam("code",$code,PDO::PARAM_STR);
$stm->bindParam("name",$name,PDO::PARAM_STR);
$code = "p102";
$name = "回家";
if($stm->execute())
{
echo "执行成功";
}
else
{
echo "执行失败";
}
3.方法三:数组方式
$sql = "insert into Nation values(:code,:name)";
$stm=$pdo->prepare($sql);
//用数组方式来添加数值:
方式一:索引数组
$attr = array("p101","很快");
方式二:关联数组
$attr = array("code"=>"p103","name"=>"shj");
if($stm->execute($attr))
{
echo "添加成功";
}
else
{
echo "添加失败";
}
4.方式四:$_POST,用表单的方式。
//可另建一个页面建个表单
<form action="test1.php" method="post">
<input type="text" name="code" />
<input type="text" name="name" />
<input type="submit" value="添加" />
</form>

$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root","");
$sql = "insert into Nation values(:code,:name)";
$stm=$pdo->prepare($sql);
if($stm->execute($_POST))
{
echo "添加成功";
}
else
{
echo "添加失败";
}
php 之 PDO数据访问抽象层(0513)的更多相关文章
- PDO数据访问抽象层
PDO数据访问抽象层: 我们使用的mysqli是针对mysql这个数据库扩展的一个类,如果要用到别的数据库的话就可以用PDO来做 1.操作数据库 先来代码 <!--PDO--> <! ...
- PDO(数据访问抽象层)、pdo事务功能和预处理功能---2017-05-05
之前所学的数据访问都是用mysqli做成类来访问的,但是mysqli这个类只是针对mysql这个数据库的:那么如果访问其他类型的数据库呢? 那么这就用到了PDO(数据访问抽象层). 一.关于PDO基本 ...
- PHP中关于PDO数据访问抽象层的功能操作
PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库 所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) 实例操作代码如下: <?php //1.造PD ...
- PDO数据访问抽象层(上)
PDO比MySQLi功能强大 PDO可以访问MySQL及其它数据库 一.造对象 <?php $dsn = "mysql:dbname = crud;host = localhost&q ...
- PDO 数据访问抽象层
1.操作其它数据库 (1)造对象 $dsn = "mysql:dbname=test3;host=localhost"; //数据源:两个参数:数据库驱动,链接数据库 $pdo = ...
- 5月13 PDO数据访问抽象层
方法1:较简单的 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- PDO数据访问抽象层(下)
PDO两大功能 一.事务功能 PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作 1.造对象 <?php $ds ...
- php PDO:数据访问抽象层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- PDO:数据访问抽象层
<?php //PDO:数据访问抽象层 //带有事务功能: //dsn:数据源 $dsn="mysql:host=localhost;dbname=aaas"; //造pdo ...
随机推荐
- Jasper_filter data_pass field data from main to sub to filter some data
main report: 1 add variable <variable name="Variable_rule" class="java.lang.String ...
- eclipse中JSP开发环境的配置
1. Java环境 自行百度配置 2. Web Server环境安装: Web Server选择流行的Apache Tomcat .到http://tomcat.apache.org/ 处下载, ...
- Ruby on Rails Tutorial读书笔记-1
只是怕忘了命令,全部撸一次,记个大概.. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 安装Ruby之前,先要安装RVM: curl -L https://get.rvm.io | bas ...
- Gridview中修改某列的背景色
Gridview中状态列的值是1,某列的背景是是绿色状态字段是:archivesStatus protected void gvInfo_RowDataBound(object sender, Gri ...
- Web Server (IIS) Administration Cmdlets in Windows PowerShell
https://technet.microsoft.com/en-us/library/ee790599.aspx Web Server (IIS) Administration Cmdlets in ...
- U-Boot启动过程完全分析
U-Boot启动过程完全分析 1.1 U-Boot工作过程 U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下: (1)第一阶段的功能 硬件设备初始化 加载U-Boot第二阶段 ...
- 回调函数的意义以及python实现
因工作需要,最近在学习使用python来解析各种文件,包括xmind,xml,excel,csv等等. 在学习python解析XML的时候看到这样一段话: 3.ElementTree(元素树) Ele ...
- 远程连接mysql
win系统下,连接别人的mysql或者让别人链接自己的mysql: 打开命令行cmd 进入mysql: mysql -u root -p mysql>use mysql; mysql>s ...
- 二、MLlib统计指标之关联/抽样/汇总
汇总统计[Summary statistics]: Summary statistics提供了基于列的统计信息,包括6个统计量:均值.方差.非零统计量个数.总数.最小值.最大值. import org ...
- SUBTOTAL 函数与所在行
SUBTOTAL 函数与所在行 设计要点:数据汇总.隐藏.筛选 阿金:给你推荐一个函数SUBTOTAL. 秀秀:又是函数!俺不喜欢. 阿金:虽然你不喜欢函数,但是你也离不了啊,比如汇总. 秀秀:那倒是 ...