मेरे पास एक साइट है जो PHP 5.6 चला रही है। साइट के लिए डेटाबेस को हाल ही में MySQL 5.1 से मारियाडीबी 10.0 (MySQL 5.5 संगत) में अपग्रेड किया गया था और अब मेरी साइट पर एक क्वेरी काम नहीं करेगी (और यह MySQL 5.1 डेटाबेस से कनेक्ट करते समय त्रुटि के बिना काम कर रहा था।PHP MySQL दृश्य का परिणाम 0 परिणाम देता है जब परिणाम होना चाहिए
यह डेमो, मेरे पास फ़ील्ड "आईडी" (पूर्णांक), और "पेज_टाइटल" (var_char) के साथ "सामग्री" नामक एक डेटाबेस तालिका है। उस तालिका में दो पंक्तियां हैं - एक 1 की आईडी और "टेस्ट 1" के पृष्ठ_शीर्षक के साथ, और दूसरी पंक्ति 2 का आईडी है और सेट PAGE_TITLE पर "टेस्ट 2"
मैं तो निम्न क्वेरी phpMyAdmin के अंदर का उपयोग कर इस तालिका के एक दृश्य बनाया:।
select `content`.`id` AS `id`,`content`.`page_title` AS `page_title` from `content`
मैं phpMyAdmin में दृश्य तालिका में दृश्य तालिका से दृश्य और दोनों पंक्तियां देख सकता हूं।
मेरे PHP पृष्ठ पर, मेरे पास ऑब्जेक्ट उन्मुख शैली क्वेरी है। यही कारण है कि कोड है:
<?php
try {
require_once 'Connections/dbconn.php';
$sql = "SELECT id, page_title FROM v_content WHERE id = 1 LIMIT 1";
$stmt = $db->stmt_init();
if (!$stmt->prepare($sql)) {
$error = $stmt->error;
} else {
$stmt->bind_result($id, $page_title);
$stmt->execute();
$stmt->store_result();
$stmt->fetch();
}
} catch (Exception $e) {
$error = $e->getMessage();
}?>
इस क्वेरी निम्नलिखित लौटा रहा है: प्रयास करते समय कोई परिणाम तो मैं बस करने के लिए देखें "v_content" से तालिका बदलने बयान
के साथ जुड़े सेट है एक पंक्ति को पढ़ने के लिए तालिका "सामग्री", मुझे परिणाम मिल गया है। इसके अतिरिक्त, यदि मैं एक ही क्वेरी का उपयोग करता हूं (VIEW v_content से पूछताछ), और एक MySQL 5.1 डेटाबेस से कनेक्ट करें, तो मुझे परिणाम लौटा दिए जाते हैं। मुझे पता है कि क्वेरी के साथ कुछ भी गलत नहीं है, क्योंकि मैंने क्वेरी को कॉपी किया है और phpMyAdmin में चिपकाया है और परिणाम लौटा चुके हैं, और सटीक उसी कोड का उपयोग MySQL 5.1 डेटाबेस पर किया गया था और परिणाम लौटाए गए थे। मैंने त्रुटि लॉग की जांच की है और कोई त्रुटि दिखाई नहीं दे रही है।
किसी को भी कोई विचार है कि मुझे दृश्य से 0 परिणाम वापस आने के कारण क्या हो सकता है?
"एक पंक्ति पढ़ने का प्रयास ..." त्रुटि एक चयन कथन के साथ नहीं होनी चाहिए। आमतौर पर इसका तात्पर्य है कि आपने 'अद्यतन' या 'INSERT' कथन (या आपने परिणाम सेट को पहले ही बंद कर दिया है) पर 'fetch()' करने का प्रयास किया है। 'Store_result() 'का उपयोग मुझे यहां पर संदेह करता है। चूंकि आप '$ stmt-> fetch()' को कॉल कर रहे हैं और 'bind_result()' का उपयोग किया है, मुझे विश्वास नहीं है कि आपको 'store_result()' की आवश्यकता है, खासकर जब से आप अपने रिटर्न परिणाम संसाधन को एक चर में संग्रहीत नहीं कर रहे हैं। उस रेखा को हटाएं और देखें कि आपकी स्थिति बदलती है या नहीं। –
अगर मैं हटाता हूं - $ stmt-> store_result(); - कुछ नहीं बदलता है। यह अभी भी 0 परिणाम देता है। – user2762748
लेकिन क्या यह अभी भी एक ही त्रुटि की रिपोर्ट करता है? ऐसा पोस्ट कोड के साथ असंभव लगता है। –