PDO讲解
PDO的知识点标注在代码里
<?php
//造DSN:驱动名:dbname=数据库名;host=服务器地址
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root","");
//写sql语句
$sql="select * from info";
//1.execu()执行增删改语句
//2.query()执行查询语句
//例子
/*//执行sql语句
$v=$pdo->query($sql);
foreach($v as $a)
{ //返回的对象比较特殊,可以直接用循环遍历,尽量不要用
echo $a[0];
}*/
//3.预处理语句——prepare()和execute语句
//预处理,先把sql语句放到服务器上等待我们给他指令去执行
$stm=$pdo->prepare($sql);
//execute()执行准备好的sql语句,成功返回true,失败返回false
if($stm->execute())
{
//获取结果的方法
//注意:各个获取结果的方法括号内可以写参数
//1.取一条数据
//var_dump($stm->fetch());
//fetch()和fetchALL()的参数相同
//2.取所有
//var_dump($stm->fetchAll(PDO::FETCH_ASSOC));//返回关联数组
//var_dump($stm->fetchAll(PDO::FETCH_NOM));//返回索引数组
//var_dump($stm->fetchAll(PDO::FETCH_OBJ));//返回对象数组
//3.取某一列
//var_dump($stm->fetchColumn(1)); //以0开始索引
//4.返回一条对象
//var_dump($stm->fetchObject());
}
else
{
echo "连接失败";
}
以下代码为PDO参数绑定
<?php
//造对象
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root","");
//写sql语句
//$sql="insert into nation values (?,?)"; //语句1
$sql="insert into nation values (:aa,:bb)"; //语句2
//预处理
$stm=$pdo->prepare($sql);
//给参数绑定值
//1.1:$sql语句里用?时,使用bindParam()添加
$stm->bindParam(1,$code); //数字1代表占位符,$code代表添加的列名
$stm->bindParam(2,$name);
$code="n009"; //修改此两处的值实现反复添加
$name="犹太族";
//1.2:$sql语句里用?时,使用索引数组添加
$attr=array("n010","藏族"); //这种方法要把第一个参数写成索引形势,并且要把$attr放到execute($attr)内
//2.1:$sql语句里用:aa时,使用bindParam()添加
$stm->bindParam("aa",$code,PDO::PARAM_STR);
$stm->bindParam("bb",$name,PDO::PARAM_STR);
$code="n011";
$name="巨人族";
//2.2:$sql语句里用?时,使用关联数组
$attr=array("aa"=>"n012","bb"=>"小人族");
//执行
if($stm->execute($attr))
{
echo "执行成功";
}
else
{
echo "执行失败";
}
练习:PDO添加表单
前端页面
<body> <h1>添加民族代号和名称</h1> <br /> <form action="PDOtjchuli.php" method="post"> 民族代号:<input type="text" name="one"/><br /> 民族名称:<input type="text" name="two"/><br /> <input type="submit" value="提交"/> </form> </body> </html>

后台处理代码
<?php
$dsn="mysql:dbname=mydb;host=localhost";
$pdo=new PDO($dsn,"root","");
$sql="insert into nation values (:aa,:bb)";
$result=$pdo->prepare($sql);
$attr=array("aa"=>$_POST["one"],"bb"=>$_POST["two"]);
if($result->execute($attr))
{
echo "<script>alert('添加成功')</script>";
}
else
{
echo "<script>alert('添加成功')</script>";
}

浙公网安备 33010602011771号