За последние 24 часа нас посетили 17447 программистов и 1288 роботов. Сейчас ищут 1602 программиста ...

Добавление данных по последнему id

Тема в разделе "PHP и базы данных", создана пользователем Miracleon, 4 окт 2020.

  1. Miracleon

    Miracleon Новичок

    С нами с:
    9 мар 2020
    Сообщения:
    25
    Симпатии:
    0
    Второй запрос выполняется быстрее из-за этого mysqli_insert_id не успевает получить последний id. Как исправить?
    PHP:
    1. <?php          
    2. $uploadDir = "uploads/";
    3.  
    4. $adres=$_POST['adres'];
    5. $city=$_POST['city'];              
    6.  
    7. $fileName = basename($_FILES['file']['name']);
    8. $uploadFilePath = $uploadDir.$fileName;
    9.  
    10.    $sql1="INSERT INTO room (id_city,id_user,adres) values ('$city','$id_user','$adres')";
    11.        
    12.     mysqli_query($con, $sql1);
    13.     $id_room=mysqli_insert_id($con);
    14.                
    15.     if(move_uploaded_file($_FILES['file']['tmp_name'], $uploadFilePath)){
    16.  
    17.         $sql2 = "INSERT INTO images (id_room, name_image) VALUES ('".$id_room."', '".$fileName."')";
    18.         $insert = $con->query($sql2);
    19.     }
    20. ?>  
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.487
    Симпатии:
    281
    Запрашивать последний вставленный ID до первого запроса, и увеличить его значение на единицу.
    Кстати, его можно использовать и в первом запросе, не надеясь на AUTO_INCREMENT
     
    #2 Drunkenmunky, 4 окт 2020
    Последнее редактирование: 4 окт 2020
    Miracleon нравится это.
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    749
    Адрес:
    Татарстан
    Да бред это... Пока первый запрос не отработает и не получите последний id, второй даже не начнет работать... Это ж не ассинхронное программирование
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    найс говнокод.
    тут используешь процедурный стиль
    там - ооп функцию.

    удачное выполнение 1ого INSERT нигде не фиксируется.
    Последний айди можно получить в sql запросе LAST_INSERT_ID()
    --- Добавлено ---
    и да, используй мульти-запрос