Плохой плохой дизайн.1. Отсутствие проверки ошибок в запросе и использования необработанных данных, предоставленных пользователем, в запросе, что приводит к уязвимости внедрения в SQL.2. Использование необработанных пользовательских имен файлов для хранения файлов, даже если к нему добавлен идентификатор базы данных.3. Слепо предполагая, что запрос вставки работает, так что msyql_insert_id может ничего не возвращать.3. слепо предполагая, что команда перемещения работает.
Лучшая / более безопасная методология:
if ($_FILES['art']['error'] !== UPLOAD_ERR_OK) {
die("Upload failed with error code " . $_FILES['art']['error']);
}
$filename = mysql_real_escape_string(basename($_FILES['art']['name']));
mysql_query("INSERT .... VALUES (1, 'Penguins', '$filename', ...)") or die(mysql_error());
move_uploaded_files(...) or die("Failed to move file");
Существует больше / лучшая проверка / обработка ошибок, которая может быть выполнена, но это скелетчто-то гораздо безопаснее / надежнее, чем ваша версия.