5月13 PDO数据访问抽象层
方法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数据访问抽象层的更多相关文章
- 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 = ...
- php 之 PDO数据访问抽象层(0513)
PDO(PHP Data Objects)是一种在PHP里连接数据库的使用接口. PDO与mysqli曾经被建议用来取代原本PHP在用的mysql相关函数, 基于数据库使用的安全性,因为后者欠缺对于S ...
- 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 ...
随机推荐
- 最大匹配字符串LCS,The Longest Common Substring
public enum BackTracking { UP, LEFT, NEITHER, UP_AND_LEFT } public abstract class LCSBaseMatch { /// ...
- es索引维护的常用帖子
Elasticsearch 新增字段
- POJ 3278 Catch That Cow(赶牛行动)
POJ 3278 Catch That Cow(赶牛行动) Time Limit: 1000MS Memory Limit: 65536K Description - 题目描述 Farmer J ...
- 2、zabbix工作原理及安装配置
Zabbix架构:zabbix基本术语.zabbix安装.配置和应用 Zabbix架构中的组件: zabbix-server:C语言 zabbix-server和zabbix-agent通过 ...
- [学习一个] Matlab GUI 学习笔记 Ⅰ
Matlab GUI 学习笔记 Ⅰ 1. Foreword Matlab 是严格意义上的编程语言吗?曾经有人告诉我他是通过 Matlab 学会了面对对象编程,我是不信的,但这依然不妨碍它在特殊领域的强 ...
- HDU 4825 Xor Sum(01字典树入门题)
http://acm.hdu.edu.cn/showproblem.php?pid=4825 题意: 给出一些数,然后给出多个询问,每个询问要从之前给出的数中选择异或起来后值最大的数. 思路:将给出的 ...
- 【转】Windows Live Writer 代码插件改造
源码和插件都在后面,如果不想看我神神叨叨的可以直接到文章后面下载 一 .找插件 在使用Windows Live Writer 经常要用到插入代码的功能,根据博客园中教程,分别使用了: WindowsL ...
- python循环语句与其他编程语言不同之处
1.局部变量 for i in range(5): print i, print i, 运行结果: 0 1 2 3 4 4 i是for语句里面的局部变量.但在python里面,在同一方法体内,定义了一 ...
- 【抓包】【Charles】
Mac抓包神器-----Charles Charles 是一款Mac上的HTTP代理服务器.HTTP监视器.反向代理服务器,可以让开发者监视查看所有连接互联网的HTTP通信,包括请求,响应和HTTP头 ...
- 基于 Python 和 Pandas 的数据分析(3) --- 输入/输出 基础
这一节, 我们要讨论 Pandas 的输入与输出, 并且应用在现实的实际例子中. 为了得到大量的数据, 向大家推荐一个网站 Quandl. Quandl 有很多免费和付费的资源. 这个网站最大的优势在 ...