簡體   English   中英

我如何檢查mysql查詢是否返回null

[英]How can i check if the mysql query returns null

在這里,我想檢查此function()中的查詢是否返回null。

function ifproductValid($productID){
    $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 
    $sql = "SELECT product_publish_status FROM product_list WHERE product_id='$productID'";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) 
    {
        while($row = $result->fetch_assoc()) {      
            //here i want to check if the result is null or not
        if($product_status == 1){
            return true;
        } else {
            return false;
        }
        }       
        } else {
        echo "No results found";
    }
    $conn->close();
}

基於結果,我想從此函數返回true或false。 我該如何檢查?

    while($row = $result->fetch_assoc()) {      
        if (is_null($row)) {
        // do something here
        }
    if($product_status == 1){
        return true;
    } else {
        return false;
    }
    }       
    } else {
    echo "No results found";

只要您只想從數據庫中獲取一行,就不需要花一段時間來迭代結果。 我會做這樣的事情:

function ifproductValid($productID){

    $conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
    $response = false;

    if($conn->connect_error){

        die("Connection failed: " . $conn->connect_error);
    }

    $sql = 'SELECT product_publish_status 
            FROM product_list WHERE product_id=' . $productID;
    $result = $conn->query($sql);

    if($result->num_rows > 0){

        $dbResult = $result->fetch_assoc();

        if(!is_null($dbResult[0] && $dbResult[0]['product_publish_status'] == 1){

            $response = true;
        }
    }

    $conn->close();
    return $response;
}

如果只想確保數據庫行永遠不會為空,則可以在sql上指定它,這樣以后就不必修改它了。

 $sql = 'SELECT product_publish_status 
         FROM product_list 
         WHERE product_id = ' . $productID . ' 
             AND product_publish_status IS NOT NULL';

暫無
暫無

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

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