PDO 数据访问抽象层

//PDO
//数据访问抽象层
<?php

//1.操作其它数据库
//2.事务功能
//3.防止SQL注入攻击

//造PDO对象
//$dsn = "mysql:dbname=mydb;host=localhost"; //数据源
//$pdo = new PDO($dsn,"root","123");

//写SQL语句
//$sql = "select * from nation";
//$sql = "insert into nation values(‘n077‘,‘数据‘)";

//执行,返回的是PDOStatement对象
//$a = $pdo->query($sql); //执行查询
//$a = $pdo->exec($sql); //执行其他语句

//var_dump($a);

//$arr = $attr->fetchAll(PDO::FETCH_BOTH);
//var_dump($arr);

//事务功能
//事务:能够控制语句同时成功同时失败,失败时可以回滚

$dsn = "mysql:dbname=mydb;host=localhost";        //数据库名称,服务器
$pdo = new PDO($dsn,"root","123");

//设置异常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 

try
{
    //开启事务
    $pdo ->beginTransaction(); 

    $sql1 = "insert into nation values(‘n080‘,‘是删‘)";
    $sql2 = "insert into nation values(‘n070‘,‘好几款‘)";
    $sql3 = "insert into nation values(‘n075‘,‘好几款‘)";

    $pdo->exec($sql1);
    $pdo->exec($sql2);
    $pdo->exec($sql3);               // 三个的执行成功是并的关系,否则出错。

    //提交
    $pdo->commit();
}
catch(Exception $e)
{
    //抓住try里面出现的错误,并且处理zv
    //echo $e->getMessage(); //获取异常信息

    //回滚
    $pdo->rollBack();
}
//final()
//{
    //最终执行,无论以上try代码有没有出错,都会执行
//}

?>

</body>
<?php

//预处理语句防止SQL注入
$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");

//$code = "n005";

//SQL语句里面需要加占位符 ?
//$sql = "select * from nation where code=?";
$sql = "insert into nation values(?,?)";

//准备执行,返回PDOStatement对象
$st = $pdo->prepare($sql);

//调用绑定参数的方法来绑定参数
//$st->bindParam(1,$code);
//$st->bindParam(2,$name);
//$name = "测试1";

//索引数组                      //注意区别
$attr = array("n006","测试2");

//执行方法
$st->execute($attr);

//$attr = $st->fetchAll();

//var_dump($attr);

?>
<?php

$dsn = "mysql:dbname=mydb;host=localhost";
$pdo = new PDO($dsn,"root","123");

//占位符是字符串
$sql = "insert into nation values(:code,:name)";

$st = $pdo->prepare($sql);      //等待执行。prepare准备
//$st->bindParam(":code",$code,PDO::PARAM_STR);
//$st->bindParam(":name",$name,PDO::PARAM_STR);
//$code = "n007";
//$name = "测试3";

//关联数组                               //与?占位符的区别
$attr = array("code"=>"n008","name"=>"测试4");

$st->execute($attr);

?>
时间: 2024-12-28 09:46:59

PDO 数据访问抽象层的相关文章

PHP中关于PDO数据访问抽象层的功能操作

PDO:数据访问抽象层 具有三大特点: 1.可以访问其它数据库  所有数据库都可以 2.具有事务功能 3.带有预处理语句功能(防止SQL注入攻击) 实例操作代码如下: <?php //1.造PDO对象$dsn ="mysql:dbname=mydb;host=localhost";//数据库类型:dbname=数据库名称;host=链接的ip或本机$pdo =new PDO($dsn,"root","root");//$dsn,帐号,密码

PDO(数据访问抽象层)、pdo事务功能和预处理功能---2017-05-05

之前所学的数据访问都是用mysqli做成类来访问的,但是mysqli这个类只是针对mysql这个数据库的:那么如果访问其他类型的数据库呢? 那么这就用到了PDO(数据访问抽象层). 一.关于PDO基本语句(以MySQL数据库为例,因为电脑没有其他的数据库) (1)造PDO对象 $dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); 格式: $dsn

PDO数据访问抽象层(上)

PDO比MySQLi功能强大 PDO可以访问MySQL及其它数据库 一.造对象 1 2 3 4 5 <?php     $dsn = "mysql:dbname = crud;host = localhost";     //mysql:MySQL数据库驱动dbname = crud:数据库名字 :host = localhost数据库地址     $pdo = new PDO($dsn,"root","123");//数据源,数据库用户名

PDO数据访问抽象层(下)

PDO两大功能 一.事务功能 PDO的事务功能主要控制好几条sql语句同时成功或者同时失败(当其中一条SQL语句有错误时,同时好几条一起失败),失败时可以回滚操作 1.造对象 1 2 3 4 <?php $dsn = "mysql:dbname=crud;host=localhost"; $pdo = new PDO($dsn,"root","123"); ?> 2.设置异常模式 1 $pdo->setAttribute(PDO

PHP-------PDO:数据访问抽象层

PDO:数据访问抽象层 它是用来做数据访问的,和数据库之间连接,执行一些SQL语句 这种方式比之前的,Mysqli的方式功能更大一些 用一张图来说明: 人为写了一条SQL语句,是通过Mysqli的对象(封装好的类),通过Mysql驱动,然后在操作Mysql数据库.这是以前的方式. 如果这条SQL语句,想访问另外一个数据库,不是Mysql了,想用一下Oracle Call数据库或者SQL Server数据库,根据逻辑,应该还要有一个类是专门操作Oracle Call 数据库的类 同一张图来表示:

PDO:数据访问抽象层

<?php //PDO:数据访问抽象层 //带有事务功能: //dsn:数据源 $dsn="mysql:host=localhost;dbname=aaas"; //造pdo对象 $pdo=new PDO($dsn,"root","");//数据源,用户名,密码 //启动事务 $pdo->beginTransaction(); //写SQL语句 $sql="select * form Info"; //执行SQL语

数据访问抽象层PDO

通过数据访问抽象层PDO可以访问多个数据库 //数据访问抽象层PDO //造DSN:驱动名:dbname=数据库名:host=服务器地址 $dsn = "mysql:dbname=mydb;host=localhost"; //造PDO对象 $pdo = new PDO($dsn,"root","xiao8888"); //写SQL语句 $sql = "select * from Info"; //执行SQL语句 //我们不这

PDO:: 数据访问抽象层 ? :

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <?php //定义数据源 $dsn="mysql:dbname=test2;host=localhost"; //$dsn="sql

PDO是一个“数据库访问抽象层”

PDO是一个"数据库访问抽象层",作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,PDO让跨数据库的使用更具有亲和力:与ADODB和MDB2相比,PDO更高效. 目前而言,实现"数据库抽象层"任重而道远,使用PDO这样的"数据库访问抽象层"是一个不错的选择. PDO中包含三个预定义的类 PDO中包含三个预定义的类,它们分别是 PDO.PDOStatement 和 PDOException. 一.PDO PDO->be