PHP基础语法学习要点7
PDO
它是PHP数据对象的缩写,它是数据库抽象层。其实你可以简单的理解为PHP连接MySQL的一种方法。
使用步骤:
-
链接数据库(创建PDO对象)
new PDO($dsn, $userName, $password)
$dsn
:data source name,放置数据库源的信息,主机位置、库名、连接哪种驱动。mysql的DSN:
mysql:host=连接的主机地址;port=端口号;dbname=数据库名;charset=utf8
注意:如果试图连接到请求的数据库失败,则PDO::__construct()方法将会自动抛出一个PDO的异常。你可以使用异常处理来进行解决。
-
准备SQL语句。---------将SQL语句写为一个字符串。
-
执行SQL语句。
-
exec()
,用来执行有影响行数的语句,通常用于update\delete\insert。该方法将会返回具体影响的行数。 -
query()
,用来执行有结果集的语句,通常用于select。他将会返回一个STAT对象
-
-
处理结果
-
有影响行数的
-
lastInsertId()
,来获取最后的ID。
-
-
有结果集的。
-
fetch()
,用来一次获得一条数据,返回一个数组(关联、索引都会返回),每获得一个就往下走一个,走到最后返回false。(这个时候就应该使用的是STAT这个对象)可以通过一些系统已经定义的常量来设置
fetch()
这个方法返回的数据是什么。-
PDO::FETCH_BOTH
,返回一个关联和索引的数组(默认) -
PDO::FETCH_ASSOC
,返回一个关联数组,数组的下标为字段名。 -
PDO::FETCH_NUM
,返回一个索引数组。
-
-
rowcount()
,用来获得stat对象中结果的行数。
-
-
PDO的事务处理
处理流程:
-
关闭自动提交。
setAttribute()
,设置PDO的一些选项。-
PDO::ATTR_AUTOCOMMIT
,如果值为0表示关闭自动提交,为1表示开启自动提交。
-
-
开启事务处理
beginTransaction(void)
,启动一个事务处理的。 -
如果有异常就抛出异常给出提示然后再回滚。
rollback()
回滚到没有执行事务之前。注意:
-
PDOException代表的是由一个PDO内部产生的错误,在自己的代码中不应该抛出PDOException这个异常你应该抛出的是Exception或自己定义的其他的异常类。
-
-
如果没有异常就直接提交。
commit()
,提交一个事务注意:
-
如果当你提交一个事务后会自动的进入到自动提交模式。
-