#1 jake

speedphp框架在第三版中,spModel类加入了affectedRows()成员函数,用于返回前一次执行数据库操作的“影响行数”。

影响行数一般的计算方法:

create操作,通常只插入一条记录,所以影响行数通常是1

update和delete操作,影响行数是所有符合条件的记录数量,比如说delete了三条记录,那么影响行数就是3

find/findAll,查找操作对数据库本身记录没有影响(也就是没有写入或修改,仅读取),所以影响行数是0

由于create、update、delete等操作通常返回的结构布尔值,true是语句执行成功,false是语句执行失败,所以要判断它们对数据表有无“真正”的修改,那么最准确的方式是通过affectedRows()来判断了。

例子:

$conditions = array('id' => 100);
$obj = spClass('lib_guestbook');
$obj->update($conditions, array('name'=>'小明'));
if( 1 >= $obj->affectedRows() ){
        echo "修改成功";
}else{
        echo "修改失败,可能数据中不存在id为100的记录";
}

2012-08-04 16:28:16