Wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Đề trắc nghiệm PHP và MySQL

Total questions: 29

Worksheet time: 15mins

Name
Class
Date
1.

Làm thế nào để lấy từng hàng dữ liệu từ kết quả truy vấn trong PHP?

a)

for( row=row = result->fetch_assoc())

b)

while( row=row = result->fetch_assoc())

c)

row=row = result->get_row()

d)

foreach( rowinrow in result->fetch_assoc())

2.

Nếu thêm dữ liệu vào bảng mà chỉ định giá trị cho một số cột, bạn cần lệnh SQL nào?

a)

ADD INTO table_name (column1, column2) VALUES (value1, value2);

b)

CREATE table_name (column1, column2) VALUES (value1, value2);

c)

INSERT table_name VALUES (value1, value2);

d)

INSERT INTO table_name (column1, column2) VALUES (value1, value2);

3.

Hàm nào được sử dụng để đếm số hàng trong kết quả truy vấn?

a)

$result->row_count()

b)

$result->rows_count

c)

$result->count_rows()

d)

$result->num_rows

4.

Mối quan hệ giữa PHP và cơ sở dữ liệu là gì?

a)

PHP có thể tương tác với nhiều hệ quản trị cơ sở dữ liệu khác nhau

b)

PHP chỉ hỗ trợ cơ sở dữ liệu MySQL

c)

PHP chỉ hỗ trợ cơ sở dữ liệu dạng NoSQL

d)

PHP không hỗ trợ làm việc với cơ sở dữ liệu

5.

Khi thêm dữ liệu vào bảng products, làm thế nào để đảm bảo rằng dữ liệu không bị trùng lặp dựa trên cột product_code?

a)

Tất cả các cách trên đều đúng

b)

Sử dụng chỉ mục (INDEX) trên cột product_code

c)

Sử dụng khóa chính (PRIMARY KEY) trên cột product_code

d)

Thêm điều kiện kiểm tra trùng lặp trong PHP trước khi thêm

6.

Lệnh nào được sử dụng để kết nối PHP với MySQL?

a)

mysql_connect()

b)

connect_mysql()

c)

mysqli_connect()

d)

pdo_connect()

7.

Để cập nhật email của một người dùng trong bảng users dựa trên ID, bạn sử dụng câu lệnh sau. Hàm bind_param() với tham số "si" có ý nghĩa gì? stmt=stmt = conn->prepare("UPDATE users SET email = ? WHERE id = ?"); stmt−>bindparam(stmt->bind_param( email, $id); $stmt->execute();

a)

Không có ý nghĩa đặc biệt, chỉ là cú pháp cố định

b)

Chỉ định các kiểu dữ liệu của tham số: s là string, i là integer

c)

Chỉ định kiểu của biến trong PHP: s là số thực, i là số nguyên

d)

Định dạng chuỗi trong câu lệnh SQL

8.

Lệnh nào trong PHP được dùng để thực thi câu lệnh SQL?

a)

$conn->execute()

b)

$conn->command()

c)

$conn->query()

d)

$conn->run()

9.

Hàm nào trong PHP được dùng để ngăn SQL Injection khi sử dụng MySQLi?

a)

execute()

b)

prepare()

c)

mysqli_real_escape_string()

d)

escape_input()

10.

Khi kết nối đến cơ sở dữ liệu MySQL bằng PHP, bạn nên thực hiện điều gì nếu kết nối thất bại?

a)

Tiếp tục thực thi chương trình mà không cần kết nối

b)

Ghi lại lỗi trong log file và ngắt chương trình

c)

Hiển thị thông báo lỗi với chi tiết kết nối

d)

Thử kết nối lại ngay lập tức

11.

Bạn muốn xóa một bản ghi khỏi bảng products có id = 5. Đâu là cách thực hiện đúng trong PHP?

a)

mysqli_query($conn, "DELETE FROM products WHERE id = 5");

b)

mysqli_query($conn, "REMOVE FROM products WHERE id = 5");

c)

mysqli_query($conn, "DELETE * FROM products WHERE id = 5");

d)

mysqli_query($conn, "DROP FROM products WHERE id = 5");

12.

Phương pháp nào an toàn nhất để bảo vệ ứng dụng PHP khỏi lỗi SQL Injection?

a)

Sử dụng truy vấn chuẩn bị (prepared statements)

b)

Sử dụng mysqli_real_escape_string() để xử lý đầu vào

c)

Kiểm tra và lọc dữ liệu đầu vào thủ công

d)

Mã hóa dữ liệu trước khi thêm vào cơ sở dữ liệu

13.

Tại sao cần sử dụng câu lệnh prepared statement trong PHP khi thực thi SQL?

a)

Để tăng tốc độ kết nối với cơ sở dữ liệu

b)

Để bảo vệ ứng dụng khỏi các cuộc tấn công SQL Injection

c)

Để tự động tạo các bảng và cơ sở dữ liệu

d)

Để ngăn chặn các lỗi cú pháp trong câu lệnh SQL

14.

Tại sao cần sử dụng PHP để thao tác với cơ sở dữ liệu?

a)

PHP thay thế hoàn toàn SQL

b)

PHP cho phép kết nối và thao tác cơ sở dữ liệu dễ dàng từ các ứng dụng web

c)

PHP không liên quan đến cơ sở dữ liệu

d)

PHP cung cấp giao diện người dùng trực tiếp

15.

Đoạn mã sau đây thực hiện điều gì? $mysqli = new mysqli("localhost", "root", "password", "testdb"); if ($mysqli->connect_error) { die("Kết nối thất bại: " . $mysqli->connect_error); }

a)

Kiểm tra kết nối đến máy chủ cơ sở dữ liệu đã tồn tại

b)

Ngắt kết nối đến cơ sở dữ liệu MySQL

c)

Tạo một kết nối đến cơ sở dữ liệu MySQL có tên testdb

d)

Tạo một kết nối đến cơ sở dữ liệu PostgreSQL có tên testdb

16.

Khi sử dụng câu lệnh SQL trong PHP để truy xuất dữ liệu từ cơ sở dữ liệu, hàm nào được sử dụng để thực thi câu lệnh SELECT?

a)

mysqli_prepare()

b)

mysqli_fetch_assoc()

c)

mysqli_close()

d)

mysqli_query()

17.

Cách nào kiểm tra xem việc cập nhật dữ liệu có thành công hay không?

a)

if ( conn−>query(conn->query( sql) === TRUE)

b)

if (mysqli_execute($sql) === TRUE)

c)

if (run($sql) == true)

d)

if ( conn−>execute(conn->execute( sql) === true)

18.

Một người dùng yêu cầu cập nhật đồng thời nhiều cột trong bảng users. Đoạn mã nào dưới đây thực hiện điều đó đúng cách?

a)

b)

c)

d)

19.

Làm thế nào để chọn một cơ sở dữ liệu sau khi kết nối thành công?

a)

mysqli_select_db($conn, "database_name");

b)

use("database_name");

c)

$conn->select_db("database_name");

d)

$conn->database("database_name");

20.

Làm thế nào để kiểm tra kết nối cơ sở dữ liệu có thành công hay không?

a)

if (isset($conn))

b)

if ($conn->connect_error)

c)

if ($conn === null)

d)

if ($conn === true)

21.

Bạn đang xây dựng một ứng dụng web và cần lưu trữ thông tin người dùng vào cơ sở dữ liệu MySQL. Câu lệnh nào dưới đây sẽ thêm dữ liệu một cách an toàn và tránh SQL Injection?

a)

sql=sql = conn->query($sql);

b)

stmt=stmt = conn->prepare("INSERT INTO users (name, email) VALUES (?, ?)"); stmt−>bindparam(stmt->bind_param( _POST['name'], POST[′email′]);_POST['email']); stmt->execute();

c)

sql=sql = _GET['name']."', '". GET[′email′]._GET['email']. conn->query($sql);

d)

sql=sql = _POST['name']."', '". POST[′email′]._POST['email']. conn, $sql);

22.

Khi nhận dữ liệu từ người dùng thông qua biểu mẫu tìm kiếm, phương pháp nào có thể giúp giảm thiểu nguy cơ SQL Injection?

a)

Sử dụng truy vấn chuẩn bị (prepared statements).

b)

Sử dụng mysqli_real_escape_string() để thoát các ký tự đặc biệt.

c)

Kiểm tra dữ liệu đầu vào thủ công để loại bỏ ký tự đặc biệt.

d)

Lọc dữ liệu đầu vào bằng cách sử dụng htmlspecialchars() để ngăn chặn các thẻ HTML.

23.

Bạn cần hiển thị danh sách sản phẩm từ cơ sở dữ liệu MySQL. Đoạn mã sau đây bị lỗi. Lỗi nằm ở đâu?

a)

Lỗi ở vòng lặp while.

b)

Lỗi ở kết nối cơ sở dữ liệu.

c)

Lỗi ở phương thức execute(), phải thay bằng query().

d)

Lỗi ở tên cột product_name.

24.

Đoạn mã sau có nhiệm vụ hiển thị dữ liệu từ bảng orders, nhưng có lỗi xảy ra, nguyên nhân lỗi có thể là gì?

a)

Tất cả các lỗi trên đều có thể.

b)

Bảng orders không tồn tại.

c)

Truy vấn không được thực hiện thành công.

d)

Trường order_date không tồn tại trong bảng.

25.

Cách thực hiện lệnh INSERT dữ liệu vào MySQL trong PHP?

a)

b)

c)

d)

26.

Để thêm một bản ghi mới vào bảng users với các cột name và email, bạn nên sử dụng câu lệnh nào trong PHP?

a)

mysqli_query($conn, "SELECT * FROM users WHERE name='$name' AND email='$email'");

b)

mysqli_query($conn, "UPDATE users SET name='$name', email='$email'");

c)

mysqli_query($conn, "INSERT INTO users VALUES ('$name', '$email')");

d)

mysqli_query($conn, "INSERT INTO users (name, email) VALUES ('$name', '$email')");

27.

Cú pháp lệnh SQL nào đúng để cập nhật dữ liệu?

a)

SET table_name UPDATE column1 = value1 WHERE condition;

b)

UPDATE table_name SET column1 = value1 WHERE condition;

c)

ALTER table_name column1 = value1 WHERE condition;

d)

CHANGE table_name column1 = value1 WHERE condition;

28.

Phương pháp nào dưới đây là tốt nhất để lấy dữ liệu từ bảng users mà không gây ra lỗi hiệu năng khi bảng chứa hàng triệu bản ghi?

a)

b)

c)

d)

29.

Cách nào thực hiện truy vấn SQL an toàn với dữ liệu từ người dùng?

a)

b)

sql=sql = conn->prepare($sql)->execute()

sql=sql = conn->prepare($sql)->execute()

c)

stmt=stmt = conn->bind("SELECT * FROM users WHERE id = ?", id);id); stmt->run()

stmt=stmt = conn->bind("SELECT * FROM users WHERE id = ?", id);id); stmt->run()

d)