在Doctrine2中使用以下内容:
$user = array('username' => 'example', 'passsword' => 'changeme');
$conn->insert('users', $user);
Run Code Online (Sandbox Code Playgroud)
那么我如何获得刚刚插入的用户的最后一个ID?如果无法做到这一点,那么如何生成id以便您可以执行以下操作:
$id = //something here.
$user = array('username' => 'example', 'passsword' => 'changeme', 'id' => $id);
$conn->insert('users', $user);
Run Code Online (Sandbox Code Playgroud)
Fla*_*ask 114
如果您使用的是ORM
$em->persist($object);
$em->flush();
$object->getId();
Run Code Online (Sandbox Code Playgroud)
如果您使用的是DBAL:
$conn->lastInsertId();
Run Code Online (Sandbox Code Playgroud)
http://www.doctrine-project.org/api/dbal/2.5/class-Doctrine.DBAL.Connection.html#_lastInsertId
可以使用该Doctrine\DBAL\Connection::lastInsertId()方法.
它可以与本机查询以及手动编写的插入一起使用.
示例案例:
$query = 'INSERT INTO blabla...';
$connection->executeUpdate($query, $params);
var_dump($connection->lastInsertId());
Run Code Online (Sandbox Code Playgroud)
如果使用ORM,您可以从实体管理器获取连接的实例:
$connection = $em->getConnection();
Run Code Online (Sandbox Code Playgroud)
注意:
除技术细节外,我同意@Layke为您的具体案例使用实体.