5月13 PDO数据访问抽象层
2024-10-12 07:00:33
方法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>
最新文章
- 1.1ASP.NET Web API 2入门
- cellular neural networks(CNN)原理以及应用
- QT中静态库的生成与使用
- Remove a Driver Package from the Driver Store
- Aizu 2302 On or Off dfs/贪心
- Java获取真实的IP地址--转载
- Android Dialog详解
- js 禁止复制粘贴全选
- IPFS:世界正在悄然发生变化
- 10_27_unittest
- ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询
- shell的输入参数
- Android--通知之Toast
- WebSocket+Java 私聊、群聊实例
- LeetCode--255--用队列实现栈(java版)
- poj2135 Farm Tour(费用流)
- 转Python SciPy库——拟合与插值
- npm 用 淘宝代理
- mysql数据库表的查询操作-总结
- .NET学习路线之我见(转)