core::update
(CoreMVC 1.0)
core::update — 根据实例修改数据库中的数据
◎描述
bool core::update ( [ string $tablename = '' [, int $primary_index = 0 ] ] )
bool core::update ( string $tablename , string $primary_name )
该方法可以设置主键并根据实例修改数据库的一条记录,该方法必须是通过实例调用的。需要注意的是该方法只会修改实例中除主键外所有成员字段,修改后成员不会变化。
◎参数
tablename
要修改记录的完整表名,系统不粘附前缀。如果是使用默认参数空串则表名为继承类的类名加上前缀,但如果此时是直接从核心类调用则返回false。无论是默认的还是带表名参数的,系统都会根据设置的前缀替换规则进行替换。
primary_index
主键位置。0表示第1个字段是主键,1表示第2个字段是主键,以此类推。当不使用主键而直接交由系统修改一条记录时,该参数可以设置为-1。
primary_name
主键名称。和primary_index一样,如果主键名称不存在则视为不使用主键而直接交由系统修改一条记录。
◎返回值
当从核心类实例调用并且表名为空串时返回false。其他情况下修改成功返回true,修改失败返回false。
◎例子
在继承类中的使用
《user.php》
<?php
class user extends core {
final public static function modify ($id) {
$user = new self;
$user->user_id = $id;
$user->struct ($_POST);
if ($user->update ()) {
$message = '修改成功';
} else {
$message = '修改失败';
}
self::view (__CLASS__ . '/' . __FUNCTION__ '.tpl', compact ('user', 'message'));
}
}
?>
指定表名和主键字段
《test.php》
<?php
$user = new core;
$user->name = '张三';
$user->update ('pre_user', -1); //直接修改pre_user表中的一条记录,不使用主键。
$user->user_id = 1;
$user->name = '李四';
$user->update ('pre_user', 'user_id'); //以id=1为主键条件修改pre_user表中相应的一条记录。
?>