- 浏览: 99381 次
- 性别:
- 来自: 天津
最新评论
-
runfriends:
kidneyball 写道runfriends 写道楼主你用的 ...
「译」在java中,字符串的加法是如何实现的? -
kidneyball:
runfriends 写道楼主你用的是谁家的编译器啊?我用jd ...
「译」在java中,字符串的加法是如何实现的? -
runfriends:
so the original article is inco ...
「译」在java中,字符串的加法是如何实现的? -
runfriends:
所以前面我说的那一些对jdk7也适用
「译」在java中,字符串的加法是如何实现的? -
runfriends:
楼主你用的是谁家的编译器啊?我用jdk6、jdk7、eclip ...
「译」在java中,字符串的加法是如何实现的?
怎么生成模型数据库,又怎么调用
现在我在数据库中添加了一个info表怎么办假设在数据库中添加一个info表字段也设置好了那么我们来生成info数据库模型 。
我们在程序中写一句。
$supply=M("info");
就可以自动生成了info数据库模型了。
可以在
- framework/model目录下面看到多了两个文件
- infoModel.class.php infoBase.class.php
- infoBase.class.php 是数据库表的基本信息,这个不用理
- infoModel.class.php 是模型文件可以在这里添加其实方法 比如->setpassword($pwd);
PHP code 在framework/model目录里面。
infoModel.class.php
<?php
class infoModel extends infoBase{
var $mapper=array();
var $maps;
var $maparray=array();
function setPassword($pwd) {
$this->data['password']=md5($pwd);
return $this;
}
}
?>
基类代码,主要是存放信息用。
infoBase.class.php
<?php
class infoBase extends model{
var $tablename='www_info';
var $PRI='myid';
var $autoid=true;
var $fields=array (
'myid' => NULL,
'myname' => '',
'password' => '',
'typeid' => '',
);
var $types=array (
'myid' => 'int(8)',
'myname' => 'varchar(30)',
'password' => 'varchar(32)',
'typeid' => 'int(8)',
);
}
?>
是不是很简单。
但是如果我的表是www_info表怎么办呢,这种就是加了前辍的表。
我的模型总不能有前辍吧。
看看document里面文档说明
//第一次使用请加上表名"www_channel"这样就会自动生成channel模型了,
//生成在model目录下面一个是channelBase.class.php和channelModel.class.php结尾的两个文件
//$channel=M("channel","www_channel");
//如果已生成过就不用表名了,只有第一次用或数据库更新了需要刷新才使用表名,切记
//使用一次后如果正确的那么生成了两个文件,于是赶紧把$channel=M("channel","www_channel");改为
//$channel=M("channel"); 这样就可以了不会再去生成那个Base.class.php文件
//如果我把数据库表改了一下添加或删除字段
//$channel=M("channel","www_channel");再加上表名再去刷新一下那个Base.class.php文件
//然后再改回来$channel=M("channel");
//正式发布时候我们model目录下已有所有数据库表模型文件了所以我们不会再使用$channel=M("channel","www_channel");加表名了
//有点哆嗦,意思是model下面有文件了就不要加表名了
那么我们使用$info=M("info","www_info");就可以生成了
framework/model目录下面 infoModel.class.php infoBase.class.php
删除 把访问一次
http://localhost/queryphp/ormtest.php
是不是又生成了两个文件跟刚才一样
infoBase.class.php
var $tablename='www_info'; //这个才是表名
下面说说怎么就用操作数据据库了
$supply->where($supply->pkidkey().">12")->delete();
表示删除主键大于12的
现在我们做下查询
$supply->whereuseridANDbookid(12,9)->fetch();
表示要取得userid=12 and bookid=9记录
$supply->whereuseridORbookid(12,9)->fetch();
表示要取得userid=12 OR bookid=9记录
$supply->whereuseridIN(12,9)->fetch();
表示要取得userid IN (12,9)记录
$supply->up(0);
$supply->address="北京海淀区";
$supply->update("address");
修改$supply->record[0]中记录
我们只更新address字段
我们想复制一行
那么还是操作刚才那个 $supply->up(0);
因为数据还留在$supply->data中
我们复制一个
$supply->copyRecord()->save();
这样就可以新插入数据了
copyRecord()作用是把data中数据主键删除,没有主键保存那么会以插放方式
ORM操作例子:
echo "bye<pre>";
$supply=M("supply");
//$supply->get(3,4);
//print_r($supply->record);
//echo $supply->title;
//$supply->up();
//print_r($supply->getData());
//$supply->up();
//print_r($supply->getData());
//$supply->getDataBaseName();
//echo "===".$supply->Books->Supply->title;
//$supply=M("supply");
//$supply->get(3,4);
//$supply->up();//edit 3
//M("booktype")->classname="星际解霸2";
// $supply->copyRecord()->save(M("booktype"));
//$supply->Books=array("classname"=>"星际解霸5");
//print_r($supply->save());
//$supply->where($supply->PRI.">12")->delete();
//$supply->save();
//$books=M("booktype");
//echo "aaa";
//$books->get(246)->up(); //取一个值
//$books->classname="开发游戏新行"; //更新字段
//$supply->update($books); //关联保存
//$books->where($books->PRI.">3")->delete();
//M("booktype")->where($books->PRI.">12")->delete();
//$supply->Books->setclassname("星际争霸9")->save();
// print_r($supply->data);
//$supply->address="北京海淀区";
//$supply->update("address");
//$supply->update(array("mobile"=>126666,"address"=>"清上河"));
//$supply->update("mobile,address",array(13800138000,"上地站"));
/*
* update为指定字段更新,不像save什么都更新
* $supply->update('fields,fields');
* $supply->update(array('fields'=>"aaabbb","fields2"=>8888));
* $supply->update(array('fields'=>"aaabbb","fields2"=>8888),true); //true表示更新到$supply->data
* $supply->update($Books); //关联更新 $Books是M对像,表示更新到$supply->data
* $books 为类对象,record将会改为对像的。
* $supply->update($books,true);
* $supply->update('fields,fields',array("aa","bbb"));
*/
//$supply->Books(array('classname'=>"星星争霸78"))->save();
//print_r($supply->Books->record);
//print_r($supply->Books->record);
//$supply->Books=array("classname"=>"星际解霸21");
//$supply->Books=array("classname"=>"星际解霸22");
//$supply->Books=array("0"=>array("classname"=>"星际解霸88"),2=>array("classname"=>"星际解霸98"));
//print_r($supply->data);
//$supply->copyRecord();
//print_R($supply);
//$supply->copyRecord()->save();
//print_r($books->record);
//print_r($supply);
//print_r(M("booktype")->record);
//$sub="useridANDlanguageORlangLIKEcnpri";
//$sub="useridAND";
//$sub="asdfdgdasdLIKE";
echo "</pre>";
发表评论
-
php如何真“拷贝”一个数组
2012-12-18 15:03 12864本文翻译改编自:http:// ... -
在PHP中, 为什么</script>不产生语法解析错误
2012-12-18 14:57 1045PHP作为主流网站建设语言,在使用过程中有很多陷阱,需要程序员 ... -
PHP框架queryphp教程:入门十一 权限系统设计
2012-12-14 10:14 1571权限系统设计说明: 主要组成有三种身份 超级 ... -
PHP框架queryphp教程:入门十 自动生成HTML
2012-12-14 10:10 1123现在很多网站都是重 ... -
PHP框架queryphp教程:入门九 如何去掉index.php
2012-12-14 10:09 1100去除index.php测试 C:\WINDOWS\sy ... -
PHP设计模式:单件模式(Singleton Pattern)
2012-12-13 11:10 1115在上一章中,我们介绍了PHP设计模式里面的工厂模式。工厂模式是 ... -
PHP设计模式:工厂模式(The Factory Pattern)
2012-12-12 14:52 1150在面向对象的编程中, ... -
PHP框架queryphp教程:入门八 路由跳转
2012-12-10 11:43 1244路由说明 path_info方式 testframe ... -
PHP框架queryphp教程:入门七 给模板赋值
2012-12-10 11:42 883可以使用smarty模板引擎,参见core/view.p ... -
PHP框架queryphp教程:入门六 视图模板
2012-12-10 11:42 937使用原生php代码标签 看手册: PHP 提供了 ... -
PHP框架queryphp教程:入门一 Hello World
2012-12-05 09:23 831配置好php环境 不会配置可以看下附录php安装 下载 ... -
PHP框架queryphp教程:安装说明
2012-12-04 10:34 2270在上一章中,我们介绍了queryphp,本章我们将讲解如 ... -
PHP框架queryphp教程:简介
2012-12-04 09:18 860本文来自:http://www.tjwzjs.cn/news/ ... -
如何提升PHP网站安全性的5个技巧
2012-11-16 09:07 1096技巧1:使用合适的错误报告 一般在网站开发过程中,很多 ... -
自己动手设计 PHP MVC 框架(一)——URL
2012-11-06 13:18 3558在框架盛行的今天,MVC 也不再是神话。 经常听到很多程 ... -
php容易被错误使用的empty函数
2012-09-04 15:42 749在php的官方手册中写 ... -
phpcms和dedecms比较
2012-08-30 10:51 2720现在做一个网站是越来越容易了,很多公司和个人站长开始使用 ... -
6个常见的 PHP 安全性攻击
2012-08-20 08:50 1048了解常见的PHP应用程序安全威胁,可以确保你的PHP应用 ... -
跟我学网站开发框架CodeIgniter之url篇
2012-08-08 09:50 1827如何删除index.php文件 估计很多人学习CodeI ... -
用PHP建设网站的优缺点
2012-08-01 09:21 735再 iteye 的论坛上,有一网友说道类似问题,他们 ...
相关推荐
本文主要介绍Python使用ORM框架SQLAlchemy操作Oracle数据库。 1. 安装Oracle Instant Client 2. 安装依赖库 使用以下命令来安装SQLAlchemy和cx_Oracle库: pip install SQLAlchemy pip install cx_Oracle 3.创建...
"dos.orm 实体生成器"是一个专门针对dos.orm框架的实体类自动生成工具,它极大地提高了开发效率,尤其是在处理大量数据库操作时。这个工具能够从数据库中的表结构自动创建与之对应的实体类,从而减少了手动编写这些...
QueryPHP 可能包含一个命令行接口(CLI),通过 artisan 类似的命令行工具,开发者可以执行自动化任务,如迁移数据库、生成模型等。 9. **性能优化**: 高性能是 QueryPHP 的一大特点,框架可能包含了一些优化措施...
文档中提到包含三个具体的案例,虽然没有给出详细的内容,但我们可以推测这些案例可能是为了展示如何在实际项目中应用上述技术框架。例如,可能有一个案例展示了如何使用Struts2和Hibernate构建一个完整的在线商店...
极简的ORM代码生成器,对Object-c的类进行语法解析, 可根据Object-c的类定义,自动生成ORM框架需要的函数。理论上可适配任意ObjC的ORM框架 !!! 在model对象里标记成员 ORMDataBase(x) 标记数据库名字 ORMTable(x) ...
- Sugar ORM:简单易用,无需编写SQL,只需定义实体类并添加注解即可实现ORM映射。 - ActiveAndroid:提供了Model、Table和Column注解,支持数据库初始化和自动迁移。 - OrmLite for Android:强大的ORM库,支持...
SQLite3的ORM(Object-Relational Mapping)框架是一种在C++编程中将数据库关系模型与对象模型进行对应的技术。ORM框架使得开发者可以使用面向对象的方式来操作数据库,避免了直接编写SQL语句,提高了开发效率和代码...
《基于ORM模型的物资管理系统的设计和实现》 在信息技术飞速发展的今天,企业对物资管理的需求...通过精心设计的对象模型和选择合适的ORM框架,我们可以构建出一个高效、易用的物资管理系统,满足企业的物资管理需求。
三、ORM 生成关联表模型的优点 1. 提高开发效率:使用 ORM 工具生成关联表模型可以提高开发效率,因为它可以自动生成关联表模型,减少手动编写 SQL 语句的工作量。 2. 提高数据一致性:ORM 生成关联表模型可以确保...
.NET ORM框架,全称为Object-Relational Mapping(对象关系映射)框架,是.NET开发者...在zc_orm框架这个压缩包中,可能包含了关于这些ORM框架的示例代码、教程或其他相关资源,可以帮助深入理解和学习.NET ORM的使用。
QT-ORM代码自动生成器是一种高效工具,专为使用QT框架进行对象关系映射(ORM)开发的程序员设计。ORM允许开发者用面向对象的方式处理数据库操作,减少了与SQL语句直接交互的工作量,提升了开发效率。这个工具的核心...
MyBatis ORM(Object-Relational Mapping)框架是一款流行的Java持久层框架,它极大地简化了数据库操作,使得开发者可以专注于SQL语句的编写,而无需处理底层的数据连接和结果集映射。本项目提供了一个自动化的工具...
Dos.ORM代码生成器是一款专为开发者设计的实用工具,主要功能是自动生成实体类代码,从而极大地提高开发效率,减少手动编写重复代码的工作量。它基于Dos.ORM框架,这是一个轻量级的ORM(对象关系映射)库,允许...
本文将详细探讨一款基于C#的代码生成器,其核心是利用自定义的ORM(对象关系映射)框架,与SQLServer数据库紧密结合,用于生成常规的三层架构代码和配置文件。通过深入理解这一工具,开发者可以更好地理解和应用这一...
### 主流ORM框架技术应用——Hibernat与MyBatis详解 #### 一、MVC设计模式概述 在深入探讨ORM框架之前,我们先来了解一下软件工程中的一个重要设计模式——MVC(Model-View-Controller),它对于理解后续ORM框架的...
这篇博客“php中的orm”很可能是探讨PHP中的一些主流ORM框架及其使用方法。 PHP的ORM框架如Doctrine、Laravel的Eloquent、Phalcon的Phalcon ORM等,它们的核心思想是将数据库表映射为类,表中的记录映射为类的实例...
3. **自动映射**:Moon.Orm支持实体类和数据库表之间的自动映射,开发者只需要定义好实体类,框架就能自动生成对应的数据库操作。 4. **事务处理**:框架内置了事务管理机制,允许开发者在需要时开启和提交事务,...
2. **代码生成**:为了减少手动编写数据库访问代码的工作量,ORM框架可能包含代码生成工具,自动生成实体类和数据库操作的仓储接口及实现,使得开发更高效。 3. **查询构建器**:框架可能提供一种直观的查询方式,...
描述中的“实体生成工具”是ORM框架的一部分,它可以帮助开发者自动生成与数据库表对应的C#实体类。对于MySQL和SQLite数据库,该工具提供了特定的支持,意味着它可以解析这些数据库的表结构,并根据表的字段信息生成...
在Python的Web开发中,Django是一个非常流行的框架,它提供了强大的ORM(对象关系映射)功能,使得开发者可以方便地操作数据库而无需编写SQL语句。本篇将深入探讨如何在Django中动态创建多个模型的表名,并利用ORM...