找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1658|回复: 0
打印 上一主题 下一主题

Pear DB 新手入门指南教程第1/3页

[复制链接]

2647

主题

2647

帖子

7881

积分

论坛元老

Rank: 8Rank: 8

积分
7881
跳转到指定楼层
楼主
发表于 2018-2-14 09:22:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

            
[B][/B][B][/B]
1. 简介这是一部指导我们如何使用Pear DB扩展。Pear DB,提供这样一系列的类:
n 数据库抽象
n 高级错误处理机制
n 以及其它
2. 下载、安装Pear
由于现在Pear项目仍处于紧锣密鼓的开发之中,所以得到它的最好办法就是从CVS获得(Pear DB发行包已经跟随PHP4.0.6以后版本捆绑发布)。所以,我们只需要把Pear的根目录放到php.ini配置文件include_path中。也可以通过这样设置:[I]_set('include_path', '/pear_base_dir')[/I].
以下是strp by step示例:
[TR]
[TD]存放Pear的目录:[B]# cd /usr/local/lib[/B]用“phpfi“口令登录:[B]# cvs -d :pserver:cvsread@cvs.php.net:/repository login[/B]用以下命令得到所有的pear文件,同时也可以用来更新已经下载的文件。其他的参数有:"today", "last month",等。我推荐用"last week"参数,因为一般bugs的提交和修改都是每周一次。 [B]# cvs -d :pserver:cvsread@cvs.php.net:/repository export -D "last week" php4/pear[/B]编辑php.ini文件加上下面一段在include_path处:[I] /usr/local/lib/php4/pear[/I] 如果没有修改的权限,可以通过这条语句在代码中实现: [I]ini_set('include_path', 'path_to_pear');[/I][/TD][/TR]

[U]
[color=]获得PHP CVS的完全文档
[/U]

注意Pear DB必需PHP版本4.0.4以上,而在Pear中的一些其他包如:XML Parser of the pear installer script需要PHP4.0.5以上版本。

[B]3.        [/B][B]使用[/B][B]Pear DB[/B][B][/B]
3.1         连接,断开数据库
[TR]
[TD]
// The pear base directory must be in your include_path
require_once 'DB.php';
$user = 'foo';
$pass = 'bar';
$host = 'localhost';
$db_name = 'clients_db';
// Data Source Name: This is the universal connection string
$dsn = "mysql://$user\"\"pass@$host/$db_name";
// DB::connect will return a Pear DB object on success
// or a Pear DB Error object on error
// You can also set to TRUE the second param
// if you want a persistent connection:
// $db = DB::connect($dsn, true);
$db = DB::connect($dsn);
// With DB::isError you can differentiate between an error or
// a valid connection.
if (DB::isError($db)) {
         die ($db->getMessage());
}
....
// You can disconnect from the database with:
$db->disconnect();
?> [/TD][/TR]

数据源(上例中的[I]$dsn[/I] 参数)有以下允许的格式:(从Pear/DB.php的parseDSN方法复制而来)
[TR]
[TD]      *  phptype: Database backend used in PHP (mysql, odbc etc.)
      *  dbsyntax: Database used with regards to SQL syntax etc.
      *  protocol: Communication protocol to use (tcp, unix etc.)
      *  hostspec: Host specification (hostname[:port])
      *  database: Database to use on the DBMS server
      *  username: User name for login
      *  password: Password for login
      *
      * The format of the supplied DSN is in its fullest form:
      *
      *  phptype(dbsyntax)://username:password@protocol+hostspec/database
      *
      * Most variations are allowed:
      *
      *  phptype://username:password@protocol+hostspec:110//usr/db_file.db
      *  phptype://username:password@hostspec/database_name
      *  phptype://username:password@hostspec
      *  phptype://username@hostspec
      *  phptype://hostspec/database
      *  phptype://hostspec
      *  phptype(dbsyntax)
      *  phptype[/TD][/TR]

现在支持的数据库有 (在 [I]phptype[/I] DSN 部分):
[TR]
[TD] mysql  -> MySQL
pgsql  -> PostgreSQL
ibase  -> InterBase
msql   -> Mini SQL
mssql  -> Microsoft SQL Server
oci8   -> Oracle 7/8/8i
odbc   -> ODBC (Open Database Connectivity)
sybase -> SyBase
ifx    -> Informix
fbsql  -> FrontBase[/TD][/TR]

注意并不是所有数据库特征都支持,可以从[I][/I][I]根目录[/I][I]>/DB/STATUS[/I] 得到详细的清单。
3.2         执行数据库
[TR]
[TD]
// Once you have a valid DB object
...
$sql = "select * from clients";
// If the query is a "SELECT", $db->query will return
// a DB Result object on success.
// Else it simply will return a DB_OK
// On failure it will return a DB Error object.
$result = $db->query($sql);
// Always check that $result is not an error
if (DB::isError($result)) {
         die ($result->getMessage());
}
....
?> [/TD][/TR]


3.3         获得select的数据
            1[url=]2[/url][url=]3[/url][url=]下一页[/url][url=]阅读全文[/url]
            
        
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户反馈
客户端