首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >参数化查询

参数化查询
EN

Stack Overflow用户
提问于 2010-12-16 22:27:14
回答 2查看 4.2K关注 0票数 0

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

有人可以通过将这段代码转换为参数化版本来提供一些指导吗?

谢谢。

代码语言:javascript
复制
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);
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-16 23:03:45

在您的情况下没有优势,请记住,参数化查询需要两次对数据库的调用:一次用于设置查询模板和解析,另一次用于填充查询模板参数,通常在循环时使用。因此,在这种情况下,最好调用存储过程(总是最佳选择)或使用内联sql,并确保在适用的情况下使用http://php.net/manual/en/function.mysql-real-escape-string.php

票数 0
EN

Stack Overflow用户

发布于 2010-12-16 22:37:54

一般规则是:每个变量都应该被绑定,根本没有内联变量。

技术详情:http://php.net/manual/en/pdo.prepare.php

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4461759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档