thinkphp3.2.3(5以下)的addAll返回值问题
thinkphp3.2.3(5以下)的addAll返回值问题
[var1]
我们都知道mysql支持一次插入多条数据,如下:
以用户表user为例,表结构自增主键id、账号username、密码password。
insert into user(username,password) values ('fpf','123456'),('pig','258310');
TP借助PDO连接mysql,完成上述操作。
除了增删改查,PDO还有一些函数,如lastInsertId(返回最后插入行的ID)、PDOStatement::rowCount(返回上一个由对应的 PDOStatement 对象执行DELETE、 INSERT、或 UPDATE 语句受影响的行数)等。参考1和参考2。
[var1]
对于tp3.2.3的addAll方法,发现其返回值与官方文档说的返回最后一个id不一样,而是返回第一个id。比如用addAll方法向user表中一次插入1、2、3共三条数据,它返回的是第1条数据的id,而非官方定义的第3条数据的id。
$m=M('User');
$data=[['username'=>'fpf','password'=>'123456'],['username'=>'pig','password'=>'258310']];
$pk=$m->addAll($data);
du