我有一个包含例如以下文字的文本字段: -
“一种传统的英式菜肴,包括约克郡布丁面糊的香肠,通常配上蔬菜和肉汁。”
此文本字段的形式只是使用其ID更新项目记录。如果我编辑部分文本字段并替换“和肉汁”。与“幽默”。这样文本字段现在包含
“一种传统的英式菜肴,包括约克郡布丁面糊中的香肠,通常配上蔬菜和腐肉。”
我收到以下异常: -
致命错误:未捕获的异常 'Doctrine_Query_Exception'用 消息'未知组件别名 好奇的 C:\项目\氮\轻量级\ SYSTEM \数据库\原则\查询\ Abstract.php:780 堆栈跟踪: C:\项目\亚硝酸\轻质\ SYSTEM \数据库\学说\查询\ Abstract.php(767): Doctrine_Query_Abstract-> getQueryComponent('humous')C:\ Projects \ nitrous \ lightweight \ system \ database \ Doctrine \ Query \ Set.php(58): Doctrine_Query_Abstract-> getAliasDeclaration( '腐殖土') C:\项目\亚硝酸\轻质\ SYSTEM \数据库\学说\查询\ Abstract.php(2092): Doctrine_Query_Set->解析('i.details = '一个 ...') C:\项目\亚硝酸\轻质\ SYSTEM \数据库\学说\ Query.php(1058): Doctrine_Query_Abstract-> _processDqlQueryPart('set',Array) C:\项目\亚硝酸\轻质\ SYSTEM \数据库\学说\查询\ Abstract.php(971): Doctrine_Query-> getSqlQuery(阵列) C:\项目\亚硝酸\轻质\ SYSTEM \数据库\学说\查询\ Abstract.php(1030): Doctrine_Query_Abstract-> _execute(阵列) C:\项目\氮\轻量级\ SYSTEM \申请 在 C:\项目\氮\轻量级\ SYSTEM \数据库\原则\查询\ Abstract.php 在780行
如果有兴趣的话,我正在使用Doctrine 1.0.6连接到CodeIgniter 1.7.0。
我实际执行更新的学说查询如下: -
public function updateItems($id, $arrayItem) {
$query = new Doctrine_Query();
$query->update('Item i');
foreach($arrayItem as $key => $value) {
$query->set('i.'.$key, "'".$value."'");
}
$query->where('i.id = ?', $id);
return $query->execute();
}
这看起来很奇怪,因为如果我更换整个字符串“在约克郡布丁面糊中包含香肠的传统英式菜肴,通常配上蔬菜和腐肉。”与完全不同的东西,如只是“测试”它不会抛出异常,并且工作得很好。这令我感到困惑......这是一个学说中的错误还是我错过了什么?
答案 0 :(得分:2)
很明显,Doctrine认为
我怀疑你对数据字符串做了什么,你认为你在做什么。在Doctrine中是否有一个设置来让它转储它生成的实际SQL?
答案 1 :(得分:0)
我找到了解决自己问题的方法。看来这是Doctrine 1.0.6中的已知错误。我已升级到Doctrine 1.1.1,这似乎解决了这个问题。
我会建议尝试不同版本的Doctrine,看看这是否能解决你的问题!如果你这样做,谢谢你回答。