·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP 认识PDO数据库抽象层

PHP 认识PDO数据库抽象层

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php 认识PDO数据库抽象层

PDO全称是PHP Data Object(PHP数据对象),是PHP连接数据库中的一个扩展,目前得到普遍使用。PDO主要解决的问题是为不同的数据库提供一个统一的数据访问接口和操作层。为实现系统在跨数据库平台的开发及迁移等问题上提供了较好的解决方案。PDO 对象的获取在PDO中,要建立与数据库的连接需要实例化PDO的构造函数。PDO构造函数语法如下:PDO::__construct ( string $dsn [, string $username [, string $passWord [, array $driver_options ]]] )通过PDO构造函数来连接数据库:

 1 <?php 2 $dbms = 'MySQL'; 3 $dbName = 'dormitory'; 4 $host = 'localhost'; 5 $user = 'root'; 6 $pwd = ''; 7 $dsn = "$dbms:host=$host;dbname=$dbName"; 8 try { 9     $pdo = new PDO($dsn, $user, $pwd);10     echo '连接成功!';11 } catch (Exception $e) {12     echo $e->getMessage() . "<br>";13 }14 ?>

3种方法执行sql语句执行sql语句的方法有:exec(),query(),PRepare()+execute()。1、exec()方法用于执行input,delete,update语句,返回值为受影响的行数;2、query()方法用于执行select语句,返回值为一个二位数组;3、预处理语句prepare()+execute(),可以用于执行input,delete,update,select语句,可以把预处理语句看成想要运行的SQL的一种编译过的模板,他可以使用变量参数进行定制,做到查询时只需解析一次就可以执行多次;如果应用程序只使用预处理语句,可以确保不会发生SQL注入。PDO::prepare()返回值为一个PDOStatement对象,对象的内容为prepare()方法里面的参数;PDO::execute(),检查sql是否可执行,返回值为一个boolean类型。从预处理语句的返回值也可以看出,他并没有真正的执行sql语句,而是检查sql的正确性,准备好执行的状态,等到需要用到结果集的时候再执行。

 1 <?php 2             include_once './pdo_db_conn.php'; 3             try { 4                 $query = "select * from building"; 5 //                $result = $pdo->query($query);//结果为一个二维数组 6                 $result = $pdo->prepare($query); 7                 var_dump($result); 8                 $flag = $result->execute(); 9                 var_dump($flag);10             } catch (Exception $e) {11                 echo $e->getMessage();12             }13             ?>

返回值:

object(PDOStatement)[2] public 'queryString' => string 'select * from building' (length=22)boolean true

3种方法获取结果集获取结果集的方法有fetch(),fetchAll(),fetchColumn();fetch()方法获取结果集中的下一行,是一个数组;fetchAll()方法获取结果集中的所有行,是一个数组;fetchColumn()方法获取结果集中下一行指定的列的值。三个方法的调用对象类型为PDOStatement对象类型,一般是在预处理语句之后执行3种方法捕获sql语句中的错误的方式当执行sql语句出现错误是,可以根据设置的错误提示方式,来决定显示错误的方法。错误提示方式有:1、PDO::ERRMODE_SILENT默认方式,出现错误时程序继续执行,无错误提示。2、PDO::ERRMODE_WARNING出现错误时会继续执行,错误的部分会提示警告信息。3、PDO::ERRMODE_EXCEPTION出现错误时不会继续执行,错误的部分会提示异常信息。2种方法获取程序错误信息当执行sql语句出现错误是(访问数据库部分,对结果集的遍历错误不会提示),可以通过errorCode(),errorInfo()两个方法在后台输出错误信息,当sql语句是通过预编译执行的,这两个方法不适用。当在程序中调用errorCode()方法后,返回值为00000(5个0)时,表示程序没有错误,但返回其他5个字符时,表示程序是有错误的,这时可以通过调用errorInfo()方法来查看具体错误的信息。