2015-08-12 3 views
1

У меня есть таблица изображений в базе данных, которая содержит идентификатор (это автоматический номер сообщения об увеличении), имя файла (имя загружаемого собственного имени) и временная метка и т. Д. .Изменение имени загруженного файла с другим столбцом (идентификационным номером) из той же таблицы в базе данных

Я загружаю файлы в каталог и добавляю информацию в таблицу. Я хочу изменить имя файла с идентификационным номером (или номером заказа) из таблицы базы данных в каталоге после загрузки и размещения информации в таблице базы данных.

Имейте в виду, что я немного новичок в php, и я хотел бы узнать с объяснением кода. как эта строка для чего, какой метод для чего ..

большое спасибо за ваше время.

Вот код:

//CONNECTS TO DATABASE 
    $link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 
    if (!$link) 
    { 
     die('Could not connect: '. mysqli_error()); 
    } 

    //SELECTS DATABASE 
    $db_selected = mysqli_select_db($link, DB_NAME); 
    if (!$db_selected) 
    { 
     die('Can\'t use' . DB_NAME . ': ' . mysqli_error()); 
    } 

    //FILE NAME 
    $userNameSend = $_FILES ['user-file']['name']; 

    //INSERTS INTO DATABASE 
    $sql = "INSERT INTO images (USERIMAGENAME) VALUES ('$userNameSend')"; 

    //CONNECTION CHECK 
    if (!mysqli_query($link, $sql)) 
    { 
     die('Error: ' . mysqli_error()); 
    } 
    else 
    { 
     header('Location: ./board.php'); 
    } 
} 
mysqli_close($link); 

ответ

1

После вставки (в случае успеха) получить идентификатор последней вставленной строки:

$last_id = mysqli_insert_id($link); 

Получить расширение загруженного файла:

$ext = pathinfo($userNameSend, PATHINFO_EXTENSION); 

Затем переименуйте загруженный файл ($upload_dir - это путь к каталогу, в котором вы сохраняют файлы):

rename($upload_dir.$userNameSend, $upload_dir.$last_id.".".$ext); 
+0

привет, спасибо. Я пробую ваш код. он меняет имя, но я получаю только имя «0», почему вы думаете, что оно только меняется на «0.jpg»? это ошибка соединения или он не может получить идентификатор при подключении? – idexo

+0

Успешна ли вставка? Является ли назначение $ last_id = mysqli_insert_id ($ link) после вставки? Этот ответ может быть полезен: http://stackoverflow.com/a/8243685/3052648 – MazzCris

+0

Я столкнулся с этим ответом: http://stackoverflow.com/a/13882839/5217950 Я постараюсь проверить это сначала. Я ценю вашу помощь. – idexo

Смежные вопросы