在symfony 1.4中使用Doctrine ORM更新mysql表时如何获取结果信息

Ант*_*зов 4 php orm doctrine symfony-1.4 doctrine-1.2

我正在使用symfony 1.4和使用Doctrine ORM进行开发.在构建模式和模型之后,我有一些用于数据库的类.我也可以使用Doctrine_query ....我唯一想知道的是:

我需要更新表格.

Doctrine_Query::create()->update('table')->.....->execute().
Run Code Online (Sandbox Code Playgroud)

要么

$tbl = new Table();
$tbl->assignIdentifier($id);
if($tbl->load()){
    $tbl->setFieldname('value');
    $tbl->save();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能得知它是否是成功的查询结果?以及更新了多少行.

ps同样的问题是删除操作.

j0k*_*j0k 8

一切都在doc中进行更新和删除.

执行DQL UPDATE和DELETE查询时,执行查询将返回受影响的行数.

见例子:

$q = Doctrine_Query::create()
        ->update('Account')
        ->set('amount', 'amount + 200')
        ->where('id > 200');

$rows = $q->execute();

echo $rows;
Run Code Online (Sandbox Code Playgroud)
$q = Doctrine_Query::create()
        ->delete('Account a')
        ->where('a.id > 3');

$rows = $q->execute();

echo $rows;
Run Code Online (Sandbox Code Playgroud)

这与DQL(当您使用doctrine查询时)有关.但我认为->save()会返回当前对象或者@XBB评论的真/假.


vik*_*ert 5

$statement = $this->entityManager->getConnection()->prepare($sql);
$statement->execute();

// the counter of rows which are updated
$counter = $statement->rowCount();
Run Code Online (Sandbox Code Playgroud)

它在 symfony 2 项目中使用学说 2 非常适合我