Insert, update, delete operations in PHP - Time & Space Complexity
When working with insert, update, and delete operations in PHP, it's important to know how the time needed grows as the data size grows.
We want to understand how these operations behave when the amount of data changes.
Analyze the time complexity of the following code snippet.
$array = [1, 2, 3, 4, 5];
// Insert an element at the end
$array[] = 6;
// Update an element at index 2
$array[2] = 10;
// Delete an element at index 1
unset($array[1]);
This code inserts a new item at the end, updates an existing item, and deletes an item from an array.
Look for loops or repeated actions that take time.
- Primary operation: Single insert, update, and delete on an array.
- How many times: Each operation happens once, no loops.
Each operation works directly on the array without looping through all elements.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | About 1 operation per insert, update, or delete |
| 100 | Still about 1 operation per action |
| 1000 | Still about 1 operation per action |
Pattern observation: The time does not grow with the size of the array for these direct operations.
Time Complexity: O(1)
This means each insert, update, or delete takes about the same time no matter how big the array is.
[X] Wrong: "Deleting an element always takes longer as the array grows because it needs to move all other elements."
[OK] Correct: In PHP arrays, deleting an element by key does not shift all elements automatically; it just removes that key, so time stays about the same.
Understanding how insert, update, and delete operations scale helps you explain your code choices clearly and shows you know how data changes affect performance.
"What if we used a loop to insert multiple elements one by one? How would the time complexity change?"
Practice
Solution
Step 1: Understand the purpose of each SQL command
INSERT INTOadds new rows,UPDATEchanges existing rows,DELETE FROMremoves rows, andSELECTretrieves data.Step 2: Match the command to adding new data
Since adding new data means inserting new rows, the correct command isINSERT INTO.Final Answer:
INSERT INTO -> Option BQuick Check:
Insert = Add new data [OK]
- Confusing UPDATE with INSERT
- Thinking DELETE adds data
- Using SELECT to add data
mysqli_query?Solution
Step 1: Identify the correct SQL syntax for updating
The correct syntax for updating isUPDATE table SET column = value WHERE condition.Step 2: Check each option's syntax
$sql = "UPDATE users SET email = 'new@example.com' WHERE id = 1"; matches the correct syntax. Options A, B, and D misuse SQL commands or syntax.Final Answer:
$sql = "UPDATE users SET email = 'new@example.com' WHERE id = 1"; -> Option DQuick Check:
Update syntax = UPDATE ... SET ... WHERE ... [OK]
- Using INSERT syntax for update
- Omitting WHERE clause in update
- Using DELETE or SELECT instead of UPDATE
$conn = new mysqli('localhost', 'user', 'pass', 'db');
$sql = "DELETE FROM products WHERE id = 10";
if ($conn->query($sql) === TRUE) {
echo "Deleted successfully";
} else {
echo "Error deleting record";
}Solution
Step 1: Understand the code logic
The code tries to delete a product with id 10. If the query runs without error, it prints "Deleted successfully".Step 2: Assume the query runs correctly
Since the SQL syntax is correct and connection is assumed valid, the query returns TRUE, so the success message prints.Final Answer:
Deleted successfully -> Option CQuick Check:
Successful DELETE query prints success message [OK]
- Assuming syntax error without checking code
- Confusing TRUE with FALSE return values
- Ignoring the if-else structure
$sql = "UPDATE users SET name = 'John'"; $conn->query($sql);
Solution
Step 1: Review the SQL update statement
The statement updates the name but does not specify which row to update because it lacks a WHERE clause.Step 2: Understand the impact of missing WHERE
Without WHERE, all rows in the table will be updated, which is usually unintended and considered an error.Final Answer:
Missing WHERE clause to specify which user to update -> Option AQuick Check:
Update without WHERE affects all rows [OK]
- Thinking quotes type causes error
- Confusing UPDATE with INSERT
- Ignoring missing WHERE consequences
users table who have not logged in for over a year. Which PHP code snippet correctly performs this operation assuming the last login date is stored in last_login column?Solution
Step 1: Understand the condition for deletion
We want to delete users whoselast_loginis older than one year, so the condition islast_login < DATE_SUB(NOW(), INTERVAL 1 YEAR).Step 2: Check each option's SQL logic
$sql = "DELETE FROM users WHERE last_login < DATE_SUB(NOW(), INTERVAL 1 YEAR)"; $conn->query($sql); correctly deletes users with last login older than one year. $sql = "UPDATE users SET last_login = NULL WHERE last_login > DATE_SUB(NOW(), INTERVAL 1 YEAR)"; $conn->query($sql); updates instead of deletes. $sql = "DELETE FROM users WHERE last_login > DATE_ADD(NOW(), INTERVAL 1 YEAR)"; $conn->query($sql); deletes users with last login in the future, which is wrong. $sql = "INSERT INTO users (last_login) VALUES (DATE_SUB(NOW(), INTERVAL 1 YEAR))"; $conn->query($sql); inserts new rows, which is incorrect.Final Answer:
$sql = "DELETE FROM users WHERE last_login < DATE_SUB(NOW(), INTERVAL 1 YEAR)"; $conn->query($sql); -> Option AQuick Check:
Delete with condition older than 1 year = $sql = "DELETE FROM users WHERE last_login < DATE_SUB(NOW(), INTERVAL 1 YEAR)"; $conn->query($sql); [OK]
- Using UPDATE instead of DELETE
- Wrong date comparison operators
- Using INSERT instead of DELETE
Ready to prove it?
Pass the test and this pattern moves unknown
