8.4.4 Model类
10余年的民勤网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。营销型网站的优势是能够根据用户设备显示端的尺寸不同,自动调整民勤建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“民勤网站设计”,“民勤网站推广”以来,每个客户项目都认真落实执行。
getModelName() 获取当前Model的名称
getTableName() 获取当前Model的数据表名称
switchModel(type,vars=array()) 动态切换模型
table() 设置当前操作的数据表
field() 设置要查询的数据字段
where() 设置查询或者操作条件
data(data) 设置数据对象
order(order) 设置排序
limit(limit) 查询限制
page(page) 查询分页
join(join) 进行JOIN查询
having(having) 进行having查询
group(group) 进行group查询
lock(lock) 查询锁定
distinct(distinct) 唯一性查询
count(field) 记录统计
sum(field) 总数查询
min(field) 最小值查询
max(field) 最大值查询
avg(field) 平均值查询
_initialize() 模型初始化方法
_facade(data) 对保存到数据库的数据进行处理
_before_write(data) 写入数据前的回调方法 包括新增和更新
add(data='',options=array()) 新增数据
_before_insert(data,options) 写入数据前的回调方法
_after_insert(data,options) 写入数据后的回调方法
selectAdd(fields='',table='',options=array()) 通过Select方式添加记录
save(data='',options=array()) 更新数据到数据库
_before_update(data,options) 更新数据前的回调方法
_after_update(data,options) 更新成功后的回调方法
delete(options=array()) 删除数据
_after_delete(data,options) 删除成功后的回调方法
select(options=array()) 查询数据集
_after_select(resultSet,options) 查询成功后的回调方法
findAll(options=array()) select方法的别名
_options_filter(options) 表达式过滤回调方法
find(options=array()) 查询数据
_after_find(result,options) 查询成功的回调方法
setField(field,value,condition='') 设置记录的某个字段值
setInc(field,condition='',step=1) 字段值增长
setDec(field,condition='',step=1) 字段值减少
getField(field,condition='',sepa=' ') 获取某个字段值
create(data='',type='') 创建数据对象
autoCheckToken(data) 表单令牌验证
query(sql) 执行原生SQL查询
execute(sql='') 执行原生SQL操作
startTrans() 启动事务
commit() 提交事务
rollback() 事务回滚
getError() 获取模型的错误信息
getDbError() 获取数据库的错误信息
getLastInsID() 获取最后执行的SQL语句
getPk() 获取主键名称
getDbFields() 获取数据表的字段信息
regex(value,rule) 使用正则验证数据
setProperty(name,value) 设置模型的属性值
2.1版新增方法:
db(linkNum,config='') 切换当前数据库连接
高级模型类AdvModel
topN(count,options=array()) 查询满足条件的前N个记录
getN(position=0,options=array()) 查询符合条件的第N条记录
0 表示第一条记录 -1 表示最后一条记录
first(options=array()) 获取满足条件的第一条记录
last(options=array()) 获取满足条件的最后一条记录
returnResult(data,type='') 返回指定的数据类型
setLazyInc(field,condition='',step=1,lazyTime=0) 字段值延迟增长
setLazyDec(field,condition='',step=1,lazyTime=0) 字段值延迟减少
addConnect(config,linkNum=NULL) 增加数据库连接
delConnect(linkNum) 删除数据库连接
closeConnect(linkNum) 关闭数据库连接
switchConnect(linkNum,name='') 切换数据库连接
patchQuery(sql=array()) 批处理执行SQL语句
getPartitionTableName(data=array()) 得到分表的的数据表名
Drupal是主流的CMS系统之一。因此具备Drupal技能的开发人员有很多。
考虑这样的情况,如果你有一个现有的非Drupal系统,然后有一个Drupal开发团队,你希望这个Drupal团队帮你扩展应用。
那么这个时候,Drupal应用就应该设计成是支持多数据库的。
在Drupal中使用多数据,也很简单。
1、首先在配置文件(Settings.php)中把默认的数据库配置项改成数组形式:
?php
$db_url['default'] = 'mysql://drupal:drupal@localhost/drupal';
$db_url['jigo'] = 'mysql://user:pwd@localhost/jigo';
?
注意这里的数据库格式必须是一样的。即不能一个是mysql,另外一个是pgsql。
而且默认的必须是drupal自己的数据库。
2、然后在程序中动态切换:
?php
global $db_url; // 数据库链接的内部变量
if (!is_array($db_url)) {
$default_db = $db_url;
$db_url = array('default' = $default_db);
}
//也可以动态设置新的数据库,这里注释掉,因为我们已经写在配置项中
//$db_url['jigo'] = 'mysql://user:pwd@localhost/jigo';
db_set_active('jigo'); // activation execution same as explained above
$results = db_query($sql); //sql represents the query to be executed
db_set_active('default'); // set back to original
?
regards,
iefreer
这个是需要用JS来实现的,就类似tap选项卡的效果。下面是找的一个例子,和你想要的效果一样
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
""
html xmlns=""
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
titleRadio切换效果/title
style
*{margin:0;padding:0;}
body{margin:50px;font-size:12px;color:#666;}
li{list-style:none;}
div{width:210px;}#tab1,#tab2{width:398px;height:34px;border:1px#cfedff solid;border-bottom:0;background:url(images/title.gif)repeat-x;}#tab1 ul,#tab2 ul{margin:0;padding:0;}#tab1 li,#tab2 li{float:left;padding:0 30px;height:34px;line-height:34px;text-align:center;border-right:1px#ebf7ff solid;cursor:pointer;}#tab1 li.now,#tab2 li.now{color:#5299c4;background:#fff;font-weight:bold;}.tablist{width:378px;height:100px;padding:10px;font-size:14px;line-height:24px;border:1px#cfedff solid;border-top:0;display:none;}.block{display:block;}
fieldset{width:378px;border:1px#B0C0D1 solid;padding:10px;}
legend{background:#B0C0D1;padding:4px 10px;color:#fff;}#c{margin-top:10px;}.c1,.c2{width:378px;line-height:20px;}.c1{color:#014CC9;}.c2{color:#7E6095;}
h3{font-size:16px;padding:5px 0;}.red{color:#BD0A01;}
/style
/head
body
h1Radio切换/h1
script type="text/javascript"
function radioShow() {
var myradio = document.getElementsByName("myradio");
var div = document.getElementById("c").getElementsByTagName("div");
for (i = 0; i div.length; i++) {
if (myradio[i].checked) {
div[i].style.display = "block";
} else {
div[i].style.display = "none";
}
}
}
/script
form name="ck"
fieldset
legendI'm Radio/legend
h3请选择:/h3
label for="r1" class="red"
input name="myradio" id="r1" type="radio" value="" checked="checked" onclick="radioShow();" /XML教程/label
label for="r2" class="red"
input name="myradio" id="r2" type="radio" value="" onclick="radioShow();" /浏览器脚本/label
div id="c"
div class="c1"
label for="xml"
input name="c2" type="checkbox" id="xml" value="" /XML/label
label for="dtd"
input name="c2" id="dtd" type="checkbox" value="" /DTD/label
label for="xmldom"
input name="c2" id="xmldom" type="checkbox" value="" /XML DOM/label
label for="xsl"
input name="c2" id="xsl" type="checkbox" value="" /XSL/label
label for="xslt"
input name="c2" id="xslt" type="checkbox" value="" /XSLT/label
label for="xslfo"
input name="c2" id="xslfo" type="checkbox" value="" /XSL-FO/label
label for="xpath"
input name="c2" id="xpath" type="checkbox" value="" /XPath/label
label for="xquery"
input name="c2" id="xquery" type="checkbox" value="" /XQuery/label
label for="xlink"
input name="c2" id="xlink" type="checkbox" value="" /XLink /label
label for="xpointer"
input name="c2" id="xpointer" type="checkbox" value="" /XPointer/label
label for="schema"
input name="c2" id="schema" type="checkbox" value="" /Schema/label
label for="xforms"
input name="c2" id="xforms" type="checkbox" value="" /XForms/label
/div
div class="c2" style="display:none;"
label for="js"
input name="c3" id="js" type="checkbox" value="" /JavaScript/label
label for="hd"
input name="c3" id="hd" type="checkbox" value="" /HTML DOM/label
label for="dhtml"
input name="c3" id="dhtml" type="checkbox" value="" /DHTML/label
label for="vbs"
input name="c3" id="vbs" type="checkbox" value="" /VBScript/label
label for="ajax"
input name="c3" id="ajax" type="checkbox" value="" /AJAX/label
label for="e4x"
input name="c3" id="e4x" type="checkbox" value="" /E4X/label
label for="wml"
input name="c3" id="wml" type="checkbox" value="" /WMLScript/label
/div
/div
/fieldset
/form
/body
/html