ВСТАВИТЬ новую строку и MKDIR с именем вставленного идентификатора строки - PullRequest
0 голосов
/ 08 сентября 2010

Страница должна ВСТАВИТЬ строку и СДЕЛАТЬ каталог с именем идентификатора этой строки, когда пользователь нажимает кнопку загрузки, будет ли этот скрипт работать? Что может пойти не так?.

(когда нажата кнопка загрузки)
// вставить новую строку
$ query = "INSERT INTO photoalbum (userid) VALUES ($ userid)";
mysql_query ($ query);

// получаем идентификатор этой строки для создания каталога с таким именем
$ getid = "SELECT id FROM photoalbum WHERE userid = $ userid order by id desc limit 1";
$ result= mysql_query ($ getid);
$ thename = mysql_results ($ result, 0, "id");
mkdir ('userimages / $ userid / photoalbums / $ thename');

{скрипт, который загружает файлы в новую папку}

Безопасно ли вставлять и выбирать строку, которую я только что вставил на той же странице, сразу после того, как вставка была выполнена?Я думал, что если запрос SELECT не выбирает строку, которую я только что вставил, а вместо предыдущей строки, потому что INSERT не достаточно быстрый, и запрос SELECT получает предыдущую строку вместо этого.Это возможный сценарий?

1 Ответ

0 голосов
/ 08 сентября 2010

Почему бы не использовать mysql_insert_id()?

Что касается вашего вопроса, если вставка прошла успешно, то нет проблем с выполнением выбора даже через миллисекунду после вставки.

Я только что заметил другую проблему:

mkdir('userimages/$userid/photoalbums/$thename');

Из-за одинарных кавычек переменные $ userid и $ thename будут использоваться буквально, поэтому вместо них используйте двойные кавычки, подобные этому:

mkdir("userimages/$userid/photoalbums/$thename");
...