2010-05-16 5 views
1

Ci-dessous est un code PHP que j'ai écrit, le problème se produit quand il arrive à l'utilisation de la num_of_rows(), il ne semble tout simplement pas fonctionner et je ne comprends pas pourquoi?PHP et l'utilisation de la fonction 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(); 
} 

>

Je sais que c'est? "$ = TotalRows mysql_num_rows (result_mon de $);" déclaration parce que quand je puis commenter, la page peut charger.

Est-ce que j'utilise la fonction dans le mauvais sens?

Merci.

Répondre

1

Vous ne pouvez pas utiliser mysql_num_rows avec pdo. Vous devez utiliser rowCount()

1

Mysql_num_rows fonctionnerait si vous utilisiez mysql_connect et d'autres fonctions mysql_ *. Comme vous utilisez PDO, vous devez utiliser les méthodes PDO, comme rowCount()

0

Vous avez créé un objet PDO se connectant à une base de données SQLite. Pourquoi une fonction MySQL devrait-elle savoir comment faire face à tout cela? La méthode query renvoie un objet de type PDOStatement, qui a une méthode rowCount. Utilisez cela:

$totalRows = $result_mon->rowCount(); 

Autrement dit, si vous avez même besoin de connaître le nombre total de lignes avant de les traiter. Si tous vous devez savoir est le nombre de lignes dans la table, pensez à utiliser la fonction SQL COUNT à la place: SELECT COUNT(*) FROM Monday.