इम्हो आपको किसी अद्यतन क्वेरी की आवश्यकता नहीं है। जब भी कोई उपयोगकर्ता किसी फ़ाइल का अनुरोध करता है तो आप बस एक INSERT करते हैं:
<?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'],
));
}
?>
ऊपर दिए गए कोड पर कुछ संकेत:
- तैयार किए गए कथनों का उपयोग करें - किसी भी मान को सीधे SQL स्ट्रिंग में इंजेक्ट न करें।
- विवरण तालिका में हर बार file_name और items_download सम्मिलित करना बेकार हो सकता है। आपके पास यह जानकारी वैसे भी आपकी तालिका "स्रोत" में है। तो आमतौर पर आप Source.id को अपनी विवरण तालिका में डाल देंगे।