话说pdo技术将在php6全面使用,看来这个技术一定有它的非同凡响之处,看了看果真如此,学习了一下,并记录了笔记,不过乱的不堪一击~\(≧▽≦)/~啦啦啦<?php
//使用pdo之前一定要配置好扩展和php.ini
try{
//$pdo=new PDO("mysql:host=localhost;dbname=pd","root","",array(PDO::ATTR_AUTOCOMMIT=>0));//tem 连接数据库方法dsn,以及处理出错显示方法 当改变数据库只需要改变这个连接就可以了 array()参数也可以用下面这条语句实现
//设置错误报告模式
//$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);//可以用$pdo->errorInfo()输出错误信息但捕获异常不适用
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e)
{
echo '连接失败'.$e->getMessage();//获取异常信息
exit();
}
//sql exec-->update,delete,insert,other; query-->有结果集的,select; prepare
// echo $pdo->exec("insert into test(title,content) values('wangwu','thank you!')") ;//返回影响的行数 1
//设置错误报告模式
//echo $pdo->errorCode().'<br>';
//print_r($pdo->errorInfo());//A
//设置常量
//echo $pdo->lastInsertId();
//$arr=$pdo->query("select * from test");//暂定处理结果集
/*
事务处理:
以下任何一个环节出错,执行语句所有的都不执行
张三从李四那买了一台2000元电脑
从张三扣除2000
向李四加入2000
从商品中减少一台电脑
MyIsAM InnoDB 两者区别 :后者类型才有事务处理功能,如果不需要事务处理还是用MyIsAM合适
*/
// try{
// $pdo->beginTransaction();
// $price=50;
// $affect_rows=$pdo->exec("update zhanghao set price=price-{$price} where id='1'") or die($pdo->errorInfo());
// if(!$affect_rows)
// throw new PDOException("张三转出失败");
// $affect_rows=$pdo->exec("update zhanghao set price=price+{$price} where id='2'");
// if(!$affect_rows)
// throw new PDOException("向李四转入失败");
// echo "交易成功";
// $pdo->commit();
// }catch(PDOException $e){
// echo $e->getMessage();
// $pdo->rollBack();
// }
// //$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT,1);//
//预处理 处理结果集、
/*
preparment类相比exec,query效率更高,即使是单个语句;安全; 推荐使用
*/
/*pdo中两种占位符号
? 参数 ----索引数组,按索引顺序使用
名字参数 -----关联数组,按名称使用,和顺序无关
*/
$pdo=new PDO("mysql:host=localhost;dbname=pd","root","");
//$stmt=$pdo->prepare("insert into test(title,content) values(?,?)");//所有sql都可以执行 一个返回对象
//准备好了一条语句并入到服务器端,也已经编译过来了,就差为他分配数据过来
// $stmt=$pdo->prepare("insert into test(title,content) values(:title,:content)");//update 其他也是一样
// // //绑定参数
// $stmt->bindParam(":content",$content);//引用类型传值
// $stmt->bindParam(":title",$title);
// $title='God';
// $content='I am fine!';
//
// //?形式
//// $stmt->bindParam(1,$title);//引用类型传值
//// $stmt->bindParam(2,$content);
//// $title='ljf';
//// $content='welcome!';
//
//
// if($stmt->execute())
// { echo "执行成功";echo $pdo->lastInsertId();}
// else
// echo "执行失败";
//
// $stmt->execute(array(":title"=>"oh",":content"=>"you are sexy"));
//如果是表单直接$stmt->execute($_POST);
// $stmt->execute(array("look","it's a beauty"));
// 获取结果
$stmt=$pdo->prepare("select id,title,content from test where id>:id order by id desc");
$stmt->execute(array(":id"=>2));//stmp是结果集的对象
//// $stmt->setFetchMode(PDO::FETCH_ASSOC);//设置返回数组形式
// while($row=$stmt->fetch(PDO::FETCH_ASSOC))//返回一条查询结果返回数组的形式:PDO::FETCH_NUM 索引形式,FETCH_ASSOC 关联数组形式....both默认---可以设置后就不用写了
// print_r($row).'<br>';
$data=$stmt->fetchAll(PDO::FETCH_ASSOC);
echo '<pre>';
print_r($data);
echo '</pre>';
//总记录数,列的信息,很多很多....
echo $stmt->rowCount();//总记录数
?>
pdo 数据库操作
最新推荐文章于 2023-03-17 03:30:00 发布