数据库PDO日记(一)
今天来一起学习数据库的PDO相关知识。
[PDO]
PDO是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll、php_pgsql.dll、php_mssql.dll、php_sqlite.dll等等扩展来连接MySQL、PostgreSQL、MS SQL Server、SQLite,同样的,我们必须借助 ADOdb、PEAR::DB、PHPlib::DB之类的数据库抽象类来帮助我们,无比烦琐和低效,毕竟,php代码的效率怎么能够我们直接用C/C++写的扩展斜率高捏?所以嘛,PDO的出现是必然的,大家要平静学习的心态去接受使用,也许你会发现能够减少你不少功夫哦。
[安装]
首先就是打开你的php.ini 然后找到 Dynamic EXtensions; 下面有一堆类似 ;extension=php_mbstring.dll 的东西,这里就是PHP扩展加载的配置了,我们再最后面添加上我们PDO的扩展:
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll
各种PDO的驱动,能给加上的全给加上,然后重启Apach。可以调用phpinfo();查看PDO的一些信息。
===================》好了,现在我们来链接数据库吧。
$dsn = "mysql:host=localhost;dbname=bbs";
就是构造我们的DSN(数据源),看看里面的信息包括:数据库类型是mysql,主机地址是localhost,数据库名称是bbs,就这么几个信息。不同数据库的数据源构造方式是不一样的。只要修改mysql 成你想用的其他数据库就OK。
$db = new PDO($dsn, 'root', '');
初始化一个PDO对象,构造函数的参数第一个就是我们的数据源,第二个是连接数据库服务器的用户,第三个参数是密码。
<?php header('content-type:text/html;charset=utf-8'); $dsn="mysql:host=localhost;dbname=bbs"; $db=new PDO($dsn,"root",""); $a="aaa"; $b="bbb"; $count=$db->exec("insert into t1(name,text) values($a,$b)"); echo $count; $db=null; ?>查询操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO::query()主要是用于有记录结果返回的操作,特别是SELECT操作。
PDO::exec()主要是针对没有结果集合返回的操作,比如INSERT、UPDATE、DELETE等操作,它返回的结果是当前操作影响的列数。
PDO::prepare()主要是预处理操作,需要通过$rs->execute()来执行预处理里面的SQL语句,这个方法可以绑定参数,功能比较强大,不是本文能够简单说明白的,大家可以参考手册和其他文档。
=============================
获取结果集操作主要是:PDOStatement::fetchColumn()、PDOStatement::fetch()、PDOStatement::fetchALL()。
PDOStatement::fetchColumn()
是获取结果指定第一条记录的某个字段,缺省是第一个字段。
PDOStatement::fetch()
是用来获取一条记录,PDOStatement::fetchAll()是获取所有记录集到一个中,获取结果可以通过
PDOStatement::setFetchMode来设置需要结果集合的类型。
另外有两个周边的操作,一个是PDO::lastInsertId()和PDOStatement::rowCount()。
PDO::lastInsertId()是返回上次插入操作,主键列类型是自增的最后的自增ID。
PDOStatement::rowCount()主要是用于PDO::query()和PDO::prepare()进行DELETE、INSERT、UPDATE操作影响的结果集,对PDO::exec()方法和SELECT操作无效。
================》OK,可以试着自己写一些代码玩玩。
- 数据库PDO日记(一)
- 数据库PDO日记(二)
- 数据库PDO日记(二)
- PDO链接多种数据库,封装个PDO类
- SQLServer 恢复无日记文件数据库
- PHP PDO MySql 链接数据库公用文件i_conn.php
- pdo连接数据库
- pdo设置和读取数据库连接属性
- php数据库连接三种方法:PDO连接的两种方法与php一般连接的方法,以及防止乱码
- PDO连接数据库
- PDO数据库操作封装类
- VC数据库开发日记4:MFC框架下的全局变量的临时解决方案
- PDO 数据库相关操作
- SQL SERVER运维日记--收缩数据库
- pdo链接数据库的三种方式
- PHP使用PDO操作数据库笔记总结
- 全新的PDO数据库操作类php版(仅适用Mysql)
- JavaWeb日记——Shiro从数据库获取身份信息
- PHP后台技术-数据库对象技术PDO(一)
- 如何在PHP5中通过PDO连接SQLite3数据库