2012-08-28 15 views
7

से ऑब्जेक्ट्स का रिटर्निंग ऐरे मेरे पास एक PHP क्लास (POJO_FOO) है जो एक तालिका (TABLE_FOO) पर मैप करता है।पीडीओ

उदा। उस पंक्ति के एक वस्तु के बराबर एक पंक्ति।

अब मैं एक प्रबंधक लिख रहा हूं जो किसी विशेष क्वेरी से मेल खाने वाली ऐसी वस्तुओं की सरणी देता है। PDO का उपयोग करके, मैं ऑब्जेक्ट्स की सरणी कैसे वापस कर सकता हूं?

जब मैं सरल fetchAll करता हूं, तो यह एसोसिएटिव सरणी (column =>value) के सरणी (परिणामों की संख्या का प्रतिनिधित्व करता है) देता है। क्या fetchALL में कोई विकल्प है जो मुझे ऑब्जेक्ट्स की सरणी के रूप में परिणाम दे सकता है?

+3

'पीडीओ :: FETCH_CLASS'? – eggyal

+0

वाह यह काम करता है ... पता नहीं क्यों मैंने कोशिश की जब यह काम नहीं कर रहा था। वैसे भी .. उत्तर के लिए धन्यवाद। – mrd081

उत्तर

8

आप अपने डेटा के साथ अपने वर्ग हाइड्रेट करने के लिए पीडीओ :: FETCH_CLASS उपयोग कर सकते हैं:

return $pdo->query('SELECT * FROM tablefoo')->fetchAll(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE,'POJO_FOO'); 

यह भी पीडीओ :: FETCH_CLASS उपयोग करने के लिए उपयोगी है | पीडीओ :: FETCH_PROPS_LATE क्योंकि यह वस्तु के निर्माण के अधिक बनाता है संगत। आदत आपके कन्स्ट्रक्टर को सबकुछ से पहले बुलाया जाता है। यदि आप FETCH_PROPS_LATE का उपयोग नहीं करते हैं तो यह आपके गुणों को हाइड्रेटेड होने के बाद बुलाया जाएगा।

+0

वाह यह काम करता है ... पता नहीं क्यों मैंने कोशिश की जब यह काम नहीं कर रहा था। वैसे भी .. उत्तर के लिए धन्यवाद :) – mrd081

+0

पीडीओ :: FETCH_CLASS के बारे में एक लिटल टिप्पणी | पीडीओ :: FETCH_PROPS_LATE – artragis

+0

वह क्या करेगा? (FETCH_PROPS_LATE) – mrd081