PHP之PDO
POD是这3个单词:PHP Data Object (PHP数据对象)
PDO是php操作数据库的系统内部类
pdo中常用的两个类:
POD类:代表能够对数据库进行各种操作(执行语句)的一个类。
PODStatemet类:代表“结果集”,其实是PDO对象执行一条查询语句(select语句)成功后的结果。
我们今天主要就是两个类的使用。
要使用pdo需要在php.ini配置文件中,打开对应的扩展模块:php_pdo_mysql.dll
pdo连接mysql数据库
$pdo=new pdo("数据库连接信息dsn",'用户名,'密码',‘连接选项‘)
DSN(数据源名称)的形式对不同的数据库所有不同,mysql数据库的dns形式为:
mysql:host=数据库服务器名或ip地址;port=端口号;dbname=数据库名;
1.exec( $sql ) :可以执行一条增删改语句,返回受影行数;
2.getOneRow( $sql ):可以执行一条查询语句,返回一行数据(是一个一维数组);
3.getMoreRow($sql):可以执行一条查询语句,返回多行数据(二维数组);
4.getOneData($sql):可以执行一条查询语句,返回一个数据(是一个标量数据);
PDOstateMent对象:
该对象是pdo对象使用query()方法执行一条查询语句(比如select语句)成功后,返回的结果对象,其实就是查询到的数据集(结果集)。
fetch():返回一行,结果是一个一维数组
fetchAll():返回多行,结果是一个二维数组;
fetchColumn():返回一列,结果是一个标量数据;
pdo中的预处理:
对要执行的sql语句,先进行“预编译”,以预先对语句进行分析和优化。其后可以根据需要,对编译过的语句设定所需要的参数并执行它,更快,更安全。
对sql语句要预处理的值设置占位符或者:命名参数
用pdo->prepare(预处理sql语句) 得到pdostatement对象
在用pdostatement->bindValue(占位符或命名参数,对应的数据)
然后用pdostatement->execute()执行,得到结果是true或false
pdo中的事务:
事务:使用多条增删改语句,执行起来像一条语句一样,如果都执行成功的话,才会读写数据库,有一条失败,则执行回滚操作,都不执行读写操作。
$pdo->beginTransation()开启事务
可以对执行的sql语句进行判断结果,执行commit提交操作或者执行rollback回滚操作