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() ); //获取全部常量
阅读全文
1 0
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- 001
- Idea使用整理
- 数据库设计一句话体悟(react native)
- openlayers 3加载GeoServer发布的wfs类型服务
- tensorflow_cookbook:Ch 1: Getting Started with TensorFlow_(1,2)
- 线程常用的方法--Java基础066
- 001
- AngularJS $on、$emit和$broadcast的使用
- SQL case when的使用实例
- maven打包问题
- solr的DataImportHandler的配置
- ios开发 判断当前ViewController是push还是present的方式显示的
- 欢迎使用CSDN-markdown编辑器
- 直方图均衡化原理及实现
- 剑指offer 面试题10 二进制中 1 的个数