Imho bạn không cần bất kỳ truy vấn CẬP NHẬT nào. Bạn chỉ cần thực hiện CHÈN mỗi khi người dùng yêu cầu tệp:
<?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'],
));
}
?>
Một số gợi ý về đoạn mã trên:
- Sử dụng các câu lệnh đã chuẩn bị - không bao giờ đưa bất kỳ giá trị nào trực tiếp vào một chuỗi SQL.
- Việc chèn file_name và items_download vào bảng chi tiết có thể là vô ích. Bạn vẫn có thông tin này trong bảng "Nguồn" của mình. Vì vậy, thông thường bạn sẽ chỉ đặt Source.id vào bảng chi tiết của mình.