$sql = "SELECT count(*) FROM `table` WHERE foo = ?";
$result = $con->prepare($sql);
$result->execute([$bar]);
$number_of_rows = $result->fetchColumn();
इसे करने का सबसे सुंदर तरीका नहीं है, साथ ही इसमें एक अतिरिक्त क्वेरी शामिल है।
PDO में PDOStatement::rowCount()
. है , जो स्पष्ट रूप से नहीं . करता है MySql में काम करता है क्या दर्द है।
पीडीओ डॉक्टर से:
<ब्लॉकक्वॉट>अधिकांश डेटाबेस के लिए, PDOStatement::rowCount() SELECT स्टेटमेंट से प्रभावित पंक्तियों की संख्या नहीं लौटाता है। इसके बजाय, उपयोग करेंPDO::query() एक SELECTCOUNT(*) कथन जारी करने के लिए जो आपके इच्छित चयन कथन के समान है, फिर उपयोग करेंPDOStatement::fetchColumn() वापस की जाने वाली पंक्तियों की संख्या प्राप्त करने के लिए। तब आपका आवेदन सही कार्रवाई कर सकता है।
संपादित करें:उपरोक्त कोड उदाहरण एक तैयार कथन का उपयोग करता है, जो कई मामलों में पंक्तियों की गिनती के उद्देश्य से संभवतः अनावश्यक है, इसलिए:
$nRows = $pdo->query('select count(*) from blah')->fetchColumn();
echo $nRows;