框架数据对象使用示例

初始化

  • 引用init.php文件(如果在根路径下) 示例:如果在根路径下引用:require_once("init.php");

可以使用根路径下的test.php测试验证框架的通用方法。

实例方法示例

  • save:保存数据对象
说明:保存用户信息
代码如下:
    $user=new User();
    $user->setUsername("betterlife");
    $user->setPassword("123456");
    $user_id=$user->save();
    if($user_id) echo("新增用户标识:".$user_id); else echo("新增用户失败!");
输出显示如下:
    新增用户标识:3
  • update:更新数据对象
说明:修改用户信息
代码如下:
    $user=User::get_by_id(3);
    $user["username"]="shanghai";
    $user->update();
    if($user) echo("修改用户信息成功!"); else echo("修改用户信息失败!");
输出显示如下:
    修改用户信息成功!
  • saveOrUpdate:保存或修改数据对象
说明:保存或更新用户信息
代码如下:
    $user=User::get_by_id(3);
    $user["username"]="shanghai";
    $user_id=$user->saveOrUpdate();
    if($user_id>1) echo("新增用户标识:".$user_id); elseif($user_id==true) echo("修改用户信息成功!");else  echo("修改用户信息失败!");
输出显示如下:
    修改用户信息成功!
  • delete:删除数据对象
说明:删除用户信息
代码如下:
    $user=User::get_by_id(3);
    $isDelete=$user->delete();
    if($isDelete) echo("删除用户信息成功!"); else echo("删除用户信息失败!");
输出显示如下:
    删除用户信息成功!

类方法示例

  • updateProperties:更新对象指定的属性
说明:修改用户指定的信息
代码如下:
    $isUpdate=User::updateProperties("1,2","loginTimes=100");
    if($isUpdate) echo("修改用户信息成功!"); else echo("修改用户信息失败!");
输出显示如下:
    修改用户信息成功!
  • updateBy:根据条件更新数据对象指定的属性
说明:修改用户指定的信息
代码如下:
    $isUpdate=User::updateBy("username='admin'","loginTimes=500");
    if($isUpdate) echo("修改用户信息成功!"); else echo("修改用户信息失败!");
输出显示如下:
    修改用户信息成功!
  • deleteByID:由标识删除指定ID数据对象
说明:删除指定标识的用户
代码如下:
    $isDelete=User::deleteByID(4);
    if($isDelete) echo("删除用户信息成功!"); else echo("删除用户信息失败!");
输出显示如下:
    删除用户信息成功!
  • deleteByIds:根据主键删除多条记录
说明:删除多条指定标识的用户
代码如下:
    $isDelete=User::deleteByIds("5,6,7");
    if($isDelete) echo("删除用户信息成功!"); else echo("删除用户信息失败!");
输出显示如下:
    删除用户信息成功!
  • deleteBy:根据条件删除多条记录
说明:删除指定条件的用户
代码如下:
    $isDelete=User::deleteBy("username='betterlife7'");
    if($isDelete) echo("删除用户信息成功!"); else echo("删除用户信息失败!");
输出显示如下:
    删除用户信息成功!
  • increment:对属性进行递增
说明:用户访问次数+5
代码如下:
    $isPlus=User::increment("user_id>1","loginTimes",5);
    if($isPlus) echo("用户访问次数+5成功!"); else echo("用户访问次数+5失败!");
输出显示如下:
    用户访问次数+5成功!
  • decrement:对属性进行递减
说明:用户访问次数-3
代码如下:
    $isMinus=User::decrement("user_id>1","loginTimes",3);
    if($isMinus) echo("用户访问次数-3成功!"); else echo("用户访问次数-3失败!");
输出显示如下:
    用户访问次数-3成功!
  • existByID:由标识判断指定ID数据对象是否存在
说明:查看标识为1的用户是否存在
代码如下:
    $isExist=User::existByID(1);
    if($isExist) echo("指定标识的用户存在!"); else echo("指定标识的用户不存在!");
输出显示如下:
    指定标识的用户存在!"
  • existBy:判断符合条件的数据对象是否存在
说明:查看用户名为china的用户是否存在
代码如下:
    $isExist=User::existBy("username='china'");
    if($isExist) echo("用户名为china的用户存在!"); else echo("用户名为china的用户不存在!");
输出显示如下:
    指定标识的用户存在!"
  • select:查询当前对象需显示属性的列表
说明:查看博客名称列表
代码如下:
    $blog_names=Blog::select("blog_name");
    print_r($blog_names);
输出显示如下:
    Array
    (
        [0] => 名校公开课
        [1] => EditArea
        [2] => PHPLinq
        [3] => 地图导航第三方库
        [4] => Web在线编辑器
    )
  • select_one:查询当前对象单个需显示的属性
说明:查看一个博客名称
代码如下:
    $blog_name=Blog::select_one("blog_name");
    print_r($blog_name);
输出显示如下:
    名校公开课
  • get:查询数据对象列表
说明:查看博客列表
代码如下:
    $blogs=Blog::get();
    print_r($blogs);
输出显示如下:
    Array
    (
        [0] => Blog Object
            (
                [blog_id] => 5
                [user_id] => 1
                [blog_name] => 名校公开课
                [blog_content] => 来自新浪、搜狐、网易和QQ的名校公开课。
                [id:protected] =>
                [commitTime] => 1331953386
                [updateTime] => 2013-12-26 15:27:05
            )
        ......
    )
  • get_one:查询得到单个对象实体
说明:查看一个博客
代码如下:
    $blog=Blog::get_one();
    print_r($blog);
输出显示如下:
    Blog Object
    (
        [blog_id] => 5
        [user_id] => 1
        [blog_name] => 名校公开课
        [blog_content] => 来自新浪、搜狐、网易和QQ的名校公开课。
        [id:protected] =>
        [commitTime] => 1331953386
        [updateTime] => 2013-12-26 15:27:05
    )
  • get_by_id:根据表ID主键获取指定的对象
说明:查看指定标识的博客
代码如下:
    $blog=Blog::get_by_id(1);
    print_r($blog);
输出显示如下:
    Blog Object
    (
        [blog_id] => 1
        [user_id] => 1
        [blog_name] => Web在线编辑器
        [blog_content] => 搜索关键字:在线编辑器...
        [id:protected] =>
        [commitTime] => 1331953386
        [updateTime] => 2013-12-26 15:27:05
    )
  • count:数据对象总计数
说明:查看博客的数量
代码如下:
    $countBlogs=Blog::count();
    echo($countBlogs);
输出显示如下:
    5
  • queryPage:数据对象分页
说明:查看从第1到5条博客记录
代码如下:
    $blogs=Blog::queryPage(1,5);
    print_r($blogs);
输出显示如下:
    Array
    (
        [0] => Blog Object
            (
                [blog_id] => 5
                [user_id] => 1
                [blog_name] => 名校公开课
                [blog_content] => 来自新浪、搜狐、网易和QQ的名校公开课。
                [id:protected] =>
                [commitTime] => 1331953386
                [updateTime] => 2013-12-26 15:27:05
            )
        .....

    )
  • queryPageByPageNo:数据对象分页根据当前页数和每页显示记录数
说明:查看第一页的博客记录,每页3条记录,无查询条件
代码如下:
    $blogs=Blog::queryPageByPageNo(1,null,3);
    print_r($blogs);
输出显示如下:
    Array
    (
        [count] => 5
        [pageCount] => 2
        [data] => Array
            (
                [0] => Blog Object
                    (
                        [blog_id] => 5
                        [user_id] => 1
                        [blog_name] => 名校公开课
                        [blog_content] => 来自新浪、搜狐、网易和QQ的名校公开课。
                        [id:protected] =>
                        [commitTime] => 1331953386
                        [updateTime] => 2013-12-26 15:27:05
                    )
                ......
            )
    )

数据对象关系调用示例

数据对象关系定义详细说明请参考[3.3.数据对象规格说明]相关章节说明。

  • 一对一[has_one]
说明:查看用户详情
定义示例:
    class Userdetail extends DataObject {
        static $belongs_has_one=array(
            "user"=>"User"
        );
代码如下:
    $user=User::get_by_id(1);
    $userdetail=$user->userdetail;
    print_r($userdetail);
输出显示如下:
    Userdetail Object
    (
        [userdetail_id] => 1
        [user_id] => 1
        [realname] => 周月璞
        [profile] => userdetail/profile/20140211094832.png
        [country] => 1
        [province] => 25
        [city] => 321
        [district] => 2709
        [address] => 上海市石岚三村80号404室
        [qq] => 412731900
        [sex] => 1
        [birthday] => 1979-03-10
        [id:protected] =>
        [commitTime] => 1331953386
        [updateTime] => 2014-01-09 19:39:52
    )
  • 一对多[has_many]
说明:查看博客评论
定义示例:
    class Blog extends DataObject {
        static $has_many=array(
            "comments"=> "Comment",
        );
代码如下:
    $blog=Blog::get_by_id(1);
    $comments=$blog->comments;
    print_r($comments);
输出显示如下:
    Array
    (
        [0] => Comment Object
            (
                [comment_id] => 6
                [user_id] => 2
                [comment] => WebWiz RichTextEditor:<a href="http://www.webwiz.co.uk/webwizrichtexteditor/" target="_blank">http://www.webwiz.co.uk/webwizrichtexteditor/</a>
    这是一个商业产品,并不免费,但功能非常丰富,基于 ASP,JavaScript 和 DHTML。
                [blog_id] => 1
                [id:protected] =>
                [commitTime] => 1331953386
                [updateTime] => 2012-03-17 12:37:46
            )
        ......
    )
  • 多对多[many_many]
说明:查看用户角色
定义示例:
    class User extends DataObject {
        static $many_many=array(
            "roles"=> "Role",
        );
代码如下:
    $user=User::get_by_id(1);
    $roles=$user->roles;
    print_r($roles);
输出显示如下:
    Array
    (
        [0] => Role Object
            (
                [role_id] => 1
                [role_name] => 项目经理
                [id:protected] =>
                [commitTime] => 1331953386
                [updateTime] => 2015-01-17 20:51:45
            )
        ......
    )
  • 从属于一对一[belong_has_one]
说明:获取用户信息
定义示例:
    class Userdetail extends DataObject {
        static $belongs_has_one=array(
            "user"=>"User"
        );
代码如下:
    $userdetail=Userdetail::get_by_id(1);
    $user=$userdetail->user;
    print_r($user);
输出显示如下:
    User Object
    (
        [user_id] => 1
        [username] => admin
        [password] => 21232f297a57a5a743894a0e4a801fc3
        [email] => [email protected]
        [cellphone] => 13917320293
        [loginTimes] => 0
        [id:protected] =>
        [commitTime] => 1331953415
        [updateTime] => 2013-12-26 14:31:27
    )
  • 从属于多对多[belongs_many_many]
说明:查看角色用户
定义示例:
    class Role extends DataObject {
        static $belongs_many_many=array(
            "users"=>"User"
        );
代码如下:
    $role=Role::get_by_id(1);
    $users=$role->users;
    print_r($users);
输出显示如下:
    Array
    (
        [0] => User Object
            (
                [user_id] => 1
                [username] => admin
                [password] => 21232f297a57a5a743894a0e4a801fc3
                [email] => [email protected]
                [cellphone] => 13917320293
                [loginTimes] => 0
                [id:protected] =>
                [commitTime] => 1331953415
                [updateTime] => 2013-12-26 14:31:27
            )
        ......
    )

其它实例方法示例

  • toXml:数据对象转换成xml字符串
说明:博客转换成xml字符串
代码如下:
    $blog=Blog::get_one();
    echo($blog->toXml());
输出显示如下:
    <?xml version="1.0" encoding="utf-8"?>
    <Blog>
        <blog_id>5</blog_id>
        <user_id>1</user_id>
        <blog_name>名校公开课</blog_name>
        <blog_content>来自新浪、搜狐、网易和QQ的名校公开课。</blog_content>
        <commitTime>1331953386</commitTime>
        <updateTime>2013-12-26 15:27:05</updateTime>
    </Blog>
  • toJson:数据对象转换成Json字符串
说明:博客转换成Json字符串
代码如下:
    $blog=Blog::get_one();
    echo($blog->toJson());
输出显示如下:
    {"blog_id":5,"user_id":1,"blog_name":"\u540d\u6821\u516c\u5f00\u8bfe","blog_content":"\u6765\u81ea\u65b0\u6d6a\u3001\u641c\u72d0\u3001\u7f51\u6613\u548cQQ\u7684\u540d\u6821\u516c\u5f00\u8bfe\u3002","commitTime":1331953386,"updateTime":"2013-12-26 15:27:05"}
  • toArray:数据对象转换成数组
说明:博客转换成数组
代码如下:
    $blog=Blog::get_one();
    print_r($blog->toArray());
输出显示如下:
    Array
    (
        [blog_id] => 5
        [user_id] => 1
        [blog_name] => 名校公开课
        [blog_content] => 来自新浪、搜狐、网易和QQ的名校公开课。
        [id] =>
        [commitTime] => 1331953386
        [updateTime] => 2013-12-26 15:27:05
    )
  • saveRelationForManyToMany[数据对象多对多存储]
说明:存储角色用户多对多关系
代码如下:
    $role=new Role();
    $role->role_id=5;
    $role->role_name="高级程序员";
    UtilDateTime::ChinaTime();
    $role->save();
    $role->saveRelationForManyToMany("users","1");
    print_r($role);
输出显示如下:
    Role Object
    (
        [role_id] => 5
        [role_name] => 高级程序员
        [commitTime] => 1422779198
        [updateTime] => 2015-02-01 16:26:38
    )

其它类方法示例

  • max:获取数据对象指定属性[表列]最大值
说明:获取用户访问次数最高的次数
代码如下:
    $max=User::max("loginTimes");
    echo($max);
输出显示如下:
    500
  • min:获取数据对象指定属性[表列]最小值
说明:获取用户访问次数最低的次数
代码如下:
    $min=User::min("loginTimes");
    echo($min);
输出显示如下:
    2
  • sum:获取数据对象指定属性[表列]总和
说明:获取用户访问次数的总和
代码如下:
    $sum=User::sum("loginTimes");
    echo($sum);
输出显示如下:
    630
  • countMultitable:对象总计数[多表关联查询]
说明:获取博客名称含有Web的评论数
代码如下:
    $count=Comment::countMultitable("Blog a,Comment b","b.blog_id=a.blog_id and a.blog_name like '%Web%'");
    echo($count);
输出显示如下:
    6
  • queryPageMultitable:对象分页[多表关联查询]
说明:获取博客名称含有Web的评论
代码如下:
    $comments=Comment::queryPageMultitable(1,6,"Blog a,Comment b","b.blog_id=a.blog_id and a.blog_name like '%Web%'");
    print_r($comments);
输出显示如下:
    Array
    (
        [0] => Comment Object
            (
                [comment_id] => 6
                [user_id] => 2
                [comment] => WebWiz RichTextEditor:<a href="http://www.webwiz.co.uk/webwizrichtexteditor/" target="_blank">http://www.webwiz.co.uk/webwizrichtexteditor/</a>
    这是一个商业产品,并不免费,但功能非常丰富,基于 ASP,JavaScript 和 DHTML。
                [blog_id] => 1
                [id:protected] =>
                [commitTime] => 1331953386
                [updateTime] => 2012-03-17 12:37:46
            )
        ......
    )

results matching ""

    No results matching ""