Question

Je suis en train d'apprendre les requêtes paramétrées comme il y a des avantages à les utiliser.

Quelqu'un pourrait-il donner quelques conseils en convertissant ce bloc de code à une version paramétrée?

Merci.

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);
}
Était-ce utile?

La solution

dans votre cas, il n'y a aucun avantage, rappelez-vous une requête nécessite 2 appels paramétré à la db: un pour configurer le modèle de requête et d'analyse, par l'autre pour remplir le modèle requête params et est généralement utilisé lors de la boucle. Donc, dans ce cas, vous êtes mieux d'appeler une procédure stockée (toujours le meilleur choix) ou en utilisant sql en ligne et en vous assurant que vous utilisez http://php.net/manual/en/function.mysql-real-escape-string.php le cas échéant.

Autres conseils

La règle générale est:. Chaque variable doit être binded, aucune variable inline du tout

Détails techniques: http://php.net/manual/en/pdo.prepare .php

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top