簡體   English   中英

“有效”使用php從MySQL表中獲取單個值

[英]'Efficiently' fetch single value from MySQL table using php

我需要幫助了解如何使用過程樣式從MySQL表的一行中“有效”提取一個字段/列/單元格(即一條信息)。 可怕的長方法將是這樣的:

$Qry = "SELECT Surname FROM SurnameList WHERE SID = 8 LIMIT 1";
$QryResult = mysqli_query($DBLink, $Qry);
if ($QryResult)
{
    $QryRow = mysqli_fetch_assoc($QryResult);
    $ThisSurname = $QryRow['Surname'];
    mysqli_free_result($QryResult);
}
else 
{
   die("Transaction Failure");
}

哎呀 對我來說,可以在保持可讀性的同時進行壓縮:

if ($QryResult = mysqli_query($DBLink, "SELECT Surname FROM SurnameList WHERE SID = 8 LIMIT 1") {
    $QryRow = mysqli_fetch_assoc($QryResult);
    $ThisSurname = $QryRow['Surname'];
    mysqli_free_result($QryResult);
} else die("Transaction Failure");

即使像這樣壓縮,仍然需要5行才能獲得一條信息。 有沒有辦法在保持可讀性的同時減少程序樣式中此任務的行數? 壓縮/組合第2和3行的某種方法?

您的代碼足夠短,不會對解析器的“效率”產生有意義的影響。 就是說,您可以通過僅在查詢失敗(通用技巧,設計代碼以避免使用else)時反轉條件以終止條件並單行獲取所需結果來修剪幾行代碼。

$QryResult = mysqli_query($DBLink, "SELECT Surname FROM SurnameList WHERE SID = 8 LIMIT 1");
if (!$QryResult) die("Transaction Failure"); 
$ThisSurname = mysqli_fetch_assoc($QryResult)['Surname'];
mysqli_free_result($QryResult);

我認為,如果您追求編碼效率:),考慮使用類來處理可重復的邏輯將非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM