What are common pitfalls when using PHP to generate sequential numbers in a table?

One common pitfall when using PHP to generate sequential numbers in a table is not properly handling concurrent requests, which can result in duplicate numbers being generated. To solve this issue, you can use a database auto-increment field or implement a locking mechanism to ensure that only one request can generate a number at a time.

// Using a database auto-increment field
// Assuming you have a table named 'items' with an auto-increment field 'id'

// Insert a new row into the table
$query = "INSERT INTO items (name) VALUES ('Item Name')";
$result = mysqli_query($connection, $query);

if($result) {
    $newId = mysqli_insert_id($connection);
    echo "Generated ID: " . $newId;
} else {
    echo "Error inserting item";
}
```

```php
// Using a locking mechanism
// Assuming you have a table named 'counters' with a field 'counter'

// Acquire a lock
$query = "SELECT counter FROM counters FOR UPDATE";
$result = mysqli_query($connection, $query);

if($result) {
    $row = mysqli_fetch_assoc($result);
    $currentCounter = $row['counter'];

    // Increment the counter
    $newCounter = $currentCounter + 1;
    $updateQuery = "UPDATE counters SET counter = $newCounter";
    $updateResult = mysqli_query($connection, $updateQuery);

    if($updateResult) {
        echo "Generated Number: " . $newCounter;
    } else {
        echo "Error updating counter";
    }
} else {
    echo "Error acquiring lock";
}