क्यों करता है var_dump(stmt['likedFour']);
वापसी 's'
:
क्योंकि आपके पास stmt
. से पहले डॉलर का चिह्न नहीं है , इसलिए PHP को लगता है कि आप स्थिर . तक पहुँचने का प्रयास कर रहे हैं stmt
चर . के बजाय $stmt
. चूंकि आपने उस स्थिरांक को परिभाषित नहीं किया है, इसलिए यह मान लिया जाएगा कि आप स्ट्रिंग तक पहुंचने का प्रयास कर रहे हैं। "stmt"
. स्ट्रिंग्स के लिए, सूचकांकों को संख्यात्मक होना चाहिए, इसलिए PHP आपको "अवैध स्ट्रिंग ऑफ़सेट" चेतावनी दे रहा होगा, लेकिन 'likedFour'
कास्ट करके इसे आपके लिए ठीक करने का प्रयास करेगा। एक पूर्णांक के लिए (जो 0
. होगा )।
इसलिए, var_dump(stmt['likedFour'])
इसका मतलब ठीक वैसा ही है जैसे var_dump("stmt"[0])
PHP के लिए, यही कारण है कि आपको आउटपुट मिल रहा है "s"
:"stmt"
. से पहला अक्षर ।
परिणाम कैसे प्राप्त करें वास्तव में चाहते हैं:
आपको सबसे पहले अपनी क्वेरी से परिणामी पंक्तियों को पुनः प्राप्त करना होगा। $stmt
mysqli_stmt
है ऑब्जेक्ट जिसका उपयोग आप क्वेरी को निष्पादित करने और परिणामों को पुनः प्राप्त करने के लिए करते हैं, यह वास्तव में स्वयं परिणाम नहीं है।
भविष्य में अपने आप को सिरदर्द से बचाने के लिए, परिणामों को पुनः प्राप्त करने का प्रयास करने से पहले हमेशा जांच लें कि आपकी क्वेरी सफलतापूर्वक निष्पादित हुई है या नहीं। फिर डेटा की पंक्ति प्राप्त करें:
$success = $stmt->execute();
if (!$success) {
echo $stmt->error;
} else if ($stmt->num_rows == 0) {
echo 'No results matching that username';
} else {
$result = $stmt->get_result();
$row = $result->fetch_assoc();
var_dump($row['likedFour']);
}
यदि आप नहीं जानते कि कितनी पंक्तियाँ वापस की जाएँगी, तो सुरक्षित रहने के लिए उनके माध्यम से लूप करें:
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
var_dump($row['likedFour']);
}