方法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. “64位调试操作花费的时间比预期要长",无法运行调试解决办法

    以管理员身份在命令提示符那里打入如下命令: netsh winsock reset catalognetsh int ip reset reset.log hit 或者是 打开Microsoft Vi ...

  2. Lintcode455-StudentID-Easy

    Implement a class Class with the following attributes and methods: A public attribute students which ...

  3. HDU 4309 Seikimatsu Occult Tonneru(最大流+二进制枚举)

    http://acm.hdu.edu.cn/showproblem.php?pid=4309 题意: 有n个城市,每个城市有num[i]个居民,有敌人要进行地毯式轰击,居民们要逃到隧道去.现在有隧道, ...

  4. BZOJ 2809: [Apio2012]dispatching(左偏树)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2809 题意: 思路:最简单的想法就是枚举管理者,在其子树中从薪水低的开始选起,但是每个节点都这样处理 ...

  5. JAVA SE ArrayList 底层实现

    Array 查询效率高,增删效率低( Link 增删效率高 Vector 线程安全 List 列表 源代码: package com.littlepage.test; /** * 基于底层实现Arra ...

  6. openModelica调试

    1打印信息 Modelica.Utilities.Streams.print(“messge”);

  7. C++的虚函数

    1 多态产生的背景  希望同一个方法在派生类和基类中的行为是不同的,换句话来说,方法的行为取决于调用该方法的对象. 2 解决多态的两种方法  1)在派生类中重新定义基类的方法  2)使用虚方法 3 虚 ...

  8. Codeforces 997 C - Sky Full of Stars

    C - Sky Full of Stars 思路: 容斥原理 题解:http://codeforces.com/blog/entry/60357 注意当i > 1 且 j > 1,是同一种 ...

  9. CentOS 7系统安装配置图解教程

    操作系统:CentOS 7.3 备注: CentOS 7.x系列只有64位系统,没有32位.生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本 一.安装CentOS ...

  10. windows10 64bit 下的tensorflow 安装及demo

    目前流行的深度学习库有Caffe,Keras,Theano,本文采用谷歌开源的曾用来制作AlphaGo的深度学习系统Tensorflow. 1:安装Tensorflow 最早TensorFlow只支持 ...