2009-08-26 25 views
16

Dường như hằng số lớp chỉ bao gồm PDO::PARAM_BOOL, PDO::PARAM_INTPDO::PARAM_STR để gắn kết. Bạn chỉ cần ràng buộc các giá trị thập phân/float/double như là chuỗi hoặc có cách nào tốt hơn để xử lý chúng?Cách tốt nhất để liên kết các giá trị thập phân/đôi/phao với PDO bằng PHP là gì?

MySQLi cho phép loại 'd' tăng gấp đôi, thật ngạc nhiên khi PDO không có điểm tương đương khi nó có vẻ tốt hơn theo nhiều cách khác.

Trả lời

10

AFAIK PDO :: PARAM_STR là cách để thực hiện.

+0

cảm ơn! Tôi có lẽ chỉ cần làm điều này và xác nhận bản thân mình. – Rob

+3

Đối với những người không biết, cú pháp là: '$ sth-> bindParam (': keyword', $ keyword, PDO :: PARAM_STR);' – tylerl

-3

Nếu bạn thực sự muốn sử dụng PDO, bạn sẽ phải nhập nó làm PARAM_INT, nhưng tôi không bao giờ sử dụng đặc điểm kỹ thuật cho double.

Đây là thông số tùy chọn để chỉ định loại PDO.

Tôi đoán bạn không nên đặt loại PDO cho double giây.

+0

Tôi không nghĩ rằng tôi muốn mất độ chính xác bằng cách liên kết nó dưới dạng INT nhưng bạn thực hiện một điểm tốt về việc không chỉ định loại, cảm ơn. – Rob

+11

Trên thực tế, nếu không có param_TYPE được đưa ra thì PARAM_STR được giả định. – Xeoncross

+0

Bạn không có và không nên liên kết nó dưới dạng số nguyên hoặc bạn sẽ mất dữ liệu! Đọc câu trả lời @AlixAxel thay thế. – PhoneixS

0

Bạn phải sử dụng PDO :: PARAM_STR, nhưng đối với SQLite và các công cụ khác, điều này có thể có hành vi không thể đoán trước. Xem vấn đề này cho một ví dụ: SQLite HAVING comparison error

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