我正在尝试通过Doctrine(分别为5.3和1.2)从PHP更新MYSQL枚举字段中的值。
我尝试这样做时出错:
$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。
答案 0 :(得分:0)
给出一个表
create table test (
enumfield enum('a','b','c')
);
你应该可以做到
update test set enumfield='a';
这是num字段的全部内容 - 不必乱用索引等等。
你的枚举字段的确切定义是什么?
答案 1 :(得分:0)
我认为这实际上是在更新字段值时引用字符串的问题。我不确定Doctrine或我是否有过错。