PHP中的PDO

mysql中具有很多扩张,mysql扩展、mydqli扩展、pdo_mysql扩展等.实现的功能都是相同的,pdo_mysql在高版本的PHP中推荐使用。

PHP数据库对象(PDO)扩展为PHP范文数据库定义了一个轻量级的一致接口。它提供了一个数据访问抽象层,不管使用哪种数据库,都可以使用想听的方法来获取数据。

实例化

$pdo=new PDO();

PDO::__construct(string $dsn [,string $username [,string $password [,array $driver_options]]]);因此实例化PDO对象时需要参数。

$dsn:数据源名称,包含了请求连接到数据库的信息。

        $dsn='mysql:host=127.0.0.1;port=3306;dbname=数据库名称';

        前缀mysql:用于说明数据库服务器的类型。

$username:用户名.

$password:用户密码.

$driver_option:驱动选项-->对于当前数据库服务器一些特定的初始化工作。

        $driver_option=array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set naames utf8');

<?php
	$username='root';
	$password='root';
	$dsn='mysql:host=localhost;dbname=study;port=3306';
	$driver_option=array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names utf8');
	$pdo=new PDO($dsn,$username,$password,$driver_option);
	var_dump($pdo);

返回结果为一个对象。和mysql_connect()(返回资源resource)不同,

执行sql语句

使用PDO对象中的query()方法。

        

<?php
	echo '<pre>';
	$username='root';
	$password='root';
	$dsn='mysql:host=localhost;dbname=study;port=3306';
	$driver_option=array(PDO::MYSQL_ATTR_INIT_COMMAND=>'set names utf8');
	$pdo=new PDO($dsn,$username,$password,$driver_option);
	var_dump($pdo);
	$sql='show databases';
	$result=$pdo->query($sql);
	var_dump($result);

此处结果与mysql_query()有所不同,mysql_query()产生的是一个结果集,而pdo由于是封装后的,在这里产生的是一个PDOStatement对象。

得到结果的处理

mysql类中使用mysql_fetch_arr();将结果集转为数组。

在PDO中可以使用fetchAll()来达到相同的功能。

用上面的结果:

$result->fetchAll();//$result是一个PDOStatement对象。

PDO对象的常用方法

errorInfo:sql执行过程失败时,产生错误信息。该信息是以数组的形式表现出来的;

errorCode:sql执行失败时,产生错误代码。

$sql='sho databases';//此处故意写错。(在已连接上数据库的前提下)
	if(!$result=$pdo->query($sql)){
		var_dump($pdo->errorInfo());
                echo '<br/>'
		var_dump($pdo->errorCode());
	}


beginTransaction():开启事务

rollback():回滚事务

commit():提交事务

inTransaction():判断是否处于事务中

lastInsertID():最后形成的auto_increment字段的值

Exec():执行sql的方法。与query()不同,Exec()返回值为整型。表示当前执行sql所影响的记录数。

                    因此query()适合用于查询类:show、select、desc等。

                    Exec()适合用于非查询类:insert、delete、update等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值