亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

返回單個數據庫結果的正確方法是什么?

返回單個數據庫結果的正確方法是什么?

PHP
神不在的星期二 2021-04-28 18:29:24
我要做的就是從此函數獲取名字的結果,但是感覺太多的代碼無法基于會話ID進行。//query_functions.phpfunction 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.phpid = $_SESSION['admin_id'];$name = find_name_by_id($id);// what is the shortest way to get this $name result?
查看完整描述

1 回答

?
忽然笑

TA貢獻1806條經驗 獲得超5個贊

為了使用準備好的語句正確地執行此操作,實際上您需要的代碼更多:

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,它將被抽象為一行代碼。


實際上,對于所有情況,您都希望進行一些錯誤檢查,不返回任何記錄等。另外,您也應該避免使用全局變量,因為它們的格式很差。將您的代碼放入類中,或者像我剛才那樣使用依賴項注入。


查看完整回答
反對 回復 2021-05-21
  • 1 回答
  • 0 關注
  • 137 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號