के बराबर में असंगत हैं मैं एक साधारण जहां काम करने के लिए एक पैरामीटर के साथ खंड प्राप्त करने के लिए सक्षम होने के लिए नहीं है, मैं लगातार एक त्रुटि संदेश कह रही हो रही है:पीएचपी पीडीओ ODBC - डेटा प्रकार ऑपरेटर
[Microsoft][ODBC SQL Server Driver][SQL Server]The data types varchar(max) and text are incompatible in the equal to operator. (SQLExecute[402] at ext\pdo_odbc\odbc_stmt.c:254)
मैंने इस क्वेरी को कई अलग-अलग तरीकों से आजमाया है, उदाहरण के लिए
बेनाम:
$query = $DBH->prepare("SELECT TOP 1 * FROM bksb_Resources WHERE ResourceType = ?");
$query->execute(array('assessment'));
अनाम और bindValue स्ट्रिंग के लिए यह निर्धारित करने के लिए bindParam का उपयोग कर स्ट्रिंग के लिए यह स्थापित करने
$query = $DBH->prepare("SELECT TOP 1 * FROM bksb_Resources WHERE ResourceType = ?");
$query->bindValue(1, 'assessment', PDO::PARAM_STR);
$query->execute();
नाम और का उपयोग कर:
$val = 'assessment';
$query = $DBH->prepare("SELECT TOP 1 * FROM bksb_Resources WHERE ResourceType = :myp");
$query->bindParam(':myp', $val, PDO::PARAM_STR);
$query->execute();
लेकिन कोई फर्क नहीं पड़ता कि कैसे मैं ऐसा करो, मुझे हमेशा यह त्रुटि संदेश मिलता है।
प्रश्न में स्तंभ प्रकार की है: varchar (max), तो शायद यह पैरामीटर संभालने है भेजा जा रहा प्रकार 'पाठ' यहां तक कि एक स्ट्रिंग मान जब मैं होने के लिए यह निर्दिष्ट की है (वर्ण, Varchar)
मैं डाटाबेस को बदल नहीं सकता क्योंकि यह सॉफ्टवेयर के दूसरे हिस्से के लिए है।
इसके आसपास क्या तरीका है? मैं वास्तव में ऐसा नहीं करना चाहता हूं हर बार जब मैं ऐसा कहता हूं (या यह सब क्या करता है?)।
धन्यवाद।
एक ही समस्या होने के बाद ... क्या आप इसे समझ गए? – MizAkita
क्या आपने कोशिश की है कि "शीर्ष 10 चुनें * bksb_Resources से संसाधन संसाधन टाइप करें?" ˙'? यदि आप वाइल्डकार्ड का उपयोग नहीं करते हैं, तो यह लगभग समान रूप से '=' के रूप में कार्य करेगा। –