thinkphp5 模型插入单条数据返回值及获取插入主键研究
测试分析如下:
使用方式 静态方法 方法名称 返回值 获取插入主键ID 模型 可用 insert() 1 (影响记录数) $model->getLastInsID()
orModel::getLastInsID()
模型 不可用 save() true(bool) $model->user_id
插入的对象保存在模型中模型 可用 create() array(插入对象数据) $result->user_id
插入的对象作为返回值使用方法如下:
一、使用模型助手函数$data = ['username'=>'user','password'=>'123456']; $model = model('users'); // insert $result = $model->insert($data); // 返回 1 $user_id = $model->getLastInsID(); // 返回插入的主键值 // save $result = $model->save($data); // 返回true $user_id = $model->user_id; // 返回插入的主键值 $username = $model->username; // 返回插入的数据的某个字段的值 // create $result = $model->create($data); // 返回插入的数据对象(含主键) $user_id = $result->user_id; // 返回插入的主键值 $username = $result->username; // 返回插入的数据的某个字段的值
二、使用模型静态方法
use app\common\model\Users; $data = ['username'=>'user','password'=>'123456']; // insert $result = Users::insert($data); // 返回 1 $user_id = Users::getLastInsID(); // 返回插入的主键值 // save $model = new Users(); $result = $model->save($data); // 返回true $user_id = $model->user_id; // 返回插入的主键值 $username = $model->username; // 返回插入的数据的某个字段的值 // create $result = Users::create($data); // 返回插入的数据对象(含主键) $user_id = $result->user_id; // 返回插入的主键值 $username = $result->username; // 返回插入的数据的某个字段的值
thinkphp5 模型插入多条数据效率分析
数据量:10000条数据
使用方式 说明 使用方法 静态方法 执行时间 返回值 model() 助手函数 saveAll() 不可用 4.923721s 插入数据列表 model() 助手函数 insertAll() 可用 6.390599s 插入数据数量 new Model() 实例化模型 saveAll 不可用 4.964064s 插入数据列表 new Model() 实例化模型 insertAll 可用 6.420976s 插入数据数量 一、使用助手函数
$model = model('users'); $data = ['username'=>'user','password'=>'123456']; $model->saveAll($data); // 返回插入数据的列表(含主键) 建议使用 $model->insertAll($data); // 返回插入数据的条数 不建议 $model::insertAll($data); // 返回插入数据的条数 不建议
二、使用实例化模型方式
use app\common\model\Users; $data = ['username'=>'user','password'=>'123456']; // 静态方法 $result = Users::insertAll($data); // 返回插入数据的条数 // 实例化方法 $model = new Users(); $result = $model->saveAll($data); // 返回插入数据的列表(含主键)
官方最佳实践:新增数据的最佳实践原则:使用create
方法新增数据,使用saveAll
批量新增数据
具体细节使用方法待整理
网友评论