Использовать следующий идентификатор AUTO_INCREMENT в запросе?

Я знаю, что подобные вопросы задавались, но ни один из них, кажется, не работает для того, что я пытаюсь.

Я разрабатываю систему с mysqli / php, которая берет аудио файлы, загружает их, переименовывает их и сохраняет имя. Единственная проблема … Мне нужно, чтобы имя файла было «uploadedfile _ [$ id_here] .mp3»

У меня вся система загрузки работает нормально, но я на самом последнем шаге … Как заставить работать идентификатор.

Столбец id в этой таблице — Auto_Increment. Мне просто нужно выяснить, как «предсказать» идентификатор Auto_Increment, который будет присвоен этой предстоящей новой строке, и пометить его в конце имени аудиофайла с помощью переменной.

Один из методов, которые я попробовал:

$result = mysqli_query($conn, "SHOW TABLE STATUS LIKE 'test_table'");
$row = mysqli_fetch_array($result);
$nextId = $row['Auto_increment'];

print $nextId;

Но это не возвращает никаких результатов. Мой файл соединений должен быть настроен правильно, так как я использовал его для других запросов, и он работает нормально.

Заранее спасибо!

0

Решение

Это действительно зависит от того, как часто этот код будет выполняться?

Автоинкремент работает, увеличиваясь на 1 каждый раз. запись вставлена, я только что начал PHP сам, но, конечно, вы можете просто добавить 1 к вашему …

 $nextId = $row['Auto_increment'];

который даст вам следующее удостоверение личности. Если, как сказал Маерлин, у вас нет двух пользователей одновременно, в этом случае я думаю, что вы можете вставить в временную таблицу, пока запись вставляется, и, если это удастся, вставить в основную таблицу и удалить из временной таблицы , При вставке в временную таблицу сначала нужно выполнить проверку, чтобы увидеть, существует ли запись во временной таблице, прежде чем что-либо предпринимать.

Просто мои два цента.

0

Другие решения

Просто выполните ваш запрос INSERT и затем получите $mysqli->insert_id

http://php.net/manual/ru/mysqli.insert-id.php

0