在没有主键的表中插入新记录(CakePHP)
我需要将PhpBB与CakePHP集成。在PhpBB中有一个表PhpBB_user_group,没有主键:在没有主键的表中插入新记录(CakePHP),cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我需要将PhpBB与CakePHP集成。在PhpBB中有一个表PhpBB_user_group,没有主键: group_id | user_id | group_leader | user_pending 当我创建新用户时,我需要将新记录添加到此表中,但CakePHP给了我以下错误: Cannot insert row in "phpbb_user_group" table, it has no primary key. 我可以将主键为的列添加到表中,但我不希望这样。更新PhpBB
group_id | user_id | group_leader | user_pending
当我创建新用户时,我需要将新记录添加到此表中,但CakePHP给了我以下错误:
Cannot insert row in "phpbb_user_group" table, it has no primary key.
我可以将主键为的列添加到表中,但我不希望这样。更新PhpBB总是件麻烦事,我预见到将来会出现问题,所以我不想修改数据库结构
在CakePHP中是否可以在没有主键的情况下向表中插入新记录?您必须“手动”创建并运行insert
语句,例如,使用查询生成器,您将无法使用ORM的保存功能,因为它依赖于主键的存在
$statement = $Table
->query()
->insert([
'group_id',
'user_id',
'group_leader',
'user_pending'
])
->values([
'group_id' => $groupId,
'user_id' => $userId,
'group_leader' => $groupLeader,
'user_pending' => $userPending
])
->execute();
$success = $statement->rowCount() === 1;
$statement->closeCursor();
另见