加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

php-返回单个数据库功效的正确要领是什么?

发布时间:2021-02-25 03:56:01 所属栏目:编程 来源:网络整理
导读:我想做的就是以后函数获取名字的功效,可是感受太多的代码无法基于会话ID举办. //query_functions.phpfunction find_name_by_id($id) { global $db; $sql = "SELECT firstname FROM admins "; $sql .= "WHERE id='" . db_escape($db,$id) . "' "; $sql .= "LI

我想做的就是以后函数获取名字的功效,可是感受太多的代码无法基于会话ID举办.

//query_functions.php

function find_name_by_id($id) {
    global $db;

    $sql = "SELECT firstname FROM admins ";
    $sql .= "WHERE id='" . db_escape($db,$id) . "' ";
    $sql .= "LIMIT 1";
    $result = mysqli_query($db,$sql);
    confirm_result_set($result);
    $name = mysqli_fetch_assoc($result); // find first
    mysqli_free_result($result);
    return $name; // returns an assoc. array
  }

// admin.php

id = $_SESSION['admin_id'];
$name = find_name_by_id($id);

// what is the shortest way to get this $name result?
最佳谜底 要行使prepared statements正确执行此操纵,现实上您必要的代码更多:

function find_name_by_id($db,$id) {
    $stmt = $db->prepare("SELECT firstname FROM admins WHERE id=?");
    $stmt->bind_param("i",$id);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    $stmt->free_result();
    return $row[0];
}

我不确定confirm_result_set是什么,以是我省略了它.

假设$db是一个PDO工具:

function find_name_by_id($db,$id) {
    $stmt = $db->prepare("SELECT firstname FROM admins WHERE id=?");
    $stmt->execute([$id]);
    return $stmt->fetchColumn();
}

涉及的代码更少.对付更高级此外API,它将被抽象为一行代码.

现实上,对付全部环境,您都但愿举办一些错误搜查,不思量返回任何记录等.其它,您还应停止行使全局变量,由于它们的名目很差.将您的代码放入类中,可能像我适才那样行使依靠项注入.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读