如果数据库中存在该值,如何验证该值?

时间:2016-10-05 16:47:34

标签: php mysql mysqli

我想首先检查数据是否已存在于数据库中。所以这是我的代码:

<?php

include '../session.php';
require_once 'config.php';

    $tc_course_name2 = strtoupper($_POST['tc_course_name']);
    $tc_course_code2 = strtoupper($_POST['tc_course_code']);

    $query = "SELECT COUNT(tc_course_name) FROM tc_courses WHERE tc_course_name = '{$tc_course_name2}'";
    $stmt = mysqli_query($conn, $query);
    $fetch = mysqli_num_rows($stmt);

    if ($fetch > 0) {

        echo "Course Name Already Exist";
    }

    else {
        $query_update = "INSERT INTO tc_courses (tc_course_code,tc_course_name) VALUES('$tc_course_code2','$tc_course_name2')";  
        if (mysqli_query($conn,$query_update)) {
                header("Location: ../admin/add_new_training_course.php"); 
            }
        else {
            echo 'Something went wrong';
            }
    }

?>

在此代码中,它始终运行Course Name Already Exist,即使它未保存在database上。有人可以帮我吗?提前谢谢

1 个答案:

答案 0 :(得分:1)

MySQL的count(...)函数将始终返回一个值,因此当您使用mysqli_num_rows时,它将始终为> 0(查询返回带有count()值的行 - 该值可以是0或更多......)。

您应该检查count(...)的值,看看它是>0

改变这个:

$fetch = mysqli_num_rows($stmt);
if ($fetch > 0) {
    echo "Course Name Already Exist";
}

$fetch = mysqli_fetch_array($stmt);
if ($fetch[0] > 0) {
    echo "Course Name Already Exist";
}