我试图检查我的数据库是否存在行,但它总是返回"另一个Employee"已存在用户ID,如果存在或不存在。这令我感到困惑,因为代码之前正在运行。我添加的最新更改是PHP会话,我认为这会破坏它吗?
对于会话,如果需要此信息,我会在页面顶部启动会话,如果会话为0,则会加载密码框,当输入正确的密码时,会话会话设置为1然后显示页面上的所有其他框,包括将员工添加到表中的那个,这是我遇到问题的地方。
这是输入框的代码:
<h1>Add New Employee</h1>
<form method="POST">
ID: <input name="IDadd" type="text">
Name: <input name="Nameadd" type="text">
Job: <select name='Jobadd'>
<option value='IOS'>IOS</option>
<option value='Remarketing'>Remarketing</option>
<option value='Computers'>Computers</option>
<option value='Beats'>Beats</option>
<option value='Inventory'>Inventory</option>
<option value='Check-In'>Check-In</option>
<option value='Tech'>Tech</option>
</select>
<input value="Submit New Employee" type="submit" onsubmit="return false" id="newEmployee" name="newEmployee"><br><br></center>
</form>
以下是应该检查它是否已存在的代码。
if (isset($_POST['newEmployee'])) {
$userId = mysqli_real_escape_string( $con, $_POST[ 'IDadd' ] );
$userName = mysqli_real_escape_string( $con, $_POST[ 'Nameadd' ] );
$userJob = mysqli_real_escape_string( $con, $_POST[ 'Jobadd' ] );
$checkUserID = mysqli_query("SELECT `userId` FROM Employee WHERE `userId`='$userId'");
if (mysqli_num_rows($checkUserId) > 0) {
$sql = "INSERT INTO Employee (userId, Name, Job, Week)
VALUES ('$userId', '$userName', '$userJob', '$currentWeekIs')";
mysqli_query($con, $sql);
} else {
echo $userId . " " . $userName . " " . $userJob;
echo "<center><br><br><h1>User ID ".$userId." already exists for another employee.</h1></center>";
}
}
所以,我想我的问题是,为什么它总是返回&#34;用户ID已经存在于另一个员工&#34;?或者,我如何解决这个问题有哪些替代方案?
答案 0 :(得分:1)
您的查询失败,因为您没有将正确的参数传递给正在进行SELECT的mysqli_query()
。
第一个参数需要是连接资源,其次是查询本身。查看文档,确保在开发时查看错误日志,并在代码中包含错误处理。