У меня есть метод, который убивает персонажа, и если этот персонаж женат на другого персонажа, он также убивает их. < /p>
public function kill(string $reason): void
{
$this->update(array(
'character_status' => "Dead",
'character_death_reason' => $reason
));
// To ensure it doesn't make an infinite loop.
if($this->isMarried() && $reason != "wedding") {
$husband = $this->getHusband();
$husband->kill('wedding');
}
}
< /code>
Этот метод вызывается в коде, 300 строк после начала транзакции, но может быть возобновлено точно так: < /p>
// For context, every Character() belong to a City(), and I'm doing a transaction per City.
$city->beginTransaction();
[...]
foreach($characterAlive as $character) {
$character->kill('because_i_want_to');
}
[...]
$city->commitTransaction();
< /code>
работает для каждого персонажа в живых. Но если у персонажа есть муж, транзакция идет на «Заблокированную таблицу». Проблема: < /p>
Ошибка: SQLState [Hy000]: общая ошибка: 1205 Тайм -аут ожидания блокировки; Попробуйте перезапустить транзакцию.
Все мои заинтересованные таблицы находятся в innodb конфигурации хранения, и я использую singleton . Когда я действую в разных рядах (характер_id, являющийся моим основным ключом a_i), я не понимаю, почему он работает на Foreach, но не в том случае, если класс символов создает еще один класс символов.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... tanciation
PHP/SQL (MARIADB) - Транзакция с самостоятельным инстанцирацией ⇐ Php
Кемеровские программисты php общаются здесь
-
Anonymous
1744981508
Anonymous
У меня есть метод, который убивает персонажа, и если этот персонаж женат на другого персонажа, он также убивает их. < /p>
public function kill(string $reason): void
{
$this->update(array(
'character_status' => "Dead",
'character_death_reason' => $reason
));
// To ensure it doesn't make an infinite loop.
if($this->isMarried() && $reason != "wedding") {
$husband = $this->getHusband();
$husband->kill('wedding');
}
}
< /code>
Этот метод вызывается в коде, 300 строк после начала транзакции, но может быть возобновлено точно так: < /p>
// For context, every Character() belong to a City(), and I'm doing a transaction per City.
$city->beginTransaction();
[...]
foreach($characterAlive as $character) {
$character->kill('because_i_want_to');
}
[...]
$city->commitTransaction();
< /code>
работает для каждого персонажа в живых. Но если у персонажа есть муж, транзакция идет на «Заблокированную таблицу». Проблема: < /p>
Ошибка: SQLState [Hy000]: общая ошибка: 1205 Тайм -аут ожидания блокировки; Попробуйте перезапустить транзакцию.
Все мои заинтересованные таблицы находятся в [b] innodb [/b] конфигурации хранения, и я использую [b] singleton [/b]. Когда я действую в разных рядах (характер_id, являющийся моим основным ключом a_i), я не понимаю, почему он работает на Foreach, но не в том случае, если класс символов создает еще один класс символов.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79580642/php-sql-mariadb-transaction-with-self-instanciation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия