为什么SQL查询返回NULL而不是获取并返回行?

时间:2020-11-08 08:28:21

标签: php mysql sql null shopping-cart

我遇到一个问题,在select statement数据库后,我得到空值,我目前正在使用PHP进行购物车项目。我的情况是要选择并检索具有特定代码编号的产品,以便将该产品添加到购物车中,但是首先我需要通过其code number

来获得此产品

我正在使用准备好的语句,这是产品负责人

 function getProductByCode($product_code){
    $query = "SELECT * FROM tbl_products WHERE product_code = ? AND product_code IS NOT NULL";
    $param_type = "i";
    $paramValue = array($product_code);
    $productByCode = $this->runQuery($query, $param_type, $paramValue);
    return $productByCode;
 }

这是处理选择查询的数据库控制器(runQuery函数)

    public function runQuery($query, $param_type, $param_value_array){
    $sql = $this->conn->prepare($query);
    $this->bindParam($sql, $param_type, $param_value_array);
    $sql->execute();
    $result = $sql->get_result();
    if($result->num_rows > 0){
        while($row = $result->fetch_assoc()){
            $resultSet[] = $row;
        }
    }
    if (! empty($resultset)) {
        return $resultset;
    }
 }



public function bindParam($sql, $param_type, $param_value_array){
    $param_value_reference[] = & $param_type;
    for($i = 0; $i < count($param_value_array); $i++){
        $param_value_reference[] = & $param_value_array[$i];
    }
    call_user_func_array(array($sql, 'bind_param'), $param_value_reference);
}

此语句调用getProductByCode函数,此函数返回NULL,而不是选定的行

    if(!empty($_POST['quantity'])){
    $product_result = $product->getProductByCode($_GET["product_code"]);
    $cart_result = $product->getCartItemByProduct($product_result[0] ['id'],$_SESSION['identity']);
              if(!empty($cart_result)){
                // update cart quantity
                $newQuantity = $cart_result[0]['quantity'] + $_POST['quantity'];
                $product->updateCartQuantity($newQuantity, $cart_result[0]['id']);
              }else{
                // add product to cart
   $inserID = $product->addToCart($product_result[0]['id'],$_POST['quantity'],$_SESSION['identity']);
             return $inserID;
              } 
          }

products table image

0 个答案:

没有答案