Imho nie potrzebujesz żadnego zapytania UPDATE. Po prostu wykonujesz INSERT za każdym razem, gdy użytkownik żąda pliku:
<?php
$fileid = $_GET['fileid'];
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
$sql = "SELECT * FROM Source WHERE id=" . (int)$fileid;
foreach ($pdo->query($sql) as $row) {
$statement = $pdo->prepare("INSERT INTO details (name, download, time, ip) VALUES (?, ?, NOW(), ?)");
$statement->execute(array(
$row['item_name'],
$row['items_download'],
$_SERVER['REMOTE_ADDR'],
));
}
?>
Kilka wskazówek dotyczących powyższego kodu:
- Użyj przygotowanych instrukcji - nigdy nie wstrzykuj żadnej wartości bezpośrednio do ciągu SQL.
- Za każdym razem wstawianie nazwy_pliku i pobierania elementów do tabeli szczegółów może być bezużyteczne. I tak masz te informacje w swojej tabeli „Źródło”. Więc zwykle po prostu umieściłbyś Source.id w swojej tabeli szczegółów.