2012-11-27 23 views
6

PDO::bindValue() में स्पष्ट डेटा प्रकारों का उपयोग करने का क्या मतलब है?पीडीओ :: bindValue() में स्पष्ट डेटा प्रकारों का उपयोग करने का क्या मतलब है?

निम्नलिखित रूपों में से किसी में उदाहरण के लिए वहाँ एक SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'a'

$pdos->bindValue(':Value_For_An_Int_Col', 'a');//default arg for the third and opt par is PDO::PARAM_INT 

$pdos->bindValue(':Value_For_An_Int_Col', 'a', PDO::PARAM_INT); 

उत्तर

3

होगा जब आप की तरह

SELECT * FROM ... LIMIT :intValues 

उद्धरण के अंदर मूल्य संलग्न करने, किसी SQL सिंटैक्स त्रुटि बढ़ती से बचा जाता है यही कारण है कि कुछ चाहिए

+0

यह उत्तर गलत है। स्ट्रिंग्स बाध्यकारी होने पर भी उद्धरण की आवश्यकता नहीं होती है। –

+0

पीडीओ उद्धृत पैरामीटर डालेगा और सीमा काम नहीं करेगी – dynamic

+0

बस पूरी तरह से सुनिश्चित होने के लिए, मैंने इसका परीक्षण किया। नहीं, यह उद्धृत मानकों को सम्मिलित नहीं करता है। क्या यह एक संस्करण मुद्दा हो सकता है? आप अतीत में सही हो सकते थे, हालांकि मुझे ऐसा नहीं लगता है। अधिक वर्बोज़ होने के लिए: आपको स्ट्रिंग और पूर्णांक पैरामीटर के साथ ठीक काम करने के लिए पीडीओ :: bindValue() में डेटा प्रकार निर्दिष्ट करने की आवश्यकता नहीं है। –