Vâng tất nhiên.
Điều gì xảy ra nếu in_var
bằng với mật khẩu ' UNION SELECT password from admins --
?
Để tránh điều đó, bạn không nên sử dụng giáo phái hàng hóa câu lệnh đã chuẩn bị nhưng là câu lệnh thực, thay thế biến của bạn bằng một trình giữ chỗ.
SET @query = CONCAT("SELECT * FROM my_table WHERE my_column = ? LIMIT 1;");
PREPARE stmt FROM @query;
EXECUTE stmt USING @in_var;