Ниже некоторый код 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)"; оператор, потому что, когда я затем комментирую его, страница может загрузиться.
Я использую функцию неправильным способом?
Спасибо.
Mysql_num_rows будет работать, если вы используете mysql_connect и другие функции mysql_ *. Поскольку вы используете PDO, вы должны использовать методы PDO, такие как rowCount ()
Вы создали объект PDO, подключающийся к базе данных SQLite. Почему функция MySQL должна знать, что с этим делать?
Метод query
возвращает объект типа PDOStatement
, который имеет метод rowCount
. Используйте это:
$totalRows = $result_mon->rowCount();
То есть, если вам даже нужно знать общее количество строк перед их обработкой. Если все , которые вам нужно знать, - это количество строк в таблице, рассмотрите возможность использования функции SQL COUNT
: SELECT COUNT (*) FROM Monday
.
Вы не можете использовать mysql_num_rows с pdo. Вы должны использовать rowCount ()