系统 WINXP+IIS+PHP5+MYSQL5
1. 安装
首先安装PEAR, 进入DOS命令行,进入PHP目录,运行go-pear,一切默认吧,安装完成.
然后安装PEAR PACKAGE
pear install db
pear install mdb2
pear install mdb2 (之后会有提示,安装MySQL模块)
pear install db_dataobject
安装完成后,安装包如下
C:\PHP>pear list
INSTALLED PACKAGES, CHANNEL PEAR.PHP.NET:
=========================================
PACKAGE VERSION STATE
Archive_Tar 1.3.2 stable
Console_Getopt 1.2.3 stable
DB 1.7.13 stable
DB_DataObject 1.8.8 stable
Date 1.4.7 stable
MDB2 2.4.1 stable
MDB2_Driver_mysql 1.4.1 stable
PEAR 1.6.1 stable
Structures_Graph 1.0.2 stable
到这里,DB_DataObject就算安装完成了.
2 快速入门
建立一个MySQL库
SQL文件如下:

Code
1
# SQL Manager 2007 Lite for MySQL 4.3.2.3
2
# ---------------------------------------
3
# Host : localhost
4
# Port : 3306
5
# Database : shj_cms
6
7
8
/**//*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
9
/**//*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
10
/**//*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
11
/**//*!40101 SET NAMES utf8 */;
12
13
SET FOREIGN_KEY_CHECKS=0;
14
15
CREATE DATABASE `shj_cms`
16
CHARACTER SET 'utf8'
17
COLLATE 'utf8_general_ci';
18
19
USE `shj_cms`;
20
21
#
22
# Structure for the `content` table :
23
#
24
25
DROP TABLE IF EXISTS `content`;
26
27
CREATE TABLE `content` (
28
`ContentId` INTEGER(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
29
`Title` VARCHAR(255) COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '信息标题',
30
`Author` VARCHAR(255) COLLATE utf8_general_ci DEFAULT NULL COMMENT '来源',
31
`PostDate` DATETIME DEFAULT NULL COMMENT '发布时间',
32
`Content` TEXT COLLATE utf8_general_ci COMMENT '信息内容',
33
`Views` INTEGER(11) NOT NULL DEFAULT '0' COMMENT '查看数',
34
`IsHot` TINYINT(1) DEFAULT '0' COMMENT '是否热门',
35
`IsIndex` TINYINT(1) DEFAULT '0' COMMENT '是否置顶',
36
`Type` INTEGER(8) NOT NULL COMMENT '信息所属分类',
37
`Editor` VARCHAR(200) COLLATE utf8_general_ci DEFAULT '' COMMENT '编辑名称',
38
PRIMARY KEY (`ContentId`),
39
UNIQUE KEY `ContentId` (`ContentId`)
40
41
)ENGINE=MyISAM
42
AUTO_INCREMENT=1 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
43
44
#
45
# Structure for the `type` table :
46
#
47
48
DROP TABLE IF EXISTS `type`;
49
50
CREATE TABLE `type` (
51
`TypeID` INTEGER(11) NOT NULL AUTO_INCREMENT COMMENT '信息分类类别ID',
52
`Name` VARCHAR(255) COLLATE utf8_general_ci DEFAULT NULL COMMENT '分类名称',
53
PRIMARY KEY (`TypeID`),
54
UNIQUE KEY `TypeID` (`TypeID`)
55
56
)ENGINE=MyISAM
57
AUTO_INCREMENT=3 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'
58
COMMENT='信息分类';
59
60
#
61
# Structure for the `user` table :
62
#
63
64
DROP TABLE IF EXISTS `user`;
65
66
CREATE TABLE `user` (
67
`UserID` INTEGER(11) NOT NULL AUTO_INCREMENT COMMENT '自增长ID',
68
`UserName` VARCHAR(20) COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户名',
69
`UserPass` CHAR(32) COLLATE utf8_general_ci NOT NULL DEFAULT '' COMMENT '用户密码',
70
`UserRole` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '用户角色',
71
`UserTrueName` VARCHAR(20) COLLATE utf8_general_ci DEFAULT NULL COMMENT '用户中文名',
72
PRIMARY KEY (`UserID`),
73
UNIQUE KEY `UserID` (`UserID`),
74
UNIQUE KEY `UserName` (`UserName`)
75
76
)ENGINE=MyISAM
77
AUTO_INCREMENT=2 CHARACTER SET 'utf8' COLLATE 'utf8_general_ci';
78
79
80
81
/**//*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
82
/**//*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
83
/**//*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
接下来就要生成数据库中的表对象
到C:\PHP\DB\scripts目录下 建立配置文件CreateTable.ini
[DB_DataObject]
database = mysql://root:pass@localhost/Shj_CMS
schema_location = E:\\web\\cms\\DataObjects
class_location = E:\\web\\cms\\DataObjects
require_prefix = E:\\web\\cms\\DataObjects
extends = DB_DataObject
generator_strip_schema = 1
class_prefix = DataObject_
debug = 5
extends_location = DB/DataObject.php
db_driver = MDB2
进入CMD到本目录,运行命令DB_DataObject_createTables.bat CreateTable.ini
就可以看到E:\\web\\cms\\DataObjects目录下已经生成了所有表的对象.
到E:\web\cms目录下建立文件config.ini 内容如下:
[DB_DataObject]
database = mysql://root:pass@localhost/Shj_CMS
schema_location = E:\web\cms\DataObjects
class_location = E:\web\cms\DataObjects
require_prefix = E:\web\cms\DataObjects
class_prefix = DataObject_
db_driver = MDB2
quote_identifiers = 1
debug = 0
建立文件db.php

Code
1
<?php
2
header('Content-Type:text/html; charset=utf-8');
3
4
require_once ('DataObjects/User.php');
5
require_once ('DataObjects/Type.php');
6
require_once ('DB/DataObject.php');
7
8
9
$config = parse_ini_file('include/config.ini', TRUE);
10
foreach($config as $class=>$values) {
11
$options = &PEAR::getStaticProperty($class, 'options');
12
$options = $values;
13
}
14
15
$user = new DataObject_User;
16
$user->get(1);
17
18
echo $user->UserTrueName;
19
20
$type = new DataObject_Type;
21
$type->get(1);
22
23
echo $type->Name;
24
25
?>
浏览本文件,大功告成!
关于utf8编码, 可以在对应的对象加入构造函数解决
function ClassName() {
$this->query('set names utf8');
}
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉
赠人玫瑰 手留余香
┉┉┉┉┉┉┉┉┉┉┉┉┉┉┉