How can I replace mysql_real_escape_string in PDO to keep my code still secure:
(mysql_real_escape_string no longer supported in PHP v7.x)
I would appreciate if somebody could provide an example for this code line: "ORDER BY " . mysql_real_escape_string($order) . " LIMIT :numRows";"
Full code below:
public static function getList( $numRows=1000000, $order="pageID ASC" ) {
$conn = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$sql = "SELECT SQL_CALC_FOUND_ROWS *, UNIX_TIMESTAMP(pagePublicationDate) AS pagePublicationDate FROM web_pages
ORDER BY " . mysql_real_escape_string($order) . " LIMIT :numRows";
$st = $conn->prepare( $sql );
$st->bindValue( ":numRows", $numRows, PDO::PARAM_INT );
$st->execute();
$list = array();
while ( $row = $st->fetch() ) {
$article = new cmsEngine( $row );
$list[] = $article;
}
// Now get the total number of website pages that matched the criteria
$sql = "SELECT FOUND_ROWS() AS totalRows";
$totalRows = $conn->query( $sql )->fetch();
$conn = null;
return ( array ( "results" => $list, "totalRows" => $totalRows[0] ) );
}