我正在尝试通过Doctrine从PHP更新MYSQL枚举字段中的值(分别为5.3和1.2 )。
当我尝试这样做时,我得到了一个错误:
$q = Doctrine_Query::create()
->update('StMessages')
->set('status','new')
->where('message_id = ?',$msg_id);我收到一个sql状态错误,告诉我'new‘列不存在。如果我输入3而不是new (大概是'new‘值的内部索引),那么查询就会工作。事实上,它也发生在SQL客户端中,所以这可能是这个版本的MySQL的一个怪癖?它是5.1.45。
有人知道这是MySQL应该如何对待枚举的吗?或者这更可能是一个教条问题?我将'use_native_enum‘设置为true。
发布于 2011-04-18 21:43:34
我认为这实际上是一个与更新字段值时的字符串引用有关的问题。我不确定是Doctrine还是我的错。
发布于 2011-04-15 01:27:33
给出一张表
create table test (
enumfield enum('a','b','c')
);你应该能够做到
update test set enumfield='a';这就是num字段的全部意义所在--不必弄乱索引之类的东西。
枚举字段的确切定义是什么?
https://stackoverflow.com/questions/5667033
复制相似问题