[英]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
函數返回行數,在您的情況下,它只能是兩個值-1或0 。 如果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.