@Jony1337

Как исправить глюки с SELECT MAX(`id`)?

Есть такой кодик
$servername = "localhost";
$username = "";
$password = "";
$dbname = "";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT MAX(`id`) FROM `ia`";
$result = $conn->query($sql);
$row = $result->fetch_row();
$firstField = $row[0];
$nextID = $firstField +1 ;

когда идет запрос сразу двух человек у нас происходит первый запрос в базу с id = $nextID данные добавляются потом запрос второго человека переписывает инфу первого с тем же id , это происходит редко но всё равно как сделать нормалино ?
  • Вопрос задан
  • 230 просмотров
Решения вопроса 2
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
Не уверен, что это 100% поможет, не проверял логику работы этой функции, но попробовать стоит:
SELECT * FROM you_table WHERE id = LAST_INSERT_ID();


Иначе говоря:
SELECT LAST_INSERT_ID();

*Сразу не заметил... Но после с автоинкрементом лишним не будет.
Ответ написан
romy4
@romy4
Exception handler
Вам нужно получать этот самый id в момент ставки замкнув всё в транзакцию с запретом на чтение. а пользователю отдавать 0, чтобы потом система видев 0 от пользователя сделала эту самую вставку
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы