sql >> Database teknologi >  >> RDS >> Mysql

Indsæt IP-adressen på de downloadede filer i mysql

Jeg har ikke brug for nogen UPDATE-forespørgsel. Du laver bare en INSERT hver gang en bruger anmoder om en fil:

<?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'],
    ));   

}
?>

Nogle tip til koden ovenfor:

  • Brug forberedte sætninger - injicer aldrig nogen værdi direkte i en SQL-streng.
  • Det kan være nytteløst at indsætte file_name og items_download i detaljetabellen hver gang. Du har alligevel disse oplysninger i din tabel "Kilde". Så normalt ville du bare sætte Source.id ind i din detaljeretabel.


  1. Parametrisering af filnavn i MYSQL LOAD DATA INFILE

  2. MySQL returnerer maks. værdi eller null, hvis en kolonne ikke har nogen værdi

  3. Er LAST_INSERT_ID() i en transaktion pålidelig?

  4. hvorfor opdeler vi en mysql-tabel i mange mindre tabeller?