2010-04-06 15 views
6

वर्तमान में मैं उपयोग कर रहा हूँ:PHP में SQlite3 का उपयोग करके परिणाम सेट में पंक्तियों की संख्या को कैसे गिनना है?

$result = new SQLite3(sprintf("users/USERIDS_DB.sqlite")); 

$numRows = $result->exec ("SELECT count(*) FROM USERIDS"); 

echo sprintf("the number of rows are: %d", $numRows); 

लेकिन परिणाम 1 होता है जब वह 6 होना चाहिए (पंक्तियों मैं बनाया की संख्या फ़ायरफ़ॉक्स sqlite3 ऐड-ऑन का उपयोग करके)

कर सकते हैं किसी को भी मदद कृपया?

उत्तर

9

documentation से:

सार्वजनिक bool SQLite3 :: कार्यकारी (स्ट्रिंग $ क्वेरी)

किसी दिए गए डेटाबेस के खिलाफ एक परिणाम कम क्वेरी पर क्रियान्वित।

यह विधियां एक बूलियन लौटाती हैं, परिणामस्वरूप नहीं। जब आप true को एक पूर्णांक में कनवर्ट करते हैं तो यह 1 बन जाएगा।

आपको SQLite3::query() का उपयोग करना चाहिए। उदाहरण (untested):

$rows = $result->query("SELECT COUNT(*) as count FROM USERIDS"); 
$row = $rows->fetchArray(); 
$numRows = $row['count']; 

Btw, (एक डीबी वातावरण में विशेष रूप से) SQLite3 वर्ग $result को गुमराह किया जा सकता है के कहने नामकरण। मैं इसे $db या $connection कहूंगा।

+1

इसके लिए बहुत धन्यवाद! – Remover

+0

$ numRows = $ पंक्ति ['COUNT (*)'] होना चाहिए; – Unplug

+1

@Unplug: नहीं, चूंकि 'COUNT (*)' के परिणामस्वरूप 'गिनती' में संग्रहित किया गया है: 'COUNT (*) गिनती के रूप में। –

12
$db = new SQLite3('filename.db3'); 
$count = $db->querySingle("SELECT COUNT(*) as count FROM tablename"); 
echo $count; 
2
$result = $db->query("SELECT * FROM db_name") 
$row=$result->fetchArray(SQLITE3_ASSOC); 
    // check for empty result 
    if ($row != false) { 
     // do something here if record exists 
    } 
0
<?php 
    function SqliteNumRows($query){ 
     $numRows = 0; 
     while($rows = $query->fetchArray()){ 
      ++$numRows; 
     } 
     return $numRows; 
    } 
?> 

यह वास्तव में मुझे मदद की यह वास्तव में काम करता है कि आप इसे की कोशिश कर सकते

0

यहाँ एक काम कर रास्ता के बाद से SQLite3 पर न sqlite_num_rows($result) और न ही $result->numRows() काम करता है पंक्तियों की संख्या प्राप्त करने के लिए है:

<?php 
    $db = new SQLite3('database.db'); 

    $results = $db->query('SELECT COUNT(*) FROM (SELECT `id`,* FROM `table` ORDER BY `id` ASC);'); 
     while ($row = $results->fetchArray()) { 
      echo $row["COUNT(*)"]; 
     } 
?> 
संबंधित मुद्दे

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