Tôi không nghĩ rằng nhận được dữ liệu trong kiểu dữ liệu mẹ đẻ của họ (tức là bất cứ điều gì khác mà chuỗi) thể được thực hiện trong PHP 5.2 ...
Trong PHP 5.3, nó trở thành có thể, nếu tôi nhớ không lầm, khi bạn đang sử dụng mới (mới như trong PHP> = 5.3) mysqlnd (Trình điều khiển gốc của MySQL) trình điều khiển.
Sau khi đào bới hơn thông qua bookmark của tôi, tôi tìm thấy bài viết này về mysqlnd: PDO_MYSQLND: The new features of PDO_MYSQL in PHP 5.3
Nó nói này (báo giá):
Ưu điểm của việc sử dụng mysqlnd cho PDO
mysqlnd trả về quê hương loại dữ liệu khi sử dụng báo cáo được chuẩn bị phía máy chủ, ví dụ: cột INT được trả lại dưới dạng số nguyên variabl e không phải là một chuỗi . Điều đó có nghĩa là ít dữ liệu hơn chuyển đổi nội bộ.
Nhưng đây là PHP 5.3 chỉ (được cung cấp phiên bản của PHP 5.3 được biên soạn với mysqlnd (và không phải là libmysql cũ)), và dường như chỉ là trường hợp cho chuẩn bị phát biểu :-(
nào không thực hiện khá giúp đỡ, trong tình huống của bạn, tôi đoán ...
Và đây là một khác, vẫn về các tính năng mới của mysqlnd, mà nói về vấn đề này không chỉ chuẩn bị phát biểu:. PHP: New network traffic, CPU and memory savings with mysqlnd
Không chắc chắn điều này đã được sáp nhập vào trình điều khiển mysqlnd chính thức, mặc dù - cách tốt nhất là để thử; nhưng nó vẫn sẽ PHP> = 5,3 chỉ, dù sao ...
Một giải pháp khác là nên có, trên PHP-side, một số loại một ánh xạ hệ thống (như một ORM) để chuyển đổi kết quả đến từ DB để kiểu dữ liệu PHP ...
và vâng, điều này là xấu nếu bạn muốn sử dụng khai thác như ===
và !==
, đó là loại nhạy cảm ...
Cảm ơn Pascal MARTIN! Tôi đã googling trong vài giờ và đã không tìm thấy bất cứ điều gì tôi có thể sử dụng. Tôi tương đối mới với PHP, nhưng có vẻ như tôi sẽ cần phải đi với PDO nếu tôi muốn hỗ trợ bản địa. Rất tiếc, máy chủ của tôi đang chạy 5.2.something ... Cũng khó khăn, là tôi đang cố gắng tạo đầu vào tệp báo cáo xml chứa thông tin truy vấn khác nhau. Kịch bản PHP đọc tệp xml được yêu cầu và gửi các truy vấn đến cơ sở dữ liệu, vì vậy tôi thực sự sẽ không bao giờ biết dữ liệu nào được truy vấn và cách nó được trả về. thời gian để sáng tạo Tôi đoán :) –
PDO hay không PDO không được thay đổi bất cứ điều gì, trong trường hợp này: điều quan trọng là trình điều khiển được sử dụng bên dưới * (tức là libmysql vs mysqlnd) * - và tôi thậm chí không chắc chắn mysqlnd trong PHP 5.3.2 trả về kiểu gốc cho các truy vấn chuẩn ;;; trong trường hợp của bạn, anyway, với PHP 5.2, giải pháp duy nhất bạn sẽ có sẽ là một số lớp bản đồ, mà loại chuyển đổi khi cần thiết ... –
Lưu ý rằng bạn cần phải [tắt giả lập câu lệnh đã chuẩn bị] (http://stackoverflow.com/a/15592818/441684) nếu sử dụng PDO. –