0
我有以下字段的格式:主义查询来更新用户表
- 电子邮件
- 密码
- 网址
- RESPONSABLE
- 派斯(这是一个multicheckbox)
- 角色
我已经创建了Model_Users类
public function updateUser($user) {
$q = Doctrine_Query::create()
->update('Model_Users usr'); //aca estaba el ;
foreach ($user as $k => $v) {
if ($k == 'pais' || $k == 'id') {
continue;
} else {
$q->set("usr.$k", '?', $v);
//echo "Key: $k => Value: $v ||";
}
}
$q->where("usr.id=$user[id]");
$q->execute();
}
内这种方法的问题是,这是不是真的更新...如果我这样做呼应$q->getSqlQuery()
SQL查询我得到的是UPDATE users SET email = ?, password = ?, url = ?, responsable = ?, role = ? WHERE (id = 150)
。
我猜我不能使用foreach循环来获得这个权利......那么围绕它的方式是什么?
当我这样做,我得到一个异常。例如,如果我将电子邮件[email protected]更改为[email protected],我会得到'消息:未知组件别名roberto1' – 2011-06-13 16:50:32
这似乎表明'$ k'实际上是与$ v'相对的值...你可以发布你迭代的数据的var_dump吗?在查看Doctrine_Query :: update的文档之后,看起来您对Doctrine_Query :: set调用的初始签名就好了。我想也许它一直是你阵列的问题...... – prodigitalson 2011-06-13 19:22:27