pdo:php data object(数据抽象层)
链接操作:1.dsn=(mysql:host=localhost;port=3306;dbname=数据库名;charset=utf8);
sqlite:文件路径】
2.new PDO($dsn,user,pass)
设置错误模式:PDO::setAttribute PDO::getAttribute
(1)PDO::ATTR_CASE 描述:强制列名为指定的大小写
【
PDO::CASE_LOWER :强制列名小写
PDO::CASE_NATURAL:保留数据库驱动返回的列名
PDO::CASE_UPPER:强制列名大写
】
(2)PDO::ATTR_ERRMODE:描述。错误报告
【
PDO::ERRMODE_SILENT:仅报告错误号
PDO::ERRMODE_WARNING:带错误信息
PDO::ERRMODE_EXCEPTION:抛出exception异常
】
常规操作:
【
$pdo->query()
$pdo->errorCode():获取跟数据库句柄上一次操作相关的sqlstate
$pdo->errorInfo():获取上一次操作的错误信息
$pdo->getAvilableDrivers():返回一个可用驱动的数组
$pdo->quote();将敏感数据转义;使用他,不需要拼接引号了
】
PDOException:
Exception−>getMessage();错误信息
Exception->getCode();错误代码
exception−>getLine();错误行号
Exception->getFile();错误文件
Exception−>getTrace();获取异常追踪信息
Exception->getTraceAsString();获取字符串类型的异常追踪信息
事务处理:
数据库原生事务处理:
begin:事务开启
commit:提交
rollback:回滚
PDO事务处理
pdo−>beginTransaction:启动一个事务
pdo->commit:提交一个事务
pdo−>rollBack:回滚事务
pdo->inTransaction();检测是否在一个事务内
PDOStatement:
pdo−>prepare:发送预处理
pdo->query:执行
以上都返回statement对象
1.预处理:
作用:提升性能
所谓的预处理,就是预先发送sql语句的(增删改查)的结构到数据库预先处理
$pdo->prepare();
statement对象:
【
stmt−>debugDumpParms():打印一条Sql预处理命令
stmt->columnCount():返回结果集中的列数
stmt−>execute(
array):增删改查都可以
stmt−>bindColumn(序号,
vat):绑定列名
stmt−>closeCursor():关闭游标(类似关闭连接)
stntOne->setFetchMode(mode):[
设置默认的获取模式:
PDO::FETCH_NUM:索引
PDO::FETCH_OBJ
PDO::FETCH_CLASS
以上2个返回对象
PDO::FETCH_BOTH:混合
PDO::FETCH_ASSOC:关联
]
stmt−>rowCount():受影响行
stmt->fetchObject():获取下一行并作为一个对象返回
】