Php 为什么我不能显示错误消息?
当username==来自数据库的username和date==来自数据库的date时,它应该会回显一条错误消息,但会显示成功。我尝试使用“=”,但即使假设数据是正确的,结果也会不断回显错误消息。请帮忙 这是我的密码:Php 为什么我不能显示错误消息?,php,html,validation,Php,Html,Validation,当username==来自数据库的username和date==来自数据库的date时,它应该会回显一条错误消息,但会显示成功。我尝试使用“=”,但即使假设数据是正确的,结果也会不断回显错误消息。请帮忙 这是我的密码: if(!empty($_POST['username'])){ $username=$_POST['username']; } else { $username=null;
if(!empty($_POST['username'])){
$username=$_POST['username'];
}
else
{
$username=null;
$usererr = "";
}
if(!empty($_POST['datepicker'])){
$date = date('y-m-d', strtotime($_POST['datepicker']));
}
else
{
$date=null;
$dateerr = "";
}
$mysqli = new mysqli("", "", "", "");
$stmt = $mysqli->prepare("SELECT username, date FROM booking WHERE username='$username' and date ='$date'");
$stmt->bind_param("ss", $username, $date);
$stmt->execute();
$stmt->bind_result($cusername, $cdate);
$stmt->fetch();
if($cusername == $username && $cdate == $date){
echo"You have already book this day. Please select another day";
}
else{
echo"Success";
$chdate = $date;
}
if($username && $date && $chdate){
session_start();
$mysqli = new mysqli("", "", "", "");
stmt = $mysqli->prepare("INSERT INTO booking (, , , , )
VALUES ('',''");
$result = $stmt->execute();
}
$stmt->close();
$mysqli->close();
检查这个
$date = date('y-m-d', strtotime($_POST['datepicker']));
2017年,这一年将以“17”的形式回归,试试这样
$date = date('Y-m-d', strtotime($_POST['datepicker']));
您应该在查询中使用占位符,而不是变量名
WHERE username=?
您实际上是在尝试引用那里的变量。您尝试过echo date和cdate吗?它们是否完全相等?提示:不要使用“else”来“重置”变量。首先用“空”值定义它们。更干净的代码,不再需要else语句。就我个人而言,我会把一个条件放在一个条件中。没有什么比嵌套条件更混乱的了:)@prozcay做一个小测试。在if条件之前,回显所有变量“$cusername、$username、$cdate、$date”,在比较之前,您将知道这些变量携带的数据是什么,$cdate和$data是否相同?$cname和$name文本是相同的?@prozcay“选择用户名,预订日期,其中用户名=“$username”和日期=“$date”我已经重新编辑了我的代码,它可以工作,但为什么当我选择日期(例如2017-02-02)时,它不能插入数据库?