PHP ORM 个人实现

<?php
abstract class Model{
   protected $pk = 'id';
   protected $_ID = null; 
   protected $_tableName;
   protected $_arRelationMap;
   protected $_modifyMap;
   protected $is_load = false;
   protected $_blForDeletion;
   protected $_DB;

   public function __consturct($id = null){
       $this->_DB = mysql_connect('127.0.0.1','root','') ;
       $this->_tableName = $this->getTableName();
       $this->_arRelationMap = $this->getRelationMap();
       if(isset($id))$this->_ID = $id;
   }
   abstract protected function getTableName();
   abstract protected function getRelationMap();

   public function Load(){
       if(isset($this->_ID)){
           $sql = "SELECT ";
           foreach($this->_arRelationMap as $k => $v){
               $sql .= '`'.$k.'`,';
           }
           $sql .= substr($sql,0,strlen($sql)-1);
           $sql .= "FROM ".$this->_tableName." WHERE ".$this->pk." = ".$this->_ID;
           $result =$this->_DB->mysql_query($sql);
           foreach($result[0] as $k1 => $v1){
              $member = $this->_arRelationMap[$key];
              if(property_exists($this,$member)){
                 if(is_numeric($member)){
                     eval('$this->'.$member.' = '.$value.';');
                 }else{
                     eval('$this->'.$member.' = "'.$value.'";');
                 }
              }
           }
       }
       $this->is_load = true;
   }
   public function __call($method,$param){
      $type   = substr($method,0,3);
      $member = substr($method,3);
      switch($type){
         case 'get':
             return $this->getMember($member);
             break;
         case 'set':
             return $this->setMember($member,$param[0]);
      }
      return false;
   }
   public function setMember($key){
       if(property_exists($this,$key)){
          if(is_numeric($val)){
             eval('$this->'.$key.' = '.$val.';');
          }else{
             eval('$this->'.$key.' = "'.$val.'";');
          }
          $this->_modifyMap[$key] = 1;
       }else{
          return false;
       }
   }
   
   public function getMember($key,$val){
       if(!$this->is_load){
          $this->Load();
       }
       if(property_exists($this,$key)){
          eval('$res = $this->'.$key.';' );
          return $this->$key;
       }
       return false;
   }

   public function save(){
      if(isset($this->_ID)){
          $sql = "UPDATE ".$this->_tableName." SET ";
          foreach($this->arRelationMap as $k2 => $v2){
              if(array_key_exists( $k2, $this->_modifyMap)){
                  eval( '$val = $this->'.$v2.';');
                  $sql_update .=  $v2." = ".$val;
              }
          }
          $sql .= substr($sql_update,0,strlen($sql_update));
          $sql .= 'WHERE '.$this->pk.' = '.$this->_ID;
      }else{
          $sql = "INSERT INTO ".$this->_tableName." (";
          foreach($this->arRelationMap as $k3 => $v3){
              if(array_key_exists( $k3,$this->_modifyMap)){
                  eval('$val = $this->'.$v3.';');
                  $field  .= "`".$v3."`,"; 
                  $values .= $val;
              }
          }
          $fields = substr($field,0,strlen($field)-1);
          $vals   = substr($values,0,strlen($values)-1);
          $sql .= $fields." ) VALUES (".$vals.")";
      }
      echo $sql;
      //$this->_DB->query($sql);
   }
   public function __destory(){
      if(isset($this->ID)){
         $sql = "DELETE FROM ".$this->_tableName." WHERE ".$this->pk." = ".$this->_ID;
        // $this->_DB_query($sql);
      }
   }
}
class User extends Model{
    protected  function getTableName(){
       return "test_user";
    }
    protected function getRelationMap(){
        return array( 
                      'id'       => USER_ID,
                      'user_name'=> USER_NAME,
                      'user_age' => USER_AGE
                    );
    }
    public function getDB(){
       return $this->_DB;
    }
}
$UserIns = new User();
print_r($UserIns);

?>

转载于:https://www.cnblogs.com/glory-jzx/archive/2012/08/08/2629136.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: PHP三级分销代码实现主要是通过多层级的计算和数据传递来实现的。 首先需要提前规划好分销策略和分销模式,例如三级分销就是指直接推荐人、间接推荐人、三级推荐人三个级别。然后根据这个策略设计数据表结构,包括用户表、订单表和推荐关系表等,以方便在程序中进行数据计算。 接着,需要编写对应的PHP代码实现分销功能。首先,当有订单产生时,需要根据购买人的ID和推荐人的ID判断属于哪个级别的分销,然后进行计算和数据更新。其次,在用户个人中心或分销管理后台,需要展示他所推荐的用户和他们的分销情况,并对分销收益进行统计和结算,最后转账给用户或者进行提现操作。 在实际的开发中,可以使用 Laravel 或 ThinkPHPPHP 框架,利用其提供的 ORM(对象关系映射)功能,简化数据库操作流程,提高代码重用性和效率。 综上所述,PHP三级分销代码实现需要精心设计数据结构、编写复杂的分销计算和数据更新逻辑,结合前端渲染和交互设计,才能实现一个稳定可靠的分销平台。 ### 回答2: PHP三级分销代码实现主要分为三个部分:建立数据库,编写代码,实现功能。 建立数据库:首先创建一个名为“distribution”的数据库,再在该数据库中创建三个表,分别为“users”、“order”、“reward”,分别用来存储用户信息、用户订单信息和用户奖励信息。在“users”表中,设定“userid”、“username”、“password”、“superior”四个字段,其中“userid”为用户编号,“username”为用户名,“password”为密码,“superior”为上级用户编号。在“order”表中,设定“orderid”、“userid”、“ordermoney”三个字段,其中“orderid”为订单编号,“userid”为用户编号,“ordermoney”为订单金额。在“reward”表中,设定“rewardid”、“userid”、“rewardmoney”三个字段,其中“rewardid”为奖励编号,“userid”为用户编号,“rewardmoney”为奖励金额。 编写代码:在PHP代码中,首先连接数据库,在“users”表中插入管理员信息,然后通过表单输入用户名密码和上级用户编号,插入用户信息到“users”表中,实现用户注册功能。接着实现订单提交功能,通过表单输入订单金额、用户编号,插入订单信息到“order”表中。最后,实现奖励计算和发放功能,查询用户的上级和上上级用户,根据设置的奖励规则分别计算出奖励金额,将奖励金额插入到“reward”表中。 实现功能:用户注册成功后,可以登录到自己的账号,查看自己的订单和奖励情况。管理员可以查看所有用户的订单和奖励情况,并可以修改奖励规则。 综上所述,PHP三级分销代码实现需要建立数据库,编写代码,实现功能。在编写代码的过程中,需要考虑用户注册、订单提交、奖励计算和发放等功能的实现。在实现功能的过程中,需要考虑用户的权限和管理员的管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值