🧠 MCQ Test: PHP + MySQL (PDO)
🔹 Section A: Basics (1–10)
1. What does PDO stand for?
A) PHP Database Object
B) PHP Data Object
C) Personal Data Object
D) Program Data Object
2. Which function is used to connect PDO?
A) mysqli_connect()
B) new PDO()
C) connect_db()
D) db_open()
3. Which fetch mode returns associative array?
A) PDO::FETCH_NUM
B) PDO::FETCH_ASSOC
C) PDO::FETCH_OBJ
D) PDO::FETCH_BOTH
4. What does AUTO_INCREMENT do?
A) Deletes rows
B) Increases value automatically
C) Encrypts data
D) Joins tables
5. Which SQL command is used to read data?
A) INSERT
B) UPDATE
C) SELECT
D) DELETE
6. Which method executes prepared statement?
A) run()
B) execute()
C) query()
D) start()
7. Which is NOT a CRUD operation?
A) CREATE
B) READ
C) MODIFY
D) DELETE
8. Which is correct PDO DSN format?
A) mysql://localhost/db
B) mysql:host=localhost;dbname=test
C) localhost:mysql:test
D) db:mysql://localhost
9. Which function fetches single row?
A) fetch()
B) fetchAll()
C) get()
D) row()
10. Which function returns last inserted ID?
A) getLastId()
B) lastInsertId()
C) insertId()
D) lastId()
🔹 Section B: Intermediate (11–20)
11. Prepared statements help prevent?
A) Syntax error
B) SQL Injection
C) Server crash
D) Memory leak
12. Which symbol is used in named parameters?
A) ?
B) :
C) @
D) #
13. bindParam() binds by?
A) Value
B) Reference
C) Copy
D) Pointer
14. Which is safer?
A) Direct query
B) Prepared statement
C) Echo SQL
D) None
15. What does rowCount() return?
A) Columns
B) Tables
C) Affected rows
D) Errors
16. Which JOIN returns all rows from left table?
A) INNER JOIN
B) RIGHT JOIN
C) LEFT JOIN
D) FULL JOIN
17. Which is used for error handling?
A) try-catch
B) echo
C) die()
D) print()
18. Which function hashes password?
A) md5()
B) hash()
C) password_hash()
D) encrypt()
19. Which verifies password?
A) password_check()
B) password_verify()
C) verify_pass()
D) check_hash()
20. Index is used for?
A) Delete data
B) Speed up query
C) Insert data
D) Backup
🔹 Section C: Advanced (21–30)
21. Transaction starts with?
A) start()
B) beginTransaction()
C) open()
D) init()
22. Which method saves transaction?
A) save()
B) commit()
C) push()
D) execute()
23. Which undoes transaction?
A) cancel()
B) rollback()
C) undo()
D) reverse()
24. VARCHAR is?
A) Fixed length
B) Dynamic length
C) Integer
D) Boolean
25. CHAR is?
A) Dynamic
B) Fixed
C) Float
D) Object
26. ACID stands for?
A) Atomic, Consistent, Isolated, Durable
B) Active, Clear, Indexed, Data
C) Auto, Control, Input, Data
D) None
27. Which is faster for large data?
A) No index
B) Index
C) Random query
D) SELECT *
28. SQL Injection occurs when?
A) Query too fast
B) User input not sanitized
C) DB full
D) Server slow
29. LIMIT is used for?
A) Delete rows
B) Restrict results
C) Join tables
D) Insert rows
30. Which is best practice?
A) Plain SQL
B) Prepared statements
C) Hardcoded values
D) No validation
✅ Answer Key
1-B 2-B 3-B 4-B 5-C
6-B 7-C 8-B 9-A 10-B11-B 12-B 13-B 14-B 15-C
16-C 17-A 18-C 19-B 20-B21-B 22-B 23-B 24-B 25-B
26-A 27-B 28-B 29-B 30-B
🎯 Score Evaluation
- 25–30 → 🔥 Job Ready
- 18–24 → 👍 Good, revise advanced
- 10–17 → ⚠️ Needs practice
- <10 → ❌ Learn basics again






