PHP & MySQL · Lesson 9 of 11
WHERE
Filter database rows with precise predicates.
Lesson
WHERE restricts which rows a query reads or changes. Combine conditions deliberately and use parentheses when AND and OR are mixed. Bind values rather than interpolating them, and ensure the filter reflects the intended authorization boundary.
This query returns only published lessons in a specific course.
Further guidance
Use migrations to version schema changes, constraints to protect relationships, and prepared statements for every dynamic value. Scope writes with a precise condition, check affected rows, and use transactions when multiple statements must succeed together. Store credentials outside source control.
Practice task: Create a fresh example for WHERE. Predict the result before running it, then change one input and explain why the result changes. Test a normal case and one boundary or invalid case where it applies. Compare your output with the example and note one rule you would use in a real project.
Code examples
WHERE
SQL
SELECT title
FROM lessons
WHERE tutorial_id = 3
AND is_published = 1
ORDER BY sort_order;
Expected output
Published lesson titles for tutorial 3
Key points
- Filter database rows with precise predicates.
- Use prepared statements for values and constraints for data integrity.
- Scope writes carefully and verify their result.
Your learning progress
Finish this lesson
Optional practice
PHP playground
This site does not execute learner-provided PHP code. Connect a secured PHP sandbox service before enabling code execution.
Execution is disabled. No code is sent to a server.