方法1:较简单的

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>PDO方法1整理</title>
</head> <body>
<?php
//造DSN 格式为:驱动名:dbname=数据库名;host=服务器地址
$dsn = "mysql:dbname=mydb;host=localhost"; //造PDO对象
$pdo = new PDO($dsn,"root",""); //写SQL语句
$sql = "select * from Info"; /*//执行SQL语句 可以但是一般不用
$v = $pdo->query($sql);
//返回的对象比较特殊,可以直接用循环遍历
foreach($v as $a)
{
echo $a[0];
}*/ //预处理,先把SQL语句放到服务器上等待我们给他指令去执行
//准备一条SQL语句,返回PDO对象
$stm = $pdo->prepare($sql); //执行准备好的SQL语句,成功返回true,失败返回false
if($stm->execute())
{
//输出的方式
//1.逐行取数据
//var_dump($stm->fetch());//读取的数据有索引也有关联数组,
//里面可以写参数
//var_dump($stm->fetch(PDO::FETCH_ASSOC));//关联数组
//var_dump($stm->fetch(PDO::FETCH_BOTH));//都有
//var_dump($stm->fetch(PDO::FETCH_NUM));//索引数组 //2.读取所有的数据
//var_dump($stm->fetchAll());//参数同上 //3.读取某一列
//var_dump($stm->fetchColumn(1));//里面是索引 //4.返回对象
//var_dump($stm->fetchObject());
}
else
{
echo "执行失败";
}
?> </body>
</html>

  注意pdo中的输出方式:

逐行读取数据-----$stm->fetch();      #包含索引数组和关联数组

读取全部数据-----$stm->fetchAll();   #包含索引数组和关联数组

括号里面可以写参数的,两个的方法都是一样的,常见的有:

$stm->fetch(PDO::FETCH_ASSOC);    #关联数组
$stm->fetch(PDO::FETCH_BOTH);     #都有
$stm->fetch(PDO::FETCH_NUM);     #索引数组

返回某一列-----$stm->fetchColumn(1);        #里面是索引

返回对象-------$stm->fetchObject();

方法2:以添加数据举例,分为两种,索引数组和关联数组

索引数组

<title>PDO方法2整理</title>
</head> <body>
<?php
//索引数组 //造对象
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root",""); //写SQL语句
//$sql = "insert into Nation values(?,?)"; //预处理
$stm = $pdo->prepare($sql); //给参数绑定值,较为麻烦不建议
/*$stm->bindParam(1,$code);
$stm->bindParam(2,$name);
$code = "p002";
$name = "回k";*/ //造数组
$attr = array("p111","张三"); //执行
if($stm->execute($attr))
{
echo "添加成功";
}
else
{
echo "添加失败";
}
?> </body>
</html>

  关联数组

<title>PDO方法2整理</title>
</head> <body> <?php
//关联数组
//造对象
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root",""); //写SQL语句
$sql = "insert into Nation values(:code,:name)"; //预处理
$stm = $pdo->prepare($sql); //给参数绑定值,麻烦不建议
/*$stm->bindParam("code",$code,PDO::PARAM_STR);
$stm->bindParam("name",$name,PDO::PARAM_STR);
$code = "p003";
$name = "aaaa";
*/ //造数组
$attr = array("code"=>"p005","name"=>"bbbb"); //执行
if($stm->execute($attr))
{
echo "添加成功";
}
else
{
echo "添加失败";
}
?> </body>
</html>

  另一种方法是利用表单的,更加方便,都可以使用

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head> <body>
<form action="pdo2.php" method="post">
<div>代号:<input type="text" name="code" /></div><br /> <div>名称:<input type="text" name="name" /></div><br /> <div><input type="submit" value="提交" /></div>
</form>
</body>
</html>

  

<title>PDO方法2整理</title>
</head> <body> <?php
//关联数组
//造对象
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root",""); //写SQL语句
$sql = "insert into Nation values(:code,:name)"; //预处理
$stm = $pdo->prepare($sql); //执行
if($stm->execute($_POST))
{
echo "添加成功";
}
else
{
echo "添加失败";
}
?>
</body>
</html>

  

5月13 PDO数据访问抽象层的更多相关文章

  1. PDO数据访问抽象层

    PDO数据访问抽象层: 我们使用的mysqli是针对mysql这个数据库扩展的一个类,如果要用到别的数据库的话就可以用PDO来做 1.操作数据库 先来代码 <!--PDO--> <! ...

  2. PDO(数据访问抽象层)、pdo事务功能和预处理功能---2017-05-05

    之前所学的数据访问都是用mysqli做成类来访问的,但是mysqli这个类只是针对mysql这个数据库的:那么如果访问其他类型的数据库呢? 那么这就用到了PDO(数据访问抽象层). 一.关于PDO基本 ...

  3. PHP中关于PDO数据访问抽象层的功能操作

    PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库  所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) 实例操作代码如下: <?php //1.造PD ...

  4. PDO数据访问抽象层(上)

    PDO比MySQLi功能强大 PDO可以访问MySQL及其它数据库 一.造对象 <?php $dsn = "mysql:dbname = crud;host = localhost&q ...

  5. PDO 数据访问抽象层

    1.操作其它数据库 (1)造对象 $dsn = "mysql:dbname=test3;host=localhost"; //数据源:两个参数:数据库驱动,链接数据库 $pdo = ...

  6. php 之 PDO数据访问抽象层(0513)

    PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口. PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数, 基于数据库使用的安全性,因为后者欠缺对于S ...

  7. PDO数据访问抽象层(下)

    PDO两大功能 一.事务功能 PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作 1.造对象 <?php $ds ...

  8. php PDO:数据访问抽象层

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. PDO:数据访问抽象层

    <?php //PDO:数据访问抽象层 //带有事务功能: //dsn:数据源 $dsn="mysql:host=localhost;dbname=aaas"; //造pdo ...

随机推荐

  1. hihoCoder week16 RMQ-ST算法

    RMQ问题 用的st表吧,读入数据挺多的,输出数据也挺多的 我还用了 cout<<endl;  T了.. 真的是 做题不带脑子的 #include <bits/stdc++.h> ...

  2. fhqtreap初探

    介绍 fhqtreap为利用分裂和合并来满足平衡树的性质,不需要旋转操作的一种平衡树. 并且利用函数式编程可以极大的简化代码量. (题目是抄唐神的来着) 核心操作 (均为按位置分裂合并) struct ...

  3. 题解——洛谷P2294 [HNOI2005]狡猾的商人(差分约束)

    裸的差分约束 dfs判断负环,如果有负环就false,否则就是true 注意有多组数据,数组要清空 #include <cstdio> #include <algorithm> ...

  4. HDU 5649 DZY Loves Sorting(二分答案+线段树/线段树合并+线段树分割)

    题意 一个 \(1\) 到 \(n\) 的全排列,\(m\) 种操作,每次将一段区间 \([l,r]\) 按升序或降序排列,求 \(m\) 次操作后的第 \(k\) 位. \(1 \leq n \le ...

  5. 比原链设计思考: 扩展性UTXO模型

    用户模型是比原链在最初就需要确定的重要数据结构, 团队的选择还是聚焦在两种典型的模型系统中,Account模型和UTXO模型,和其他大多数区块链设计一样, 选择了模型就决定了协议层的重要实现,两种模型 ...

  6. 【ASP.Net】 http请求中get,put,post,delete的区别与使用总结

    在web api的设计上, 需要设计这个每个action对应的资源的请求方法是什么. Get方法是对服务器资源的请求获取, 一般get方法的参数都放在URL当中的. 所以通常情况下这种请求方式都是不安 ...

  7. oogle advertiser api开发概述——速率限制

    速率限制 为了向遍布全球的 AdWords API 用户提供可靠的服务,我们使用令牌桶算法来衡量请求数并确定每秒查询数 (QPS) 速率.这样做的目的是阻止恶意的或不可控的软件大量入侵 AdWords ...

  8. [Err] 1449 - The user specified as a definer ('rybhe'@'%') does not exist

    转载: 最近在做一个项目,由于服务器切换,所以需要将原有服务器的mysql数据表以及存储过程导入到另一个服务器的mysql数据库中.导入完成之后以为一切是那么的简单,却没有想到总还是出现了一些莫名其妙 ...

  9. Aviutl 视频处理软件

    素材类:No.009 倒放(Video)         http://www.bilibili.com/video/av3078207/ No.010 倒放(Object)         http ...

  10. python学习 day013打卡 内置函数

    本节主要内容: 内置函数: 内置函数就是python给你提供的.拿来直接用的函数,比如print,input等等.截止到python版本3.6.2 python一共提供了68个内置函数.他们就是pyt ...