質問

現在、パラメータ化されたクエリを使用しているため、パラメータ化されたクエリを使用しています。

このコードブロックをパラメーター化されたバージョンに変換することで、誰かがいくつかのポインターを与えることができますか?

ありがとう。

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への2つの呼び出しが必要であることを忘れないでください。1つはクエリテンプレートを設定して解析するために、もう1つはクエリテンプレートパラメーションを入力し、通常はループ時に使用されます。したがって、この例では、ストアドプロシージャ(常に最良の選択)を呼び出すか、インラインSQLを使用して使用することをお勧めします http://php.net/manual/en/function.mysql-real-escape-string.php 適用できる場合。

他のヒント

一般的なルールは次のとおりです。すべての変数はバインドする必要があり、インライン変数はまったくありません。

技術的な詳細: http://php.net/manual/en/pdo.prepare.php

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top