Не сте обвързали всичките си връзки тук
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(publicationDate) AS publicationDate FROM comments WHERE articleid = :art
ORDER BY " . mysqli_escape_string($order) . " LIMIT :numRows";
$st = $conn->prepare( $sql );
$st->bindValue( ":art", $art, PDO::PARAM_INT );
Декларирахте обвързване, наречено :numRows, но всъщност никога не обвързвате нищо с него.
АКТУАЛИЗАЦИЯ 2019:Продължавам да получавам гласове за това и това ми напомни за друго предложение
Двойните кавички са интерполация на низ в PHP, така че ако ще използвате променливи в низ с двойни кавички, е безсмислено да използвате оператора concat. От друга страна, единичните кавички не са интерполация на низ, така че ако имате само една променлива в края на низ, тя може да има смисъл или просто да я използвате за целия низ.
Всъщност тук има налична микро операция, тъй като интерпретаторът не се интересува от анализа на низа за променливи. Увеличението е почти незабележимо и напълно игнорируемо в малък мащаб. Въпреки това, в много голямо приложение, особено добрите стари наследени монолити, може да има забележимо увеличение на производителността, ако низовете се използват по този начин. (и IMO, така или иначе е по-лесно за четене)