PHPActiveRecord 学习一
#连接数据库
<?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 学习一的更多相关文章
- PHPActiveRecord 学习三
#事务处理 注意事务 数据库要用InnoDB引擎 $c1 = User::connection(); try { //开启事务 $c1->transaction(); //sql语句 $sql ...
- PHPActiveRecord 学习二
ORM关联查询 a.一对多 针对外键来说 谁属于谁 谁有谁 user表 CREATE TABLE `user` ( `uid` int(11) NOT NULL AUTO_INCREMENT, `na ...
- 从直播编程到直播教育:LiveEdu.tv开启多元化的在线学习直播时代
2015年9月,一个叫Livecoding.tv的网站在互联网上引起了编程界的注意.缘于Pingwest品玩的一位编辑在上网时无意中发现了这个网站,并写了一篇文章<一个比直播睡觉更奇怪的网站:直 ...
- Angular2学习笔记(1)
Angular2学习笔记(1) 1. 写在前面 之前基于Electron写过一个Markdown编辑器.就其功能而言,主要功能已经实现,一些小的不影响使用的功能由于时间关系还没有完成:但就代码而言,之 ...
- ABP入门系列(1)——学习Abp框架之实操演练
作为.Net工地搬砖长工一名,一直致力于挖坑(Bug)填坑(Debug),但技术却不见长进.也曾热情于新技术的学习,憧憬过成为技术大拿.从前端到后端,从bootstrap到javascript,从py ...
- 消息队列——RabbitMQ学习笔记
消息队列--RabbitMQ学习笔记 1. 写在前面 昨天简单学习了一个消息队列项目--RabbitMQ,今天趁热打铁,将学到的东西记录下来. 学习的资料主要是官网给出的6个基本的消息发送/接收模型, ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Unity3d学习 制作地形
这周学习了如何在unity中制作地形,就是在一个Terrain的对象上盖几座小山,在山底种几棵树,那就讲一下如何完成上述内容. 1.在新键得项目的游戏的Hierarchy目录中新键一个Terrain对 ...
- 《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
随机推荐
- winform菜单栏、工具栏
MenuStrip:菜单 -第一格为选项名,子单可隐藏 --在其中键入”-”可出现分割线或在其上-右键-插入- Sparator -右键-插入标准项,可输入基本菜单项 -右键选项卡--设置图像 --设 ...
- VS的release工程设置为可调试
参考:http://wineworm.blog.163.com/blog/static/29822754201111602252932/ VS2008 Release 工程调试修改方式: 1.项目—— ...
- delphi ios info.plist
delphi ios info.plist delphi修改info.plist.TemplateiOS.xml文件,然后自动生成project1.info.plist http://docwiki. ...
- NSTimer内存泄漏
用NSTimer调用 timer = [NSTimer scheduledTimerWithTimeInterval:timerInterval target:self selector:@selec ...
- ReentrantLock 学习笔记
有篇写的很不错的博客:https://blog.csdn.net/aesop_wubo/article/details/7555956 基于JDK1.8 参考着看源码 ,弄清楚lock()和un ...
- spark使用scala读取Avro数据(转)
这是一篇翻译,原文来自:How to load some Avro data into Spark. 首先,为什么使用 Avro ? 最基本的格式是 CSV ,其廉价并且不需要顶一个一个 schema ...
- openresty(完整版)Lua拦截请求与响应信息日志收集及基于cjson和redis动态路径以及Prometheus监控(转)
直接上文件 nginx.conf #运行用户和组,缺省为nobody,若改为别的用户和组,则需要先创建用户和组 #user wls81 wls; #开启进程数,一般与CPU核数等同 worker_pr ...
- 【362】python 正则表达式
参考:正则表达式 - 廖雪峰 参考:Python3 正则表达式 - 菜鸟教程 参考:正则表达式 - 教程 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match ...
- indexOf实现引申出来的各种字符串匹配算法
我们在表单验证时,经常遇到字符串的包含问题,比如说邮件必须包含indexOf.我们现在说一下indexOf.这是es3.1引进的API ,与lastIndexOf是一套的.可以用于字符串与数组中.一些 ...
- FBackup:个人用途与商业用途都是免费的
當自己在備份電腦資料時,若沒有使用備份及還原軟體時,我想很多人的作法就是「想到應該要備份了,然後進行備份檔案的壓縮.壓縮好之後複製到不同的磁碟機或燒錄光碟」,等要用的時候,再拿出來還原.若是這樣,其實 ...