TableNames
là các Định danh vì vậy chúng không nên được trích dẫn bằng dấu ngoặc kép. Vì tableName bạn đã sử dụng không phải là một từ khóa dành riêng, bạn có thể chỉ cần xóa những dấu ngoặc kép xung quanh đó,
INSERT INTO student (FirstName, LastName....
Khi bạn bọc một thứ gì đó bằng một dấu ngoặc kép, nó buộc đối tượng đó trở thành một chuỗi ký tự. Vì vậy, khi số nhận dạng được bao bọc bằng dấu ngoặc kép, điều đó có nghĩa là chúng không phải là số nhận dạng nữa.
Máy chủ ném ra một ngoại lệ vì INSERT INTO
mong đợi một số nhận dạng không phải là chuỗi ký tự.
Khi bạn vô tình sử dụng tên bảng là MySQL dành riêng Từ khóa
, không sử dụng một dấu ngoặc kép để phân tách số nhận dạng nhưng với backticks
.
Là một phụ chú, truy vấn dễ bị tấn công với SQL Injection
nếu giá trị ( s ) của các biến đến từ bên ngoài. Mời các bạn cùng xem bài viết dưới đây để biết cách phòng tránh nhé. Bằng cách sử dụng PreparedStatements
bạn có thể loại bỏ việc sử dụng các dấu ngoặc kép xung quanh các giá trị.