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