मैं एक साधारण mysql अद्यतन क्वेरी में प्रभावित पंक्तियों की संख्या प्राप्त करने का प्रयास कर रहा हूं। हालांकि, जब मैं नीचे इस कोड को चलाता हूं, तो PHP का mysql_affected_rows() हमेशा 0 के बराबर होता है। कोई फर्क नहीं पड़ता कि foo = 1 पहले से ही है (जिस स्थिति में फ़ंक्शन सही ढंग से वापस 0 होना चाहिए, क्योंकि कोई पंक्ति नहीं बदली गई थी), या यदि फ़ू वर्तमान में कुछ के बराबर है अन्य पूर्णांक (जिस स्थिति में फ़ंक्शन 1 वापस आना चाहिए)।mysql_affected_rows() अद्यतन अद्यतन के लिए 0 देता है जब भी एक अद्यतन वास्तव में होता है
$updateQuery = "UPDATE myTable SET foo=1 WHERE bar=2";
mysql_query($updateQuery);
if (mysql_affected_rows() > 0) {
echo "affected!";
}
else {
echo "not affected"; // always prints not affected
}
अद्यतन बयान ही काम करता है। आईएनटी मेरे डेटाबेस में बदल जाता है। मैंने दोबारा जांच भी की है कि डेटाबेस कनेक्शन पहले से बंद नहीं किया जा रहा है या कुछ भी मजेदार है। ध्यान रखें, mysql_affected_rows को आपको कनेक्शन लिंक पहचानकर्ता को पास करने की आवश्यकता नहीं है, हालांकि मैंने भी कोशिश की है।
समारोह पर विवरण: mysql_affected_rows
कोई भी विचार?
क्या आप वाकई रिकॉर्ड अद्यतन किया जा रहा है कर रहे हैं? सुनिश्चित करें कि आप परीक्षण चलाने से पहले 1 से कम किसी अन्य चीज़ के बराबर foo सेट करते हैं। – northpole
किसी भी मौके से, क्या आपका पृष्ठ दो बार बुलाया जा सकता है, जैसे कि रीराइट नियम के कारण शायद? यह डेटा को पहली बार अपडेट करने का कारण बनता है, और फिर दूसरी बार नहीं जब आप अंतिम आउटपुट देखते हैं ... आपके वेब सर्वर लॉग को जांचने के लिए कोई दिक्कत नहीं होगी। –
क्या आपने पुष्टि की है कि यह वास्तव में 0 लौट रहा है और ऋणात्मक मूल्य नहीं है? – Jodaka