草庐IT

Doctrine_RawSql

全部标签

php - 使用 Symfony 和 Doctrine 在数据库中使用 INSERT 时忽略重复项

我有一张tableCREATETABLE`sob_tags_articles`(`tag_id`int(11)NOTNULL,`article_id`int(11)NOTNULL,`id`int(11)NOTNULLauto_increment,PRIMARYKEY(`id`))ENGINE=MyISAMAUTO_INCREMENT=112并尝试用Doctrine保存一个对象:$sbTagsArticles=newSobTagsArticles();$sbTagsArticles->article_id=$pubId;$sbTagsArticles->tag_id=$tagId;$sb

php - Doctrine 查询生成器 mysql 函数

我试图在DoctrineQueryBuilder中创建我的旧mysql查询之一,但我收到错误Error:Expectedknownfunction,got'SEC_TO_TIME'所以我猜测该Doctrine不喜欢mysql函数SEC_TO_TIME但它似乎喜欢AVG、COUNT等。有没有什么方法可以使用Doctrine_RawSQL类让查询构建器运行查询?谢谢 最佳答案 我知道这个问题很老了,但我正在为其他有同样错误的人回答这个问题。您只需要以文件形式添加以下代码,名称为“SecToTime.php”,如下路径所示。YourPro

php - 如何使用 Doctrine 在死锁后重试事务?

我正在编写一个PHP函数,用于将大量数据存储/更新到表中,这可能会导致死锁。我尝试研究如何使用Doctrine重试失败的交易,但遗憾的是在网上找不到任何信息。我最终写了下面的代码$retry=0;$done=false;while(!$doneand$retryentityManager->flush();$done=true;}catch(\Exception$e){sleep(1);$retry++;}}if($retry==3){thrownewException("[Exception:MySQLDeadlock]Toomanypeopleaccessingtheservera

php - Doctrine2 为多对多关系生成两个额外的表

问题我正在使用Symfony2和Doctrine2(注释)设置数据库。我完美地遵循了这些示例(Doctrine2relationshipdocumentation),但不知何故,当我更新我的架构时(doctrine:schema:update--force)它创建了两个额外的表。我的两个实体是Article和District,代码如下。代码文章实体:/****@var\Doctrine\Common\Collections\ArrayCollection$districts**@ORM\ManyToMany(targetEntity="District",inversedBy="art

php - Doctrine 2 : Count Items by Type in Select

有谁知道如何根据Doctrine2QueryBuilderselect()语句中的条件检索计数?这是我到目前为止尝试过的...我的第一次尝试是用eq()尝试count()。我收到的错误是“应为右括号,结果等于。”$qb->select($qb->expr()->count($qb->expr()->eq('t.id','1')))接下来我尝试了count()和having()。我收到的错误是“已达到最大函数嵌套级别。”$qb->select($qb->expr()->count($qb->having('t.id','1')))然后我用where()和eq()尝试了count()。我再

mysql - Doctrine2 SQLSTATE[42000] : Syntax error or access violation: 1064

用户.php;LikePage.php;LikeArticle.php;namespaceAcme\DemoBundle\Entity;useDoctrine\ORM\MappingasORM;/***@ORM\Entity*@ORM\Table(name="like_article")*/classLikePageextendsLike{/***@ORM\Column(type="integer")*/protected$itemid;/***@ORM\ManyToOne(targetEntity="Article",inversedBy="likes")*@ORM\JoinColu

php - 如何在没有鉴别器列的情况下从 Doctrine-Entity 进行扩展

挑战:我想以这种方式重用具有类继承的第三方bundle的现有实体,仍然只剩下一个表,不需要额外的东西。这意味着:没有鉴别器列,也没有JOIN。相反,只有最后最继承的类应该是可查询的,将一些属性添加到基本实体并只使用一个包含所有列的表,这些列从自身和通过继承添加到实体。在此明确:我对经典表继承不感兴趣。我只想用这种方式扩展一个带有附加列的基类,数据库中的表代表所有需要的列的总和。无需能够创建基础实体的实例。有兴趣的friend,我在下面解释原因。第三方库基础实体:Sylius\UserEntity(TableName:"sylius_user")=====================

mysql - Doctrine 模式更新总是尝试添加 NOT NULL

我有一个新的Symfony2.8安装,带有doctrine和MySQL5.6堆栈。执行doctrine:schema:update--force后,我可以看到数据库架构更新成功!执行了“x”个查询这是我的问题:即使我多次执行它,学说总能找到架构差异。通过--dump-sql,我可以看到所有这些查询都与:在string主键上添加NOTNULL在日期时间添加NOTNULL领域但是,当我检查我的数据库时,这些列已经有一个NOTNULL。这是单个属性/列的示例:classMyEntity{/***@ORM\Id*@ORM\Column(type="string",length=5,name="

php - Doctrine2 多对一关联不会使用 JOIN 查询

我有一个Car实体,它与实体Owner存在多对一关系。如果我选择所有汽车,Doctrine在Car表上执行一次查询,然后在Owner表上为每辆汽车执行一次查询。因此,获取N辆汽车变成了N+1查询,而不是Car和Owner表之间的单个JOIN查询。我的实体如下:/**@Entity*/classCar{/**@Id@Column(type="smallint")*/private$id;/**@ManyToOne(targetEntity="Owner",fetch="EAGER")@JoinColumn(name="owner",referencedColumnName="id")*/

mysql - Symfony2 Doctrine 从 CLI 中的文件运行 SQL

我可以用它在CLI上执行SQLphpapp/consoledoctrine:query:sql"SELECT*FROMtable"但是我如何使用相同的命令从文件中执行SQL?例如phpapp/consoledoctrine:query:sqlfilename.sql我试过了>和以各种方式和cat但没有什么比做我想做的更接近了。我意识到我可以直接使用mysql这样做,但我希望通过教义来做到这一点。 最佳答案 phpapp/consoledoctrine:query:sql"$( 关于mys