簡體   English   中英

PHP不返回假值

[英]PHP not returning false value

我已經為優惠券寫了一段代碼。 每當我使用該函數檢查優惠券代碼是否存在時,它都會返回true並打印該語句。 但是我不能得到錯誤的返回,也不能得到打印出來的錯誤案例的陳述。

function db_connect() {
  static $connection;
  if (!isset($connection)) {
    $connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
  }
  if ($connection === false) {
    return mysqli_connect_error();
  }
  return $connection;
}

function db_query($query) {
  $connection = db_connect();
  $result = mysqli_query($connection, $query);
  return $result;
}

function db_error() {
  $connection = db_connect();
  return mysqli_error($connection);
}

function db_select($query) {
  $rows = array();
  $result = db_query($query);
  if ($result === false) {
    return false;
  }
  while ($row = mysqli_fetch_assoc($result)) {
    $rows[] = $row;
  }
  return $rows;
}

function db_rows($query) {
  $result = db_query($query);
  if ($result === false) {
    return false;
  }
  $total_rows = mysqli_num_rows($result);
  return $total_rows;

}

function couponExists($cc) {
  $results = db_rows("SELECT * from ms_coupons where coupon_code='".$cc."'") or die(db_error());
  if ($results > 0) {
    return true;
  } else {
    return false;
  }
}

DB table : ms_coupons
coupon_id  coupon_code
1          CODE50

check_coupon.php

$coupon = $_REQUEST['coupon_code'];
if (!couponExists($coupon)) {
  echo "Does not exist!";
} else {
  echo "Coupon exists!";
}

當我提供coupon_code作為CODE50打印時,Coupon存在! 但是,當我提供諸如CODE51之類的其他商品時,則付款沒有打印任何內容。

您的問題是代碼中的這一行:

$results = db_rows("SELECT * from ms_coupons where coupon_code='".$cc."'") or die(db_error());

db_rows函數返回行數,在您的情況下,它只能是兩個值-10 如果db_rows返回0,則腳本將執行die(db_error())部分(但沒有mysqli_error)。

刪除or die(db_error())部分,如下所示:

$results = db_rows("SELECT * from ms_coupons where coupon_code='".$cc."'");

如果要檢查mysqli_errors,請將其移至db_query函數。

暫無
暫無

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

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