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