2013-02-20 15 views
7

मेरे पीडीओ fetch सब कुछ एक स्ट्रिंग के रूप में देता है।मैं पीडीओ के साथ MySQL से सही डेटाटाइप कैसे प्राप्त कर सकता हूं?

मेरे पास आईडी (int) और उपयोगकर्ता नाम (वर्कर) वाला उपयोगकर्ता क्लास है।

जब मैं निम्नलिखित एसक्यूएल अनुरोध

$db->prepare('SELECT * FROM users WHERE id=:id_user'); 
$db->bindParam(':id_user', $id_user); 
$db->execute(); 
$user_data = $db->fetch(PDO::FETCH_ASSOC); 

और var_dump ($ user_data) की कोशिश, आईडी पैरामीटर एक स्ट्रिंग है। मैं इसे कैसे बना सकता हूं ताकि पीडीओ mysql से सही डेटाटाइप का सम्मान करे?

+0

आप php में उस के साथ संघर्ष करने जा रहे हैं। मेरा सुझाव है कि आप जिस पीपीपी की उम्मीद कर रहे हैं उसमें फेंक दें। – Stevo

+0

क्या आपका मतलब प्रत्येक अनुरोध के बाद मुझे प्रत्येक पैरामीटर को intval()/strval() चाहिए? – Lukmo

+0

हाँ, मैं आमतौर पर 'गूंज (int) "1" करता हूं;' या गूंज (स्ट्रिंग) "1"; – Stevo

उत्तर

3

आप एक अलग fetch_style का उपयोग कर सकते हैं। आप एक उपयोगकर्ता वर्ग है, तो आप

$statement->fetchAll(PDO::FETCH_CLASS, "User"); 

साथ उपयोगकर्ता वर्ग का एक उदाहरण वापस जाने के लिए पीडीओ मजबूर अब आप उपयोगकर्ता वर्ग, जहां से वह संबंधित अंदर गुण सत्यापन और कास्टिंग की देखभाल कर सकते हैं कर सकते हैं।

संबंधित:

+0

बहुत बहुत धन्यवाद, यह एक उत्कृष्ट विचार है जिसके परिणामस्वरूप क्लीनर कोड होगा। – Lukmo

संबंधित मुद्दे

 संबंधित मुद्दे