В настоящее время я изучаю параметризованные запросы, так как есть преимущества для их использования.
Может ли кто-нибудь дать некоторые указатели, превратив этот блок кода в параметризованную версию?
Благодарю.
if(isset($_GET['news_art_id']) && (!empty($_GET['news_art_id']))) { $news_art_id = htmlentities(strip_tags($_GET['news_art_id'])); $news_art_id = validate_intval($news_art_id); //echo $news_art_id; $_SESSION['news_art_id'] = $news_art_id; // Assign value to status. $onstatus = 1; settype($onstatus, 'integer'); $query = 'SELECT M.id, M.j_surname, M.j_points_count, M.j_level, A.j_user_id,A.id, A.jart_title, A.jart_tags, A.jart_description, A.jart_createddate FROM jt_articles A, jt_members M WHERE M.id = A.j_user_id AND A.id = ' . check_db_query_id($news_art_id) . " AND A.jart_status = $onstatus;"; $result = mysql_query($query) or die('Something went wrong. ' . mysql_error()); $artrows = mysql_num_rows($result); }
в вашем случае нет преимущества, помните, что параметризованный запрос требует двух вызовов в db: один для настройки шаблона запроса и анализа, а другой для заполнения параметров шаблона запроса и обычно используется при циклировании. Поэтому в этом случае вам лучше позвонить в хранимую процедуру (всегда лучший выбор) или использовать встроенный sql и убедиться, что вы используете http://php.net/manual/en/function.mysql-real-escape-string. php, если применимо.
Общее правило: Каждая переменная должна быть привязана, никаких встроенных переменных вообще.
Технические детали: http://php.net/manual/en/pdo.prepare.php