How to delete from database with queryBuilder?
我想删除一些数据并返回删除的编号。
这是我的代码:
1 2 3 4 5 6 7 8 | public function deleteMyData() : ?int { $qb = $this->connection->createQueryBuilder() ->delete('myTable') ->where('pays ="us"') ; return $qb->execute()->rowCount(); } |
我已经测试了其他的东西,比如:
1 2 3 | ->delete() ->from('myTable') ->where('pays ="fr"') |
当我运行我的代码时,我遇到了这个错误:
[Symfony\\Component\\Debug\\Exception\\FatalThrowableError]
Call to a member function rowCount() on integer
我转储了
感谢您的帮助!
PS:我认为问题不在于查询,因为:
Error An exception occurred while executing 'DELETE FROM theQueryTest WHERE pays ="us"':
SQL 很棒
PS 2:我不能使用
我找到了解决方案
就我而言,我必须使用
我阅读了文档并在 Connection.php (->delete(...)) 中找到了这个:
- @return integer The number of affected rows.
所以我要直接使用
1 2 3 4 5 6 7 | public function deleteMyData() : ?int { $qb = $this->connection ->delete('myTable', ['pays' => '"us"']) ; return $qb; } |
此代码返回一个整数
1 | return $qb->execute(); |
如果你想计算受影响的行数试试这个:
1 2 3 | $qb = $this->createQueryBuilder(); //query $count = $qb->getQuery()->getSingleScalarResult(); |