#连接数据库

<?php
require_once dirname(__FILE__) . '/../../ActiveRecord.php';

// initialize ActiveRecord
ActiveRecord\Config::initialize(function($cfg)
{
  $cfg->set_model_directory(dirname(__FILE__) . '/models'); //所有表的Model类都在文件夹/models内
  $cfg->set_connections(array('development' => 'mysql://root:root@127.0.0.1/test'));
  //用户名:密码@数据库地址/数据库名
});
#设置表的Model类

 Example Table Name user; 

class User extends ActiveRecord\Model
{
  // explicit table name since our table is not "users" 改变默认对应表为users的情况
    static $table_name = 'user';

  // explicit pk since our pk is not "id" 改变默认主键为id的情况
    static $primary_key = 'uid';
}

##################################################################
#Model类关联表的特殊情况

  Some special Model Name will reset based on PHPActiveRecord'way;

 Example:

  Model Name Table Name
  'move' => 'moves',
  'foot' => 'feet',
  'goose' => 'geese',
  'sex' => 'sexes',
  'child' => 'children',
  'man' => 'men',
  'tooth' => 'teeth',
  'person' => 'people'
##################################################################
 #对Model类CURD的操作

    *增 Insert

     #第一种方法
            # Insert into user(name,state) values('Mickey',1);
              $users = User::all();
              $users->name = 'Mickey';
              $users->state = 1;
              $users->save();

     #第二种方法
            # Insert into user(name,state) values('nano',1);
              $user = User::create(array('name' => 'nano', 'state' => 1));
     
******************************************************************************************
     *删 Delete

      #单条删除
            #delete from user where id = 3;
              $result = User::find(3)->delete();

      #集合删除
            #delete from user where uid in (2,3,4,5);
             User::table()->delete(array('uid' => array(2,3,4,5)));
******************************************************************************************
     *改 Update

  #第一种
        #update user set name = 'maike' where id = 1;
          $post = User::find(1);
            $post->name='maike';
            $post->save();

  #第二种
       形式A:
            Model::table()->update(AttributesToUpdate, WhereToUpdate);
               #update user set name = 'Massive title' where uid in (6,7,8,9);
              $setname = array('name' => 'Massive title!');
              $whereid = array('uid' => array(6,7,8,9));
              User::table()->update($setname,$whereid);
      
       形式B:

           #update user set 'is_valid' = 0 where phone_number = 13751070555 and content = 'good';
              $setname = array('is_valid' => 0);
              $whereid = array('phone_number' => 13751075555,'content' => 'good');
              User::table()->update($setname,$where);
********************************************************************************************
     *查询 Read

    #用原生语句
     $users = User::find_by_sql('select * from `user` where uid in(1,2,3,4,5) order by uid desc');

    #根据主键查询
      #select * from user where id = 1;
       $user = User::find(1);

    #根据 条件查询 所有符合条件的
      #select * from user where sex = 1 and name = 'JohnJ';
        $user = User::find('all',array('sex'=>1,'name'=>'JohnJ'));

    #根据条件查出唯一一条对应的
      #select * from user where id = 1;
        $user = User::first(array('id'=>1));
  

PHPActiveRecord 学习一的更多相关文章

  1. PHPActiveRecord 学习三

    #事务处理 注意事务 数据库要用InnoDB引擎 $c1 = User::connection(); try { //开启事务 $c1->transaction(); //sql语句 $sql ...

  2. PHPActiveRecord 学习二

    ORM关联查询 a.一对多 针对外键来说 谁属于谁 谁有谁 user表 CREATE TABLE `user` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `na ...

  3. 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代

    2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...

  4. Angular2学习笔记(1)

    Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...

  5. ABP入门系列(1)——学习Abp框架之实操演练

    作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...

  6. 消息队列——RabbitMQ学习笔记

    消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...

  7. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  8. Unity3d学习 制作地形

    这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...

  9. 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...

随机推荐

  1. C++ Sleep() sleep()

    简介: 函数名: sleep 功 能: 执行挂起一段时间 用 法: unsigned sleep(unsigned seconds); 在VC中使用带上头文件 #include <windows ...

  2. C++学习基础十五--sizeof的常见使用

    sizeof的常见用法 1. 基本类型所占的内存大小 类型 32位系统(字节) 64位系统(字节) char 1 1 int 4 4 short 2 2 long 4 8 float 4 4 doub ...

  3. twisted的DelayedCall

    >>> l=[,,,,] >>> del l[:]#只是删除列表的部分元素,列表仍然存在 >>> l [, ] #reactor循环执行的函数de ...

  4. USB之HID类Set_Report Request[调试手记1]

    请翻开<Device Class Definition for Human Interface Devices (HID) Version 1.11 >7.2.2 Set_Report R ...

  5. 深度学习原理与框架-Tensorflow基本操作-Tensorflow中的变量

    1.tf.Variable([[1, 2]])  # 创建一个变量 参数说明:[[1, 2]] 表示输入的数据,为一行二列的数据 2.tf.global_variables_initializer() ...

  6. centos7 操作记录

    centos7 firewall 命令查看已经开放的端口firewall-cmd --list-ports查看开放的服务firewall-cmd --list-services开启端口firewall ...

  7. mysql Lock wait timeout exceeded; try restarting transaction解决

    前面已经了解了InnoDB关于在出现锁等待的时候,会根据参数innodb_lock_wait_timeout的配置,判断是否需要进行timeout的操作,本文档介绍在出现锁等待时候的查看及分析处理: ...

  8. 微服务-dubbo学习

    什么是微服务: 由于业务发展迅速,为了减少代码和功能重复,方便扩展,部署,维护等因素,将系统业务组件化和服务化拆分,拆分为一个个独立的服务,由服务治理系统统一管理,每个微服务为一个进程,之间的通讯方式 ...

  9. python中函数基础

    函数 什么是函数? 函数分为内置函数和自定义函数 定义:在程序中具备某一功能的工具.在使用之前需准备该工具(函数的定义),遇到应用场景拿来就用(后引用). 为什么要用函数? 1.代码冗余 程序组织结构 ...

  10. 一次UNITY闪退问题的定位心得

    最近项目测试发现,运行unity后不退出运行模式,玩了一局后点击 “再来一局”,反复十几局后unity崩掉. 经观察,发现在这十几局的过程中,unity占用内存不断上升,由3.2G左右上升到3.6G左 ...