What are the best practices for storing and marking winning codes in a MySQL database?

When storing and marking winning codes in a MySQL database, it's important to ensure data integrity and security. One way to do this is by using a unique identifier for each winning code and marking it as used once it has been redeemed. This can be achieved by creating a separate table to store the winning codes and their status.

<?php
// Connect to MySQL database
$mysqli = new mysqli("localhost", "username", "password", "database");

// Create a table to store winning codes
$createTableQuery = "CREATE TABLE IF NOT EXISTS winning_codes (
                        id INT AUTO_INCREMENT PRIMARY KEY,
                        code VARCHAR(10) NOT NULL UNIQUE,
                        is_used BOOLEAN DEFAULT 0
                     )";
$mysqli->query($createTableQuery);

// Insert a winning code into the table
$winningCode = "ABC123";
$insertQuery = "INSERT INTO winning_codes (code) VALUES ('$winningCode')";
$mysqli->query($insertQuery);

// Mark a winning code as used
$codeToMark = "ABC123";
$updateQuery = "UPDATE winning_codes SET is_used = 1 WHERE code = '$codeToMark'";
$mysqli->query($updateQuery);

// Close database connection
$mysqli->close();
?>