How can PHP be used to manage file uploads and references effectively in a database?

To manage file uploads and references effectively in a database using PHP, you can create a form for users to upload files, store the files in a designated directory on the server, and then store the file references (such as file name, path, and any other relevant information) in a database table. This allows you to easily retrieve and display the uploaded files when needed.

<?php
// Check if form is submitted
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_FILES["file"])) {
    $file = $_FILES["file"];

    // Specify upload directory
    $uploadDir = "uploads/";

    // Move uploaded file to the specified directory
    if (move_uploaded_file($file["tmp_name"], $uploadDir . $file["name"])) {
        // Insert file reference into database
        $fileName = $file["name"];
        $filePath = $uploadDir . $fileName;

        // Connect to database (replace with your database credentials)
        $conn = new mysqli("localhost", "username", "password", "database");

        // Insert file reference into database table
        $sql = "INSERT INTO files (file_name, file_path) VALUES ('$fileName', '$filePath')";
        $conn->query($sql);

        // Close database connection
        $conn->close();

        echo "File uploaded successfully!";
    } else {
        echo "Error uploading file.";
    }
}
?>

<form method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <button type="submit">Upload</button>
</form>