2012-04-04 13 views
14

कैसे मैं सिद्धांत \ DBAL का उपयोग कर डेटाबेस क्षेत्र के लिए एक मूल्य के रूप में PHP के दिनांक समय वस्तु पारित कर सकते हैं?का उपयोग कर डालने() विधि पीएचपी सिद्धांत DBAL साथ दिनांक समय मूल्य डालने के लिए 2

$ डीबी एक सिद्धांत \ DBAL \ कनेक्शन उदाहरण है।

$DB->insert('table_name', [ 
    'field' => new \DateTime(), 
]); 

// Catchable fatal error: Object of class DateTime could not be converted to string 

ऊपर कोड काम नहीं कर रहा और प्रलेखन दुर्लभ है।

मुझे यकीन है कि के लिए पता था कि आप दिनांक समय वस्तुओं सीधे एक और DBAL तरीकों का उपयोग कर प्रदान कर सकते हैं, यह डालने() के साथ ऐसा करना संभव है?

+1

समाधान मिला। बस सम्मिलित करें() विधि में तीसरे तर्क सरणी ('डेटाटाइम') को पास करें। डेटटाइम के लिए 'डेटाटाइम' का उपयोग करें, पीडीओ :: स्ट्रैंग्स और पीडीओ के लिए PARAM_STR :: पूर्णांक के लिए PARAM_INT। –

उत्तर

23
$DB->insert('table_name', [ 
    'foo' => 'foo', 
    'bar' => 17, 
    'field' => new \DateTime(), 
], [ 
    PDO::PARAM_STR, 
    PDO::PARAM_INT, 
    'datetime', 
]); 

चाल क्या थी!))

+0

पहली सरणी में तत्वों के क्रम के बारे में क्या? मुझे लगता है कि जब कुंजी-मान जोड़े की सरणी को फ़ंक्शन तर्क के रूप में घोषित किया जाता है, तो कुंजी का क्रम घोषित होने के क्रम से मेल खाता है, हालांकि क्या होगा यदि कुंजी-मूल्य जोड़ी सरणी किसी अन्य फ़ंक्शन द्वारा गतिशील रूप से बनाई गई हो? –

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