Theo PDO PHP Tài liệu :: chuẩn bị() thêm dấu ngoặc kép để tất cả các thông số của bạn để bạn không cần phải lo lắng về việc làm việc đó:Đối phó với trích dẫn thêm bởi PDO :: chuẩn bị()
Nếu một ứng dụng độc quyền sử dụng các câu lệnh chuẩn bị, nhà phát triển có thể chắc chắn rằng không có SQL injection nào xảy ra (tuy nhiên, nếu các phần khác của truy vấn đang được sử dụng) được xây dựng với đầu vào không thoát, SQL injection vẫn có thể). "
Vấn đề với điều này đối với tôi là cách tôi đang xây dựng các truy vấn và cấu trúc cơ sở dữ liệu của mình. Thông thường, phần FROM của một câu lệnh SQL sẽ không cần phải được parametrized vì Bảng có thể sẽ được xác định bởi đầu vào người dùng trực tiếp. Tuy nhiên với mã của tôi là trường hợp ở một số nơi và do đó tôi cảm thấy thoải mái hơn với phiên bản parametrized.
SELECT * FROM ? WHERE ?=?
thay vì SELECT * FROM tablename WHERE? =?
Vì vậy, câu hỏi của tôi là điều này, có thể ngăn PDO Object của tôi thêm dấu ngoặc kép xung quanh tham số FROM để tôi không nhận được các lỗi SQL được ném vào mặt tôi không? Hay tôi phải làm điều này theo một cách khác.
Câu hỏi chính xác là gì? – jeroen
Nó không nhất thiết phải thêm dấu ngoặc kép. Các trình điều khiển hỗ trợ các câu lệnh được chuẩn bị sẵn có sẽ giữ nguyên '?' Và máy chủ cơ sở dữ liệu thực hiện việc thay thế. - Tuy nhiên, bạn cần phải giải thích cụ thể mã của bạn đang làm gì và tại sao đó là vấn đề ở đây. Thêm ''?'' Hoặc '': placeholder'' trong các mệnh đề FROM của bạn là các chuỗi ký tự, chứ không phải các tham số ràng buộc. – mario
Xin lỗi về điều đó, tôi vô tình nhấn enter trước khi tôi gõ xong câu hỏi – hamalnamal