pdo:
php data object:php的数据对象。
pdo是数据库操作工具类!
1,它能操作很多种数据库,比如mysql,oracle,syba。。。。
2,它具有操作数据库的更多的功能,比如事务。
3,它能操作各种数据,却有一致语法:即使用pdo,无需考虑不同数据库的sql语句的不同细节写法。
4,带错误处理!
pdo其实一个“类”,我们用的时候,就是new一个pdo对象出来。
在php代码中,操作mysql数据库的基本需求和结果:
1,连接数据库,得到“连接资源”;
2,执行各种sql语句,得到布尔值,或“结果集”;
3,对结果集数据,进行“取用”(通常就是遍历,fetch….)
pdo系统的逻辑结构:
php脚本->pdo数据对象->pdo mysql引擎 ->mysql数据库 ->pdo oracle引擎->oracle数据库 ->pdo 其他引擎 -&g分类别是什么意思t;其他数据库
要想使用(操作)不同的数据库,就需要去php.ini中,打开相应的pdo模块(组件),比如:
并重启apache。
1,连接数据库:
$dsn = “mysql:host=服务器地址/名称;port=端口号;dbname=数据库名”;
$options = array(pdo::mysql_attr_init_command=>’t names utf8’);
$pdo = new pdo($dsn, “用户名”, “密码”, $options);
dsn: data source name ,数据源名称,
2,执行sql语句:
$result1 = $pdo->exec( “增删改语句” ); //
//返回:
数字:表示该语句影响的行数。
fal:表示执行失败。
$result2 = $pdo->query( “各种sql语句” );//习惯上query()方法用于执行lect这种有数据返回的语句
$result2 结果有:
执行失败: fal:
执行成功: 返回结果集——pdo结果集,通常称为p前任2备胎反击战dostatement。
此结果集还需要进一步处理,就像mysql_query()返回结果一样!
3,断开连接——如果需要。
$pdo = null; //就是销毁对象而已。
$pdo->lastinrtid(); 获得最后一次自增长的id值
$pdo->begintransaction(); 开始一个事务
$pdo->commit() 提交一个事务
$pdo->rollback(); 回滚一个事务
$pdo->tattribute(属性名,属性值);
在php代码中,要想使用事务,可以这样:
$pdo->begintransaction();$pdo->exec( sql语句1);$pdo->exec( sql语句2);。。。。if(如果没有错误){ $pdo->commit();}el{ 梦想的作文题目$pdo->rollback();}
pdo发生的错误,有两种处理模式:
静默模式:
就是发生错误后,并不产生错误提示或输出,而是需要去“人为”通过代码去获取,并判断。
比如:
$pdo -> exec( $sql ); //这条语句,可能出错,也可能不出错!可以做后续判断:$code = $pdo->errorcode(); //获取前一次执行sql语句的“错误代号”,如果没有错误,就是0if($code == 0){ echo “执行成功”;} el { $info = $pdo->errorinfo(); //获取错误信息,但这里结果是一个数组,其中下标为2的就是错误提示内容 echo “失败,请参考错误提示:” . $info[2];}
异常模式:
是一种特别的语法形式,类似如下:
try{//这里可以用p考虑英语do执行sql语句//这个范围的语句,一旦出错,就会立即进入catach范围!$pdo -> exec (“update ur_list t ur_pass=’456’ where id=16”);}catch(exception $e){ //如果try范围的语句发生错误,就会执行这个catch范围的语句,否则就不会执行//其中,$e是一个记录的错误信息的“对象”,跟$pdo->errorinfo()类似!处理如下:echo “失败,请参考错误提示:” . $e->getmessage();}后续代码。。。。
当使用pdo对象的query()方法,执行一条有返回数据的语句(比如lect语句,desc语句,show语句),如果执行成功,返回的就是“pdo结果集对象”。
基本上,可以理解为:该对象中,“存放”了很多数据,我们需要去“取出来”。
对比:
php的原始mysql函数:$result = mysql_qury( “lect …..”);
pdo的处理方法: $result = $pdo->query( “lect ……”);
他们本质上一样!
pdo的结果集对象的常用方法:
$stmt = $pdo->query(“lect ...... ”);//这是获得结果集对象$stmt->rowcount() ; //行数$stmt->columncount() ; //列数$stmt->fetch( [返回类型] ); //取出一行数据!结果是一个一维数组
返回类型常用的有:
pdo::fetch_assoc:返回关联数组
pdo::fetch_num:返回索引数组
pdo::fetch_both:返回前二者皆有的数组,这是默认值
pdo::fetch_obj:返回对象
$stmt->fetchall([返回类型]);//取出所有数据,结果是一个二维数组$stmt->fetchcolumn( [$i] );//可以取出指定的第i个会议记录内容怎么写范文列的数据(默认是0)$stmt->errorcode(); //静默模式下,获得出错代号$stmt->errorinfo();//静默模式下,获得出错信息,是一个数组$stmt->clocursor();关闭结果集,清理资源。
我的博客链接:
本文发布于:2023-04-07 17:56:42,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/8dfecf6cf8df11ffb4f9c0aa0d72efbf.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP中的PDO数据对象.doc
本文 PDF 下载地址:PHP中的PDO数据对象.pdf
留言与评论(共有 0 条评论) |