मैं एक PHP-MySQL डेटाबेस प्रोसेसर लिखने की कोशिश कर रहा हूं जो कुछ हद तक बुद्धिमान है। जब यह प्रोसेसर तय करता है कि इसे अद्यतन करने की आवश्यकता है, तो मैं रिपोर्ट करना चाहता हूं कि यह वास्तव में सफल था या नहीं। मैंने सोचा कि मैं mysql_affected_rows
इस्तेमाल कर सकते हैं ...PHP, MySQL - क्या आप मिलान की पंक्तियों और पंक्तियों के बीच अंतर कर सकते हैं?
// Example:
// After running query "UPDATE mytable SET name='Test' WHERE ID=1"
$result = mysql_affected_rows();
if ($result >= 1) { /* Success */ }
हैं, उदाहरण के लिए, वहाँ आईडी = 1 के साथ कोई पंक्ति था, तो $result
होगा।
हालांकि, यह पता चला है कि वास्तविक प्रभावित पंक्तियों है PHP के mysql_affected_rows
, और हो सकता है अभी भी हो सकता है अगर पंक्ति मौजूद है, लेकिन पहले से ही name
"टेस्ट" था। (PHP docs यह भी कहता है कि यह मामला है)।
अगर मैं आदेश पंक्ति में इस चलाने के लिए, मैं क्वेरी के बारे में निम्न मेटा जानकारी प्राप्त:
Query OK, 0 rows affected (0.01 sec)
Rows matched: 1 Changed: 0 Warnings: 0
वहाँ मुझे पाने के लिए है कि "पंक्तियाँ मिलान किया" प्रभावित करने के बजाय PHP में मूल्य के लिए कोई तरीका है पंक्तियों?
[ संपादित करें]: मुझे ध्यान रखना चाहिए कि मुझे पता है कि मैं एक अलग क्वेरी चला सकता हूं, लेकिन मैं प्रदर्शन के लिए ऐसा नहीं करना चाहता हूं।
यह बहुत अच्छा है। हालांकि यह मुझे दोनों के बीच अंतर करने का एक तरीका नहीं प्रदान करता है (इसलिए मैं जवाब स्वीकार करने से पहले इसका परीक्षण करने जा रहा हूं) ऐसा लगता है कि मेरे मामले में मुझे बेहतर स्थिति है। धन्यवाद! – Nicole
मुझे अपने उत्तर से बेहतर जवाब पसंद है! :) – Sev
PHP lib MySQL C api lib पर इस तरह का एक पारदर्शी रैपर है, आप वास्तव में PHP/MySQL एपीआई – bobobobo