Как я могу защитить свой сервер от нескольких запросов на порт 80?

mysqli_insert_id не возвращает идентификатор последней строки таблицы. Из docs , it:

... возвращает идентификатор, сгенерированный запросом в таблице со столбцом, имеющим атрибут AUTO_INCREMENT. Если последний запрос не был оператором INSERT или UPDATE или если в измененной таблице нет столбца с атрибутом AUTO_INCREMENT, эта функция будет возвращать ноль.

blockquote>

(Мой акцент)

То есть, если вы должны немедленно запустить после вставку, которая автоматически сгенерировала идентификатор, в том же соединении вы сделал вставку с, он вернет идентификатор, сгенерированный для этой вставки.

Это иллюстрируется примером в документах, связанных выше:

$query = "INSERT INTO myCity VALUES (NULL, 'Stuttgart', 'DEU', 'Stuttgart', 617000)";
$mysqli->query($query);

printf ("New Record has id %d.\n", $mysqli->insert_id);

1
задан Artelius 7 July 2010 в 23:43
поделиться

2 ответа

Что ж, если вы хотите поймать его до того, как он достигнет PHP, модуль Apache будет одним из подходов, например mod_cband . Помимо этого, ваш брандмауэр может вам помочь, но я не знаю, подходит ли для этого стандартный Windows.

В остальном обработать это в вашем PHP-коде было бы не так уж плохо. Да, проверка БД требует времени, но все же быстрее, чем сбор и возврат XML.

2
ответ дан 2 September 2019 в 23:13
поделиться

Реализовать контроль доступа к ресурсам, отслеживать активные сессии и не инициировать тяжелые задачи, пока у конкретного пользователя открыта задача...?

0
ответ дан 2 September 2019 в 23:13
поделиться
Другие вопросы по тегам:

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