2010-02-03 43 views
6

Tôi đã có ấn tượng rằng các số nguyên trích dẫn trong các truy vấn SQL được cau mày, nhưng gần đây tôi đã học được rằng các khuôn khổ nổi bật như Django tuân theo thực hành này. Thực tế nó có hoàn toàn chấp nhận được không?Trích dẫn các số nguyên

Trả lời

8

Câu hỏi ngụ ý rằng bạn đặt các giá trị khỏa thân trong truy vấn SQL của bạn ngay từ đầu. Tôi nghĩ rằng thực hành "chấp nhận được" nhất sẽ là tham số hóa truy vấn thay vào đó - theo cách đó bạn không phải lo lắng về chính mình với các vấn đề như thế này; hãy để thư viện truy cập dữ liệu xử lý nó cho bạn thay thế.

+3

+1 cho tham số hóa! – AdaTheDev

+0

+1, không sử dụng ràng buộc-params là một ý tưởng tồi tệ hơn trong một khuôn khổ. – macabail

+0

Trong khi tham số âm thanh như một ý tưởng tốt, nó không thực sự đáng giá các dòng gazillion của mã boilerplate nó đòi hỏi. Bạn sẽ tìm thấy nhiều ứng dụng thành công mà không có nó (như Django, tôi đoán) – Andomar

0

Trích dẫn số nguyên trong SQL chỉ có một hình phạt nhỏ về hiệu suất. Việc loại bỏ các dấu ngoặc kép ít hơn nhiều so với việc chuyển đổi biểu diễn ASCII thành một số nguyên nhị phân.

Vì vậy, tôi muốn nói nó hoàn toàn có thể chấp nhận được, đặc biệt là đối với một khung công tác RAD.

+0

Nhưng số nguyên vẫn phải được chuyển đổi theo một trong hai cách. – recursive

0

Tôi không chắc chắn về tất cả các cơ sở dữ liệu SQL, nhưng SQL Server sẽ ngầm chuyển đổi một số được trích dẫn thành một int. Ví dụ sau đây trả về 166 trong SQL Server 2000:

select '500'/3 
Các vấn đề liên quan