2012-03-01 7 views
15

मैं यह देखने के लिए कैसे जांच कर सकता हूं कि निम्न क्वेरी सफलतापूर्वक निष्पादित की गई है या नहीं?PHP पीडीओ में क्वेरी सफलतापूर्वक निष्पादित होने पर कैसे बताना है?

$STH = $this->_db->prepare("UPDATE UserCreds SET 
    VerificationString=:newVerificationString, ExpiryDate=:expiryDate 
    WHERE UserID = :userID;"); 
$STH->execute($params); 

मैं जानता हूँ कि मैं lastInsertId() उपयोग कर सकते हैं जब मैं नई पंक्तियाँ जोड़ रहा है, लेकिन अद्यतन और का चयन करता है के बारे में क्या?

+0

@Pekka नहीं, मैं त्रुटि संदेश ठीक हो सकता है। –

+4

http://de.php.net/manual/en/pdostatement.execute.php कहता है: * विफलता पर सफलता या गलत पर सत्य देता है। * - तो इसे एक चर के लिए बाध्य करें, उदा। '$ सफलता = $ STH-> निष्पादित करें ($ पैरा); 'और उस सत्य को' सत्य 'या' झूठी 'के विरुद्ध जांचें। – Quasdunk

उत्तर

35

execute सफलता पर true और false विफलता पर लौटाता है।

From Docs:

रिटर्न सफलता पर सही या विफलता पर गलत।


तो क्या आप वाकई क्वेरी की तरह सफलतापूर्वक चला कर सकते हैं:

if ($STH->execute($params)) 
{ 
    // success 
} 
else 
{ 
    // failure 
} 
+0

तो कुछ 'जैसे ($ STH-> निष्पादित ($ पैरा)) {echo "सफलता!"; } else {echo "विफलता!"; } '? –

+0

@DjangoReinhardt: हाँ आप सही हैं :) यदि आप बाद में इसका उपयोग करने की आवश्यकता है तो आप एक चर में 'execute' के परिणाम भी संग्रहीत कर सकते हैं। स्पष्टीकरण के लिए – Sarfraz

+0

धन्यवाद! –

15

निष्पादित() सही/गलत सफलता के आधार पर/क्वेरी की विफलता रिटर्न:

$status = $STH->execute($params); 

if ($status) { 
    echo 'It worked!'; 
} else { 
    echo 'It failed!'; 
} 

एक नोट: कोई चुनिंदा क्वेरी जो कोई पंक्ति नहीं देती है वह विफलता नहीं है। यह एक बिल्कुल वैध परिणाम है जो कि नतीजे होने के लिए होता है।

+3

+1 उपयोगी नोट, धन्यवाद! –

-3

यह सबसे अच्छा सिद्धांत क्वेरी परिणाम वापसी सफलता सत्यापित करने के लिए रास्ता है या परिणाम और उसी तरह विफल रहा है ऊपर के अनुसार यह सच है और झूठी पर विफल पर मौसम क्वेरी की जाँच करने के रिटर्न सफलता सुझाव देते हैं।

public static function removeStudent($teacher_id){ 
     $q = Doctrine_Query::create() 
      ->delete('Student s') 
      ->where('s.teacher_id = ?'); 

     $result = $q->execute(array($teacher_id)); 

     if($result) 
     { 
     echo "success"; 
     }else{ 
     echo "failed"; 
     } 
    } 
1

बस मैं प्रभावित पंक्ति की संख्या की गणना कर सकते हैं:

$stmt->execute(); 
$count = $stmt->rowCount(); 

if($count =='0'){ 
    echo "Failed !"; 
} 
else{ 
    echo "Success !"; 
} 
+0

यह केवल अद्यतन करता है जब अद्यतन –

+0

हाँ यह अद्यतन के लिए है, पूछे गए प्रश्न को देखें, यह अद्यतन –

+1

के बारे में बताता है प्रश्न यह है कि "अद्यतन और चयन के बारे में क्या?" –

संबंधित मुद्दे