• pdo


    <body>
    
    <?php
    //.访问不同的数据库(举例)
    //造对象
    $dsn = "mysql:dbname=test1;host=localhost";
    $pdo = new PDO($dsn,"root","123");
    //写sql语句
    $sql = "update nation set name='兽族'where code='n002'";
    //执行sql语句
    $a = $pdo->exec($sql);
    
    
    
    //带上事务功能(举例中对于加入的东西其中一个与数据库重复,则都被回滚)
    //造对象
    $dsn = "mysql:dbname=test1;host=localhost";
    $pdo = new PDO($dsn,"root","123");
    //设置异常模式
    $pdo->setAttribute(pdo::ATTR_ERRMODE,pdo::ERRMODE_EXCEPTION);//(模式的名称 模式的值)
    //写sql语句
    $sql1 = "insert into nation values('n005','精灵族') ";
    $sql2 = "insert into nation values('n006','人族') ";
    try
    {   //启动事物
        $pdo->beginTransaction();
    	$pdo->exec($sql1);
    	$pdo->exec($sql2);
    	//提交事务
       $pdo->commit();
    }
    catch(pdoexception $e)// pdo异常的一个类型
    {
    	//$e->getMessage();
    	//回滚
    	$pdo->rollBack();
    }
    //另一个与catch相同的用法是final
    
    
    
    //防止sql注入(举例)
    //造对象
    $dsn = "mysql:dbname=test1;host=localhost";
    $pdo = new PDO($dsn,"root","123");
    //写sql语句
    $sqll = "insert into nation values(?,?)";
    //准备sql语句,返回statement对象
    $st = $pdo->prepare($sqll);
    //绑定参数
    	/*$st->bindparam(1,$code);
    	$st->bindparam(2,$name);
    	
    	$code="n007";
    	$name="矮人族";*/ //或者用简单方法
    	                 $attr = array("n008","魔族");
    	
    //执行提交,不用给sql语句了,直接传过去了
    //$st->execute(); 
    $st->execute($attr);
    //预处理语句里面用?占位的,给数组的时候要给索引数组

    //防止sql注入或者用name占用位置(举例)
    //造对象
    $dsn = "mysql:dbname=mydb;host=localhost";
    $pdo = new PDO($dsn,"root","123");
    
    //写SQL语句,预处理语句,使用name占位
    $sql = "insert into nation values(:code,:name)";
    
    //准备执行
    $st = $pdo->prepare($sql);
    
    //绑定参数
    /*$st->bindParam(":code",$code,PDO::PARAM_STR);
    $st->bindParam(":name",$name,PDO::PARAM_STR);
    
    $code="n024";
    $name="狼族";*/
    
    $attr = array("code"=>"n025","name"=>"虫族");
    
    //执行
    $st->execute($attr);
    

      




    ?> </body>

      

  • 相关阅读:
    这些诗词你知道一句,却不知全诗!
    二十二、事件绑定及深入
    二十一、事件对象
    二十、事件入门
    十九、动态加载脚本和样式
    十八、DOM元素尺寸和位置
    十七、DOM操作表格及样式
    十六、DOM进阶
    十五、DOM基础
    正确使用volatile场景--状态标志
  • 原文地址:https://www.cnblogs.com/gaojunshan/p/6041713.html
Copyright © 2020-2023  润新知