时间:2021-07-01 10:21:17 帮助过:17人阅读
补充:
1 echo $conn->getAttribute(PDO::ATTR_SERVER_VERSION);//服务器数据库版本 2 echo $conn->getAttribute(PDO::ATTR_CLIENT_VERSION);//客户端数据库版本
设置数据库操作时错误模式:
1 /* 2 PDO::ATTR_ERRMODE:错误报告。 3 4 1. PDO::ERRMODE_SILENT: 仅设置错误代码。 5 6 2. PDO::ERRMODE_WARNING: 引发 E_WARNING(警告) 错误 7 8 3. PDO::ERRMODE_EXCEPTION: 抛出 exceptions 异常。catch (PDOException $ex)捕获 9 10 */ 11 //获取到当前设置的错误模式 12 echo $conn->getAttribute(PDO::ATTR_ERRMODE); 13 //设置为警告模式,如果出现数据库操作问题,会产生警告,推荐 14 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING); 15 //任意测试 16 $conn->exec("delete from xxx");
数据库操作:
1、exec(“标准sql语句“) 用来处理非结果集的
//如insert、update、delete、create,返回为影响行数
2、query(“标准sql语句“,模式取值) 可用来处理所有语句
//返回结果集(select,desc),返回空(insert、updata……)
获取结果的模式:
1 //查询并全部输出小例子 2 $xx=$conn->query("select * from c",PDO::FETCH_ASSOC); 3 //一行一行拿数据 4 while($rowx=$xx->fetch()){ 5 //输出 6 print_r($rowx); 7 }
事物处理:
开始事物->提交事物
1 //设置错误模式为抛出异常 2 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 3 //开始事务 4 $conn->beginTransaction(); 5 try{ 6 $con=$conn->exec("update c set CN=‘222222‘"); 7 $con=$conn->exec("update c sext PCNO=‘222222222222‘"); 8 if($con<=0){ 9 //抛出异常 10 throw new PDOException("哇,我自己抛出异常"); 11 } 12 //提交事务 13 $conn->commit(); 14 15 }catch(PDOException $ee){ 16 echo "-----------------------".$ee; 17 //事务内部异常,操作全部撤销 18 $conn->rollBack(); 19 }
预处理:
更新实现列子
1 //设置错误模式为抛出异常 2 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 3 4 try{ 5 //预处理SQL语句 6 //?号占位符,必须从1下标开始 7 //CNO=:name1 ,绑定参数时bindParam(":name1",$valuex);,名字不可相同 8 $res=$conn->prepare("update c set CN=‘dongxiaodong1‘ where CNO=?"); 9 10 //执行第一次 11 //绑定参数1,参数是引用,所以需要是变量 12 //参数三,确定类型:PDO::PARAM_INT,PDO::PARAM_STR等 13 $valuex="C1"; 14 $res->bindParam(1,$valuex); 15 //执行处理1 16 $res->execute(); 17 //若两次值相同,则影响行数为0 18 echo "影响的行数:".$res->rowCount(); 19 20 //执行第二次 21 $valuex="C3"; 22 $res->bindParam(1,$valuex); 23 $res->execute(); 24 25 //执行第三次 26 $res->execute(array("C4")); 27 28 }catch(PDOException $ee){ 29 echo "!!!!!!!!".$ee; 30 31 }
查询实现列子
1 //设置错误模式为抛出异常 2 $conn->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); 3 4 try{ 5 6 //预处理SQL语句 7 //?号占位符,必须从1下标开始 8 //CNO=:name1 ,绑定参数时bindParam(":name1",$valuex);,名字不可相同 9 $res=$conn->prepare("select *from c where CN=:nam"); 10 11 //设置全局fetch获取数据模式,模式参考上表,范围$res以下 12 //$res->setFetchMode(PDO::FETCH_NUM); 13 14 $res->execute(array("nam"=>"dongxiaodong")); 15 16 echo "查询到的总行数为:".$res->rowCount(); 17 18 //获取单行:fetch(参数1),参数1可以更改返回模式,参考上面的模式表格 19 //获取全部:fetchall(参数1) 20 print_r($res->fetchall(PDO::FETCH_NUM)); 21 22 }catch(PDOException $ee){ 23 echo "!!!!!!!!!".$ee; 24 25 }
PHP数据库的操作(PDO)
标签:下标 使用 cno width 基本 exe 存在 返回结果 服务