创建数据库
创建一个名为example的数据库,它包含一个名为User的表,不必担心模式,稍后我们会创建.
配置PEAR::DB_DataObject
要构建数据对象,创建下面的文件
configDB.php
<?php
require_once 'DB/DataObject.php';
$config = parse_ini_file('example.ini',TRUE);
foreach($config as $class=>$values) {
$options = &PEAR::getStaticProperty($class,'options');
$options = $values;
}
?>
此脚本基于example配置文件中的值创建一个到数据库的连接,显示如下.
example.ini
[DB_DataObject]
database = mysql://root:@localhost/example
schema_location = /dataobjects/schema/
class_location = /dataobjects/
require_prefix = /dataobjects/
class_prefix = DataObjects_
extends_location = DB/DataObject.php
extends = DB_DataObject
自动构建数据库模式
包含两个过程,构建数据库的对象-关系映射,和从example数据库user表中自动创建一个类.在表中的所有字段
名将成为类成员变量.
创建适当的模式:
C:\PHP\PEAR\DB\DataObject>C:\PHP\php.exe createTables.php \
C:\dataobjects\example.ini
这将生成User.php文件:
<?php
/**
* Table Definition for user
* www.knowsky.com
*/
require_once 'DB/DataObject.php';
class DataObjects_User extends DB_DataObject
{
###START_AUTOCODE
/* the code below is auto generated do not remove the above tag */
var $__table = 'user'; // table name
var $user_Id; // int(11) not_null primary_key auto_increment
var $first_Name; // string(30) not_null
var $last_Name; // string(40) not_null
var $email; // string(100) not_null
/* Static get */
function staticGet($k,$v=NULL) {
return DB_DataObject::staticGet('DataObjects_User',$k,$v);
}
/* the code above is auto generated do not remove the tag below */
###END_AUTOCODE
}
?>
它还会为user表模式生成example.ini配置文件:
[user]
user_Id = 129
first_Name = 130
last_Name = 130
email = 130
[user__keys]
user_Id = N
Smarty files
It's time to create several files for Smarty:
Smarty文件
现在是创建几个Smarty文件的时候了:
include.php
1 <?
2 require('Smarty.class.php');
3 $smarty = new Smarty;
4 $smarty->template_dir = 'templates/';
5 $smarty->compile_dir = 'templates_c/';
6 $smarty->config_dir = 'configs/';
7 $smarty->cache_dir = 'cache/';
?>
此脚本实例化了一个新Smarty对象.设置Smarty属性.
index.php
1 <?
2 require("include.php");
3 $smarty->assign('TITLE','ACCESS MySQL DATABASE IN THREE TIERS WITH PHP');
4 $smarty->assign('HEADER','WHAT WISH DO ?');
5 $smarty->display('index.tpl');
?>
给Smarty模板分配变量.
insert.php
1 <?
2 require("include.php");
3 $smarty->assign('TITLE','INSERT DATA');
4 $smarty->assign('HEADER','Insert Data');
5 $smarty->assign('data1','First Name');
6 $smarty->assign('data2','Last Name');
7 $smarty->assign('data3','email');
8 $smarty->display('insert.tpl');
?>
添加将在insert.tpl 使用的变量.调用模板insert.tpl .
save.php
1 <?
2 require_once('DB/DataObject.php');
3 require('configDB.php');
4 $user = DB_DataObject::factory('user');
5 $user->first_Name = $x;
6 $user->last_Name = $y;
7 $user->email = $z;
8 $user_Id = $user->insert();
9 $user->update();
10 echo "<script>location.href='index.php'</script>";
11 ?>
This script saves data by using a PEAR::DataObject for the user table. Line 2 loads the class DataObject, and
line 3 calls configdb.php to connect to the database. Line 4 creates an instance of a user object (see User.php).
Lines 5 through 7 pass the variables collected from the form in insert.tpl ($x, $y, and $z) in order to save the
data in the database. The primary key of the table is an autoincrement column, so it doesn't need a value there.
Line 8 inserts the object, and line 9 carries out an update.
view.php
1 <?
2 require_once('DB/DataObject.php');
3 require('configDB.php');
4 require("include.php");
5 $user = DB_DataObject::factory('user');
6 $user->find();
7 while ($user->fetch()) {
8 $smarty->append('users', array(
'ID' => $user->user_Id,
'FIRSTNAME' => $user->first_Name,
'LASTNAME' => $user->last_Name,
'EMAIL' => $user->email,
));
}
9 $smarty->assign('TITLE','List Users');
10 $smarty->assign('HEADER','List User');
11 $smarty->assign('data0','User_Id');
12 $smarty->assign('data1','First Name');
13 $smarty->assign('data2','Last Name');
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




