Существует ли способ принудить PHP к ожиданию, пока MySQL не закончен с транзакцией?

Какова точная цель этого свойства .prototype?

Интерфейс для стандартных классов становится расширяемым. Например, вы используете класс Array, и вам также нужно добавить собственный сериализатор для всех ваших объектов массива. Вы бы потратили время на написание подкласса, или использовали состав или ... Свойство прототипа решает эту проблему, позволяя пользователям контролировать точный набор членов / методов, доступных для класса.

Думайте о прототипах как о дополнительном vtable-указателе. Когда некоторые члены отсутствуют в исходном классе, прототип ищется во время выполнения.

5
задан Theodore 19 June 2009 в 02:22
поделиться

3 ответа

То, что вы видите, называется «грязным чтением». Используйте InnoDB и установите уровень изоляции на сериализуемый. Затем оберните все запросы в блоки транзакций:

$dbh->beginTransaction();
// run queries
$dbh->commit();
2
ответ дан 15 December 2019 в 06:33
поделиться

Если бы PHP просто ждал, вы бы получили большое количество заданий cron, складывающихся в.

Что вы действительно хотите, так это использовать что-то вроде анахрона, чтобы убедиться, что в любой момент времени выполняется только один экземпляр скрипта. Также вы можете сделать что-то вроде следующего:

<?php

  if (file_exists('/tmp/myscriptlock')) exit();
  touch('/tmp/myscriptlock');

  // do your stuff

  unlink('/tmp/myscriptlock');
1
ответ дан 15 December 2019 в 06:33
поделиться

Моя первоначальная мысль была простой блокировкой записи mysql, но я не Я достаточно хорошо понимаю проблему. В любом случае это может помочь: http: //www.perplexedlabs. com / 2008/02/06 / mutex-with-php-and-mysql /

0
ответ дан 15 December 2019 в 06:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: