001

来源:互联网 发布:部落冲突龙数据 编辑:程序博客网 时间:2024/04/29 11:54
《PDO》41、作用 :能够解决用户在需要使用不同的数据库的时候进行来回的切换,PDO能够自动的进行数据库的切换。42、使用PDOa)Php.ini文件找开启PDO扩展43、使用PDO操作数据库基本步骤a)连接认证i.$pdo = new PDO(“mysql:host=localhost;port=3306;dbname=project”,”root”,”root”);ii.dbname 是进入的数据库b)组织SQL语句i.$sql = “show tables”;c)发送SQL语句,接收执行结果i.$stmt = $pdo->query( $sql );d)从结果集中获取数据i.$stmt->fetch();44、PDO常用函数a)stdClass标准类 空类b)PDO:i.exec( $sql );执行SQL语句,返回受影响的行数(用于 增删改)ii.$stmt = query( $sql );执行SQL语句,返回PDOStatement对象(用于 查)c)PDOStatement(结果集)i.$stmt->fetch( );返回一个关联数组+索引数组的集合1.参1PDO::FETCH_ASSOC只返回关联数组2.参2PDO::FETCH_NUM只返回索引数组ii.$stmt->fetchAll()获取结果集所有内容(参数同fetch())iii.返回一个对象Object1.class Persion{}2.$stmt->fetchObject( Persion)iv.bindColumn 和 fetch绑定一列到一个变量1.$stmt->bindColumn(‘s_name’,$name);2.$stmt->bindColumn( 3 ,$number);    //注意:索引从1开始3.$stmt->fetch( );4.echo $name,$numberd)PDO预处理i.:s_name  这些 可以全用 ? 号代替(绑定数据时 就用索引值);ii.使用数组指定预处理变量1.步骤:a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”;//sqlb)$stmt = $pdo->prepare( $sql );//发送预处理c)给预处理绑定数据i.$arr = array(ii.   ‘:s_name’=>’房祖名’,iii.   ‘:s_num’=>’itcast0001’,iv.   ‘:s_gender’=>’男’,v.   ‘:s_age’=>’28’,vi.   ‘:c_id’=>’2’,vii.)d)$stmt->execute( $arr );//执行预处理iii.通过绑定变量的形式1.步骤a)$sql = “insert into pro_student values(null,:s_name,:s_num,:s_gender,:s_age,:c_id)”;//sqlb)$stmt = $pdo->prepare( $sql );//发送预处理c)给预处理绑定数据i.$name = “李莫愁”;ii.$num= “itcast0002”;iii.$gender = “女”;iv.$age = “30”;v.$c_id = “3”;vi.//将变量绑定给预处理vii.$stmt->bindParam(‘:s_name’,$name);viii.$stmt->bindParam(‘:s_num’,$num);ix.$stmt->bindParam(‘:s_gender’,$gender);x.$stmt->bindParam(‘:s_age’,$age);xi.$stmt->bindParam(‘:c_id’,$c_id);d)$stmt->execute(  );//执行预处理e)PDO事务处理i.事务处理就是  增删改ii.注意:数据表的存储引擎必须是 innoDBiii.事务处理流程1.$pdo = new PDO(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);//连接认证2.$res = $pdo->beginTransaction();//开启事务3.事务处理a)$sql = “updata pro_student set s_age=28 where s_id=20”;b)$lines = $pdo->exec( $sql );//返回受影响的行数c)$sql = “select * from pro_student where s_id=20”;d)$stmt = $pdo->query( $sql );e)$stmt->fetch(PDO::FETCH_ASSOC);4.提交事务a)if( $links ){b)    $pdo->commit();//更新成功c)}else{d)    $pdo->rollBack();//更新失败   回滚数据e)}f)PDO 属性设置i.设置PDO在处理数据的过程中采用什么方式去处理ii.PDO::getAttribute();//获取属性iii.PDO::setAttribute();//设置属性iv.示例:1.$pdo = new PD(‘mysql:host=localhost;port=3306;dbname=project’,’root’,’root’);//连接认证2.$peo->getAttrbute(PDO::ATTR_AUTOCOMMIT);//获取 自动提交属性3.$pdo->setAttrbute(PDO::ATTR_AUTOCOMMIT,0)//设置 关闭自动提交v.参数记忆:1.PDO::ATTR_CASE强制列名为指定的大小写a)PDO::CASE_LOWER强制小写b)PDO::CASE_UPPER强制大写vi...... 更多请参考手册 ......
g)PDO异常处理i.try{ii.    //设置错误处理模式(必须设置才能生效)iii.    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);iv.    //一旦出错立即进入catch语句v.}catch(PDOException $e){vi.    $e->getTrace();  //获取完整的错误数据vii.    $e->getFile();   //获取错误文件viii.   $e->getLine();   //获取错误行号ix.    $e->getMessage();   //获取错误原因x.}h)反射:i.反射就是将其他类的结构给反应出来,从而可以对类的结构进行了解便于对类的使用ii.Reflectioniii.reflectionClass::export(要反射的类名)iv.调用reflectionClass的静态方法v.var_dump( reflectionClass::export(‘PDO’) );vivii.$rc = new ReflectionClass(‘PDO’);  //创建ReflectionClass对象viii.var_dump( $rc->getProperties() );  //获取全部属性ix.var_dump( $rc->getMothods() );   //获取全部方法x.var_dump( $rc->getConstants() );  //获取全部常量
原创粉丝点击