davidka: $ в конце означает, что это конец строки. Можно и без него, но не рекомендуется. То есть, вероятно, вам нужно
location ~* ^/(\d+)/(\d+)/(\w+)$
Денис: Вы можете динамически сгенерировать 10 джойнов:
SELECT * FROM `servers` s
INNER JOIN server_mod m1 ON m1.server_id = s.server_id
INNER JOIN server_mod m2 ON m2.server_id = s.server_id
WHERE `server_game`='minecraft' AND m1.mod_id = 6 AND m2.mod_id = 7;
Это не так плохо, как использовать like по текстовому полю, но всё равно плохо :) Если придумаю что-то адекватное, напишу.
CREATE TABLE `server_mod` (
`server_id` mediumint(5) unsigned NOT NULL,
`mod_id` integer unsigned not null
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SELECT * FROM `servers` s
INNER JOIN server_mod m ON m.server_id = s.server_id
WHERE `server_game`='minecraft' AND m.mod_id in (6, 7);
Правда, это даст на выбор, где есть мод 6 или 7. Если вы хотите оба одновременно, то, если честно, красивое решение сразу в голову не приходит, разве что генерить много джойнов.
mishapsv: подозреваю, вы неправильно с ним работаете.
Как выглядит код, который работает с этим fltr?
И ещё раз обращаю ваше внимание, что стоит заменить fltr.filter на arr.filter (иначе, единожды откинув значение, оно уже не вернётся).
\w — это 0-9a-zA-Zа-яА-Я, если ничего не забыл.
Для удовлетворения этой регулярки выбираются самые "жирные" куски при возможном совпадении.
То есть на \w+ досталось 1, \d{3} — 200 перед ним, .+ — всё остальное.
Если скажете, что надеетесь получить, смогу ответить, какая регулярка подойдёт.
Mysqli и PDO не связаны, просто испугало использование mysql.
Нужно блокировать таблицу целиком, я так и написал.
Но для блокировки таблицы нужна транзакция. Причём, уровень изолированности должен быть Serializable. Подробнее можно прочитать тут.
Ну или про уровни изолированности в вики неплохо объяснено.
nuhena:
Связь -- берём какие-то сырые данные (например, массив. Ассоциативный или обычный). Затем делаем из этого объект. Ну или наоборот. Где-то тут ответственность дата маппера и заканчивается.
Репозиторий обычно использует дата маппер в результате своей работы. Но в целом -- не обязан.
nuhena: Сохранять репозиторий обычно не умеет. Не совсем его ответственность.
Нет, отличие именно в том, что data mapper обеспечивает связь между сущностью где-то (обычно БД) с объектом в памяти.
Repository же занимается именно "работой" с какой-то коллекцией.
Mike Ro: не сталкивался. Если честно, даже не видел особой необходимости: если надо что-то очень мелкое, у меня есть файлик test.php, его я запускаю из консоли (несколько нажатий клавиш), а почти всегда в обычных ситуациях удобнее именно дебагер (не слишком часто мне хватает одного файла без зависимостей, а между файлами с дебагером как-то сподручнее).
fman2: Посмотрите, нет ли шансов, что они устраивают какие-то локи друг другу.
То есть возможно ли, что они ставят блокировки на одни и те же строчки/таблицы?
Вообще, первое, что приходит в голову — какой-нибудь скрипт, устраивающий адские дедлоки в цикле.
В кроне/просто в фоне нет ничего, что могло бы себя странно вести?