我想首先检查数据是否已存在于数据库中。所以这是我的代码:
<?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
上。有人可以帮我吗?提前谢谢
答案 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";
}