2010-05-16 55 views
1

下面是我寫的一些PHP代碼,問題發生在使用num_of_rows()時,它似乎不工作,我不知道爲什麼?PHP和使用Num_Of_Rows()函數?

<?php 
try 
{ 
    $divMon_ID = array(); 
    $divMon_Position = array(); 
    $divMon_Width = array(); 
    $divMon_Div = array(); 

    $db = new PDO('sqlite:db/EVENTS.sqlite'); 
    $result_mon = $db->query('SELECT * FROM Monday'); 
    $totalRows = mysql_num_rows($result_mon); 
    //for($counter=1; $counter<=10; $counter+=1) 
    //{ 

     //<div id="event_1" style="position:absolute; left: 0px; top:-39px; width:100px; font-family:Arial, Helvetica, sans-serif; font-size:small; border:2px blue solid; height:93px"> 
     //$divMon_ID[]=$row['Id']; 
     //$divMon_Position[]=$row['Origin']; 
     //$divMon_P[]=$row['Position']; 
    //} 
} 
catch(PDOException $e) 
{ 
    print 'Exception : '.$e->getMessage(); 
} 

>

我知道這是? 「$ totalRows = mysql_num_rows($ result_mon);」聲明,因爲當我然後註釋掉,頁面可以加載。

我是否以錯誤的方式使用函數?

謝謝。

回答

1

如果您使用mysql_connect和其他mysql_ *函數,Mysql_num_rows將起作用。當您使用PDO時,您必須使用PDO的方法,如rowCount()

0

您已經創建了一個連接到SQLite數據庫的PDO對象。爲什麼MySQL函數應該知道如何處理這些問題?

query方法返回類型爲PDOStatement的對象,該對象具有rowCount方法。使用:

$totalRows = $result_mon->rowCount(); 

也就是說,如果你甚至需要在處理它們之前知道總的行數。如果全部爲您需要知道的是表中的行數,請考慮使用COUNT SQL函數代替:SELECT COUNT(*) FROM Monday