Php 参数化查询

Php 参数化查询,php,mysql,parameterized-query,Php,Mysql,Parameterized Query,我目前正在学习参数化查询,因为使用它们有很多优点 有人能通过将这段代码转换成参数化版本来给出一些提示吗 谢谢 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);

我目前正在学习参数化查询,因为使用它们有很多优点

有人能通过将这段代码转换成参数化版本来给出一些提示吗

谢谢

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,并确保在适用时使用。

在您的情况下,没有任何优势,请记住,参数化查询需要对db进行两次调用:一次是设置查询模板和解析,另一个用于填充查询模板参数,通常在循环时使用。因此,在这种情况下,最好调用存储过程(始终是最佳选择)或使用内联sql,并确保在适用的情况下使用。

使用上述代码块的实际示例将非常有助于向我们中的一些人解释如何实现它。例如,如何从表格值中提取gat变量??Thanx@Frank请看那篇文章,试着自己做。在那之后,如果你遇到一些问题,回到这里问一些具体的问题。这是正确的学习方法。一个使用上述代码块的实际示例将非常有助于我们学习如何实现它。例如,如何从表格值中提取gat变量??Thanx@Frank请看那篇文章,试着自己做。在那之后,如果你遇到一些问题,回到这里问一些具体的问题。这是正确的学习方法。与其使用htmlentities()、strip_tags()和“validate_intval()”函数,为什么不直接使用:$news_art_id=(int)$\u GET['news_art_id';(int)将任何非整数值转换为“0”(该值通常不是有效的ID,并且与数据库中的任何内容都不匹配)。不可能以这种方式进行SQL注入,而且它使用的代码要少得多。与其使用htmlentities()、strip_tags()和“validate_intval()”函数,为什么不直接使用:$news_art_id=(int)$\u GET['news_art_id';(int)将任何非整数值转换为“0”(该值通常不是有效的ID,并且与数据库中的任何内容都不匹配)。不可能以这种方式进行SQL注入,而且它使用的代码要少得多。