7.19 PDO(php data object-php数据对象)数据库抽象层
Posted sun1987
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7.19 PDO(php data object-php数据对象)数据库抽象层相关的知识,希望对你有一定的参考价值。
<?php
header("Content-type: text/html; charset=utf-8");
//PDO操作mysql
/*$pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");//exec()用来执行增删改和设置的语句
$sql = "select *from student";
$ycl = $pdo->query($sql);//query()用来执行查询语句
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
//var_dump($attr);
//lastInsertId()用法:最后一次插入的id
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");
$sql = "insert into student values(‘‘,‘‘,‘zhangsan32‘,‘‘,‘‘,‘‘)";
if($pdo->exec($sql)){
$lastid = $pdo->lastInsertId();
echo "id是{$lastid}的数据插入成功";
var_dump($lastid);
}*/
//setAttribute()设置PDO的一些属性
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);//设置查询数据返回的类型,这样就不用每次都写fetchAll(PDO::FETCH_ASSOC)了
$sql = "select * from student";
$ycl = $pdo->query($sql);
//$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);省去这一句
$attr = $ycl->fetchAll();
var_dump($attr);*/
//prepare()用法
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student";
$ycl = $pdo->prepare($sql);//预处理,把sql语句保存准备,可防止sql注入,也能提高查询的效率,当另一个用户再次请求相同的sql,会先找到这个准备的sql,执行查询
$ycl->execute();//执行
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
//bindValue()
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student where sno =?";//防止每个人选择的sno不一样而导致重复的sql,设置sno=?
$ycl = $pdo->prepare($sql);//预处理
$id = 098;//这个id是传递过来的参数
$ycl->bindValue(1,$id,PDO::PARAM_INT);//往第一个问号上绑定$id,并给$id设置类型PDO::PARAM_INT
$ycl->execute();//执行
$attr = $ycl->rowCount();
var_dump($attr);*/
//columnCount()返回表的列数
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student";
$ycl = $pdo->prepare($sql);//预处理
$ycl->execute();//执行
//$attr = $ycl->columnCount();
$attr = $ycl->fetchColumn(3);
$attr = $ycl->fetchColumn(4); //从预处理里面查询某一行数据的第n(n从0开始)列的值,执行第一次是第一行,执行第二次是第二行
var_dump($attr);*/
header("Content-type: text/html; charset=utf-8");
//PDO操作mysql
/*$pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");//exec()用来执行增删改和设置的语句
$sql = "select *from student";
$ycl = $pdo->query($sql);//query()用来执行查询语句
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
//var_dump($attr);
//lastInsertId()用法:最后一次插入的id
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");
$sql = "insert into student values(‘‘,‘‘,‘zhangsan32‘,‘‘,‘‘,‘‘)";
if($pdo->exec($sql)){
$lastid = $pdo->lastInsertId();
echo "id是{$lastid}的数据插入成功";
var_dump($lastid);
}*/
//setAttribute()设置PDO的一些属性
/* $pdo =new PDO("mysql:host=localhost;dbname=ceshi","root","");
$pdo->exec("set names utf8");
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);//设置查询数据返回的类型,这样就不用每次都写fetchAll(PDO::FETCH_ASSOC)了
$sql = "select * from student";
$ycl = $pdo->query($sql);
//$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);省去这一句
$attr = $ycl->fetchAll();
var_dump($attr);*/
//prepare()用法
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student";
$ycl = $pdo->prepare($sql);//预处理,把sql语句保存准备,可防止sql注入,也能提高查询的效率,当另一个用户再次请求相同的sql,会先找到这个准备的sql,执行查询
$ycl->execute();//执行
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);*/
//bindValue()
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student where sno =?";//防止每个人选择的sno不一样而导致重复的sql,设置sno=?
$ycl = $pdo->prepare($sql);//预处理
$id = 098;//这个id是传递过来的参数
$ycl->bindValue(1,$id,PDO::PARAM_INT);//往第一个问号上绑定$id,并给$id设置类型PDO::PARAM_INT
$ycl->execute();//执行
$attr = $ycl->rowCount();
var_dump($attr);*/
//columnCount()返回表的列数
/* $pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
$sql = "select * from student";
$ycl = $pdo->prepare($sql);//预处理
$ycl->execute();//执行
//$attr = $ycl->columnCount();
$attr = $ycl->fetchColumn(3);
$attr = $ycl->fetchColumn(4); //从预处理里面查询某一行数据的第n(n从0开始)列的值,执行第一次是第一行,执行第二次是第二行
var_dump($attr);*/
//rowCount()影响数据的行数
/* $sql = "select * from student";
$ycl = $pdo->prepare($sql);
$ycl->execute();
$attr = $ycl->rowCount();
var_dump($attr);*/
//PDO预处理
/*$pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
//查询的预处理
$sql = "select * from student";
$ycl = $pdo->prepare($sql);
$ycl->execute();
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);
var_dump($attr);*/
/* $sql = "select * from student";
$ycl = $pdo->prepare($sql);
$ycl->execute();
$attr = $ycl->rowCount();
var_dump($attr);*/
//PDO预处理
/*$pdo = new PDO(‘mysql:host=localhost;dbname=ceshi‘, "root", "");
$pdo->exec("set names utf8");
//查询的预处理
$sql = "select * from student";
$ycl = $pdo->prepare($sql);
$ycl->execute();
$attr = $ycl->fetchAll(PDO::FETCH_ASSOC);
var_dump($attr);*/
以上是关于7.19 PDO(php data object-php数据对象)数据库抽象层的主要内容,如果未能解决你的问题,请参考以下文章