欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

单次插入

最编程 2024-04-13 18:16:14
...
    • insert方法
        • 1、功能:插入数据到指定数据表中
        • 2、源码位置:/thinkphp/library/think/db/Query.php
        • 生成SQL语句的insert方法源码:/thinkphp/library/think/db/Builer.php
        • 3、参数与返回值
        • 1.参数
        • 2.返回值(仅介绍最常用)
        • 4、调用语法:
          • 1、插入记录,并返回受影响记录数,通常为1
          • 2、插入记录,返回新增主键
          • 3、插入记录,返回新增主键的另一种实现形式
      • 5、实例演示:
        • 1、插入记录,并返回受影响记录条数
        • 2、插入记录,并返回新增记录的自增主键
        • 6、新增操作说明

insert方法

1、功能:插入数据到指定数据表中

该方法与模型中的save方法功能一样但有区别,在模型课程中会讲到

2、源码位置:/thinkphp/library/think/db/Query.php

源码运行的基本思路
 1.获取insert语句SQL:生成器builder类中的insert方法实现;
 2.根据参数设定,返回查询结果,如影响记录数或自增主键。

生成SQL语句的insert方法源码:/thinkphp/library/think/db/Builer.php

3、参数与返回值

1.参数

序号 参数 说明
1 $data[ ] / 数组 要插入到表中的数据,键名与字段对应
2 $replace / 布尔 是否是更新操作,默认不是
3 $getLastInsID  / 布尔 是否返回自增主键,默认不返回
4 $sequence / 字符串 自增序列号,默认为空

2.返回值(仅介绍最常用)

序号 参数 返回值
1 insert($data,false,true) 返回插入值的主键ID ,如:1020
2 insert( ) 成功则返回插入记录数:int(1) ,即1条

4、调用语法:

$data[ ]:与数组表中记录对应的一维数组,字段名与键名一一对应;

1、插入记录,并返回受影响记录数,通常为1
Db::table( 完整数据表 )  -> insert( $data );
2、插入记录,返回新增主键
Db::table( 完整数据表 )  -> insert( $data,false,true );
3、插入记录,返回新增主键的另一种实现形式

返回新增主键ID使用频繁,因此有一个专门方法:insertGetId($data),专门用于插入数据并返回自增主键

Db::table( 完整数据表 )   ->  insertGetId($data);

5、实例演示:

1、插入记录,并返回受影响记录条数

<?php
namespace app\index\controller;
use think\Db;
class Index {
    public function index(){ 

        // 1.创建员工信息数组
        $data = [];
        $data['name'] = '梦姑';
        $data['sex'] = 1;
        $data['age'] = 18;
        $data['salary'] = 6765;
        $data['dept'] = 3;
        $data['hiredate'] = '2012-10-10';

        $result = Db::table('tp5_staff')  //设定tp5_staff表
                       -> insert($data);      // 插入数据  

          //查询运行结果
        dump($result);     
 } 
}
  • 输出结果:
int(1)   //表示受影响记录条数为1,即成功插入一条记录到当前数据表中

2、插入记录,并返回新增记录的自增主键

<?php
namespace app\index\controller;
use think\Db;
class Index {
    public function index(){ 

        // 1.创建员工信息数组
        $data = [];
        $data['name'] = '虚竹';
        $data['sex'] = 0;
        $data['age'] = 28;
        $data['salary'] = 4765;
        $data['dept'] = 2;
        $data['hiredate'] = '2008-08-10';

        $result = Db::table('tp5_staff')     //设定tp5_staff表
                      ->insertGetId($data);     // 插入记录并返回自增主键  

          //查询运行结果
        dump($result);     
 } 
}
  • 输出结果:
int(4)  '1020'   //表示插入成功,并获取新增数据的自增主键为:1020

insert($data,false,true) 与 insertGetId($data) 运行结果完全一致,显示后者更方便、简洁~~

  • 全部完成以后,现在表中数据如下:

6、新增操作说明

新增操作是典型的写操作,具有一定的风险。数据写入到数据库之前,必须要做必要的检验工作,后面我们有模型课程,结合校验规则,可以更加安全、方便的操作数据库!