Php 如何检查mysql查询是否返回null

Php 如何检查mysql查询是否返回null,php,mysql,Php,Mysql,这里我想检查这个函数()中的查询是否返回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 produ

这里我想检查这个函数()中的查询是否返回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';

那么问题是什么呢?用false替换未找到的结果一切都会起作用父代码在函数结束时关闭与数据库的连接。我认为应该将响应保存在一个变量中,然后返回。