PDO使用手册

PDO使用手册

PDO(PHP Data Object) 是 PHP 5 新出来的东西,在 PHP 6 都要出来的时候, PHP 6 只默认使用 PDO 来处理数据库,将把所有的数据库扩展移到了 PECL ,那么默认就是没有了我们喜爱的 php_mysql.dll 之类的了

PDO是啥】

PDOPHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dllphp_pgsql.dllphp_mssql.dllphp_sqlite.dll等等扩展来连接MySQLPostgreSQLMS SQL ServerSQLite,同样的,我们必须借助 ADOdbPEAR::DBPHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的.

 

1先找到配置文件php.ini中以下几项扩展

extension=php_pdo_firebird.dll

extension=php_pdo_mssql.dll

extension=php_pdo_mysql.dll

extension=php_pdo_oci.dll

extension=php_pdo_oci8.dll

extension=php_pdo_odbc.dll

extension=php_pdo_pgsql.dll

extension=php_pdo_sqlite.dll

 

2.使用PDO连接数据库(注意执行结束时注消当然不注消也不会出现错误):

$dbh = new PDO("mysql:host=localhost;dbname=$dbname", $user, $pwd);

 

$dbh = null; //(unset)

 

3.一些简单的执行(关键字:exec)

<?php

$dbname="myzjh";

$user="root";

$pwd="123456";

$dbh = new PDO("mysql:host=localhost;dbname=$dbname", $user, $pwd);

$result = $dbh->exec("INSERT INTO test SET name = 'seal',age='20'");

$result=$dbh->exec("delete from test where name='seal'");

$dbh = null;

?>

执行失败则返回0;

 

 

 

 

 

4.查询输出数据常用方法一:

 

$rs = $dbh->query("select * from test");

while($row = $rs->fetch()){

echo $row[name].$row[age];

}

 

5.查询数据方法二:

foreach ($dbh->query('SELECT * from test') as $row) {

      echo $row[name].$row[age];

   }

6.查询数据方法三:

$stmt = $dbh->prepare("select * from test");

if ($stmt->execute()) {

while ($row = $stmt->fetch()) {

    print_r($row);

}

}

 

6.1 PDO::prepare 别类查询方式(execute功能很强大):

$stmt = $dbh->prepare("select * from test where name = ?");

if ($stmt->execute(array("zjh"))) {   //zjh为查询的条件

while ($row = $stmt->fetch()) {

    print_r($row);

}

}

 

7.执行的别种方式(也是用execute)

$stmt = $dbh->prepare("insert into test (name, age) values (?, ?)"); //and updata

$stmt->bindParam(1, $name);

$stmt->bindParam(2, $age);

$name = 'one';    // insert one row

$age = 1;

$stmt->execute();

$name = 'two'; // insert another row with different values

$age = 2;

$stmt->execute();

 

关键字总结

查询操作主要是

PDO::query(): 主要是用于有记录结果返回的操作,特别是SELECT操作

PDO::exec(): 主要是针对没有结果集合返回的操作,比如INSERTUPDATEDELETE等操作,它返回的结果是当前操作影响的列数

PDO::prepare(): 主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大

 

获取结果集操作主要是:

PDOStatement::fetchColumn(): 是获取结果指定第一条记录的某个字段,缺省是第一个字段

PDOStatement::fetch():是用来获取一条记录

PDOStatement::fetchALL():是获取所有记录集到一个中,获取结果可以通过PDOStatement::setFetchMode来设置需要结果集合的类型。

 

另外有两个周边的操作,

PDO::lastInsertId():是返回上次插入操作,主键列类型是自增的最后的自增ID

PDOStatement::rowCount() :主要是用于PDO::query()PDO::prepare()进行DELETEINSERTUPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。

 

完整的例子可看PDO.php

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值