У меня есть простая таблица, подобная следующей:
class SnookerCurrentInfo extends Doctrine_Record
{
public function setTableDefinition()
{
$this->hasColumn('current_frame_id', 'integer', 4, array('notnull' => 'false'));
$this->hasColumn('current_player_id', 'integer', 4, array('notnull' => 'false'));
$this->hasColumn('current_score1', 'integer', 4, array('notnull' => 'false'));
$this->hasColumn('current_score2', 'integer', 4, array('notnull' => 'false'));
}
public function setUp()
{
$this->setTableName('snooker_current_info');
}
}
, и я хотел бы сохранить только одну запись в этой таблице.Поэтому каждый раз, когда значение изменяется, я считываю запись с id = 1, изменяю объект и выполняю сохранение.как следующее:
$info = Doctrine::getTable('SnookerCurrentInfo')->find(1);
$info->current_frame_id = $jsonInfo['current_frame_id'];
$info->current_player_id = $jsonInfo['current_player_id'];
$info->current_score1 = $jsonInfo['current_score1'];
$info->current_score2 = $jsonInfo['current_score2'];
$info->save();
но странная вещь, я пытаюсь прояснить это.Скажем, сначала, запись (30, 1, 1, 0), и я переключаю игрока, поэтому обновите запись до (30, 2, 1, 0).и я снова переключаю плеер, поэтому запись должна быть обновлена до (30, 1, 1, 0), , но это не влияет на базу данных !!В базе данных запись все еще остается как (30, 2, 1, 0) !!!!
Но если после (30, 2, 1, 0) я обновлю счет до (30, 2, 1, 1) и затем переключите плеер обратно (30, 1, 1, 1), тогда все в порядке.
Что это?Как мне с этим бороться?