簡體   English   中英

為什么這個 function 總是返回 true,即使它不應該返回?

[英]Why does this function always return true even if it shouldn't?

我有一個 function 遍歷product數據庫表,如果有行的supplierid ID 和name與參數匹配,則返回 true。

但它總是返回 true,即使它不應該。

function checkifhoused($productname, $supplier)
{
    $db = mysqli_connect(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
    $sql = "SELECT * FROM " . TBL_PRODUCTS;
    $result = mysqli_query($db, $sql);
    while ($row = $result->fetch_assoc()) {
        if ($row['supplierid'] == $supplier and $row['name'] == $productname) {
            return true;
        }
    }
    return false;
}

首先:我可以建議你使用 PDO 擴展。 它有更好的變量綁定選項。 第二:正如@pavel & Ro Achterbeg 在他們的評論中提到的,您不需要從數據庫表中獲取所有行,但只檢查帶有針參數的記錄是否存在

<?php
define('TBL_PRODUCTS', 'TBL_PRODUCTS');

function checkifhoused($db, $productname, $supplier)
{
    $sql="SELECT * FROM ".TBL_PRODUCTS." WHERE name = ? AND supplierid = ? ";
    $stmt = $db->prepare($sql);
    $result = $stmt->execute([$productname, $supplier]);

    return $stmt->rowCount() > 0;
}

var_dump(checkifhoused($pdo, 'productname', 1));

var_dump(checkifhoused($pdo, 'other_productname', 1));

在這里可以測試 PHP & SQL 代碼

暫無
暫無

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

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