我正在更新我的表。我的问题是
'UPDATE mainOrderData SET isInvoiced = ?, invoiceCw = ? WHERE id = ?'
with params [1, "15", 17408]
这个问题来自symfony/条令。但我已经尝试过很多不同的方法,错误不仅仅是打字错误或语法错误。无论我如何将sql输入数据库,都会发生这种情况,这与数据库的结构有关。
我总是得到一个错误:
sqlstate[42s22]:找不到列:“where子句”中的1054未知列“mainorderid”
奇怪的是-我从来没有指定mainorderid。我指定了id,并且该列存在并且是正确的列。
我的数据库是怎么改变这个查询的?
以下是我的服务器信息:
mysql服务器:localhost via unix socket服务器版本:5.5.59 protokoll版本:10 benutzer:mysql zeichensatz:utf-8 unicode(utf8)
apache mysql客户端版本:mysqlnd 5.0.11-dev-20120503-$id:$php-erweiterung:mysql
我的代码很简单:
$mainOrderData = $em->getRepository(MainOrderData::class)->find($id);
$woche = date("W");
$mainOrderData->isInvoiced = 1;
$mainOrderData->invoiceCw = $woche;
$em->flush();
我在实体中没有关系,也没有触发器postupdate之类的定义。所讨论的实体没有mainorderid,只有其他未连接到所操纵对象的实体。
如果使用手动sql查询,也会发生同样的情况—对id的任何引用都将更改为mainorderid。
1条答案
按热度按时间ffscu2ro1#
如果你的table上有一个触发器,就有可能发生这种情况gordon linoff 19分钟前
就是这样,触发器是隐藏的,我不知道它们在那里。这个错误消息也毫无帮助。
谢谢,戈登·林诺夫!