PDO讲解

时间:2023-11-22 12:47:32

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>

  PDO讲解

后台处理代码

<?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>";
}