8.4.4 Model类
十载的高港网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,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()) 得到分表的的数据表名
1、PHP获取显示数据库数据函数之 mysql_result()
mixed mysql_result(resource result_set, int row [,mixed field])
从result_set 的指定row 中获取一个field 的数据. 简单但是效率低.
举例:
$link1 = @mysql_connect("server1",
"webuser", "password")
or die("Could not connect
to mysql server!");
@mysql_select_db("company")
or die("Could not select database!");
$query = "select id, name
from product order by name";
$result = mysql_query($query);
$id = mysql_result($result, 0, "id");
$name = mysql_result($result, 0, "name");
mysql_close();
注意,上述代码只是输出结果集中的第一条数据的字段值,如果要输出所有记录,需要循环处理.
for ($i = 0; $i = mysql_num_rows($result); $i++)
{
$id = mysql_result($result, 0, "id");
$name = mysql_result($result, 0, "name");
echo "Product: $name ($id)";
}
注意,如果查询字段名是别名,则mysql_result中就使用别名.
2、PHP获取显示数据库数据函数之mysql_fetch_row()
array mysql_fetch_row(resource result_set)
从result_set中获取整行,把数据放入数组中.
举例(注意和list 的巧妙配合):
$query = "select id,
name from product order by name";
$result = mysql_query($query);
while(list($id, $name)
= mysql_fetch_row($result)) {
echo "Product: $name ($id)";
}
3、PHP获取显示数据库数据函数之mysql_fetch_array()
array mysql_fetch_array(resource result_set [,int result_type])
mysql_fetch_row()的增强版.
将result_set的每一行获取为一个关联数组或/和数值索引数组.
默认获取两种数组,result_type可以设置:
MYSQL_ASSOC:返回关联数组,字段名=字段值
MYSQL_NUM:返回数值索引数组.
MYSQL_BOTH:获取两种数组.因此每个字段可以按索引偏移引用,也可以按字段名引用.
举例:
$query = "select id,
name from product order by name";
$result = mysql_query($query);
while($row = mysql_fetch_array
($result, MYSQL_BOTH)) {
$name = $row['name'];
//或者 $name = $row[1];
$name = $row['id'];
//或者 $name = $row[0];
echo "Product: $name ($id)";
}
4、PHP获取显示数据库数据函数之mysql_fetch_assoc()
array mysql_fetch_assoc(resource result_set)
相当于 mysql_fetch_array($result, MYSQL_ASSOC)
5、PHP获取显示数据库数据函数之mysql_fetch_object()
object mysql_fetch_object(resource result_set)
和mysql_fetch_array()功能一样,不过返回的不是数组,而是一个对象.
举例:
$query = "select id, name
from product order by name";
$result = mysql_query($query);
while($row = mysql_fetch_object
($result)) {
$name = $row-name;
$name = $row-id;
echo "Product: $name ($id)";
}
以上这些函数就是PHP获取显示数据库数据函数的全部总结。
首先是数据库方面的函数,例如:mysql_connect,mysql_create_db,mysql_fetch_array,mysql_select_db,mysql_query,数据库的函数众多,最好写成一个类,可以参考discuz,phpcms等,如果是php5,可以使用PDO php的数组很强大,很多地方要用到最好把关于数组的循环,分割,删除等记住,例如:is_array,implode,explode,array_keys,array_merge等 还有就是记牢一些安全性的函数例如:addslashes,htmlspecialchars等 其他还有字符处理:subtr,strlen,trim等
这两个函数功能完全不同:
mysql_affected_rows 取得前一次 MySQL 操作所影响的记录行数,操作是指INSERT、UPDATE、DELETE等,影响是指修改、变化的。如果函数失败,返回值是-1。此函数参数为连接ID,也可以不要参数(当前默认的连接)。
mysql_num_rows()返回结果集中行的数目,仅对 SELECT 语句有效。注意其参数是mysql_query返回的结果集ID。
mysql可通过两种方式通过php与web相连,一种通过php的mysql相关函数,相关函数如下:
MYSQL函数
mysql_affected_rows:
得到
MySQL
最后操作影响的列数目。
mysql_close:
关闭
MySQL
伺服器连线。
mysql_connect:
开启
MySQL
伺服器连线。
mysql_create_db:
建立一个
MySQL
新资料库。
mysql_data_seek:
移动内部传回指标。
mysql_db_query:
送查询字串
(query)
到
MySQL
资料库。
mysql_drop_db:
移除资料库。
mysql_errno:
传回错误讯息代码。
mysql_error:
传回错误讯息。
mysql_fetch_array:
传回阵列资料。
mysql_fetch_field:
取得栏位资讯。
mysql_fetch_lengths:
传回单列各栏资料最大长度。
mysql_fetch_object:
传回物件资料。
mysql_fetch_row:
传回单列的各栏位。
mysql_field_name:
传回指定栏位的名称。
mysql_field_seek:
设定指标到传回值的某栏位。
mysql_field_table:
获得目前栏位的资料表
(table)
名称。
mysql_field_type:
获得目前栏位的型态。
mysql_field_flags:
获得目前栏位的旗标。
mysql_field_len:
获得目前栏位的长度。
mysql_free_result:
释放传回占用记忆体。
mysql_insert_id:
传回最后一次使用
INSERT
指令的
ID。
mysql_list_fields:
列出指定资料表的栏位
(field)。
mysql_list_dbs:
列出
MySQL
伺服器可用的资料库
(database)。
mysql_list_tables:
列出指定资料库的资料表
(table)。
mysql_num_fields:
取得传回栏位的数目。
mysql_num_rows:
取得传回列的数目。
mysql_pconnect:
开启
MySQL
伺服器长期连线。
mysql_query:
送出一个
query
字串。
mysql_result:
取得查询
(query)
的结果。
mysql_select_db:
选择一个资料库。
mysql_tablename:
取得资料表名称。