2012-11-27 41 views
6

Điểm của việc sử dụng các loại dữ liệu rõ ràng trong PDO::bindValue() là gì?Điểm của việc sử dụng các kiểu dữ liệu rõ ràng trong PDO :: bindValue() là gì?

Ví dụ trong một trong các hình thức sau đây sẽ có một SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'a'

$pdos->bindValue(':Value_For_An_Int_Col', 'a');//default arg for the third and opt par is PDO::PARAM_INT 

$pdos->bindValue(':Value_For_An_Int_Col', 'a', PDO::PARAM_INT); 

Trả lời

3

Khi bạn cần một cái gì đó giống như

SELECT * FROM ... LIMIT :intValues 

Đó tránh để gửi kèm theo giá trị bên trong báo giá, tăng một lỗi cú pháp SQL

+0

Câu trả lời này là sai. Báo giá là không cần thiết, ngay cả khi ràng buộc dây. –

+0

pdo sẽ chèn các tham số được trích dẫn và giới hạn sẽ không hoạt động – dynamic

+0

Chỉ cần hoàn toàn chắc chắn, tôi đã thử nghiệm nó. Không, nó không chèn các tham số được trích dẫn. Đây có phải là sự cố phiên bản không? Bạn có thể đã đúng trong quá khứ, mặc dù tôi không nghĩ vậy. Để tiết lộ chi tiết hơn: Bạn không cần phải chỉ định các kiểu dữ liệu trong PDO :: bindValue() một cách rõ ràng để nó hoạt động tốt với các tham số chuỗi và số nguyên. –

Các vấn đề liên quan