我正試圖使用此代碼來阻止預訂系統中的雙重預訂。在當您輸入相同的時間,然後兩次目前它與此錯誤出現:如果聲明中無法訪問變量
Email is validthis time is already booked
Notice: Undefined variable: sql in C:\xampp\htdocs\book.php on line 44
Warning: mysqli_query(): Empty query in C:\xampp\htdocs\book.php on line 44
Error:
這是我的代碼
<?php
//$error = ""; // Initialize error as blank
$con=mysqli_connect("localhost","","","");
if (mysqli_connect_errno($con))
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$email = $_POST['email'];
$time = $_POST["time"];
$name = $_POST["name"];
$surname = $_POST["surname"];
$date = $_POST["date"];
$adl1 = $_POST["adl1"];
$adl2 = $_POST["adl2"];
$postcode = $_POST["postcode"];
if(!filter_var(($email), FILTER_VALIDATE_EMAIL))
{
echo "E-mail is not valid";
}
else
{
echo "Email is valid";
$result = mysqli_query($con, "SELECT time FROM tbl_booking WHERE time = '$time'") or trigger_error("Query Failed! SQL: $result - Error: ".mysqli_error($con), E_USER_ERROR);
if(mysqli_num_rows($result) == 0)
{
$sql="INSERT INTO tbl_booking (name, surname, email, date, time, adl1, adl2, postcode) VALUES ('$name','$surname','$email','$date','$time','$adl1','$adl2','$postcode')";
}
else
{
echo("this time is already booked");
}
if (!mysqli_query($con, $sql))
{
die('Error: ' . mysqli_error($con));
}
mysqli_close($con);
}
}
基本上,我認爲這是試圖訪問$sql
的if
語句中,但我不知道爲什麼它不能。除非我很愚蠢。
好了,當這種情況發生'mysqli_num_ro ws($ result)!= 0'。你只在'if'中設置變量'$ sql',但是如果你進入'else',你的'$ sql'爲空,你將會得到一個錯誤。在嘗試使用'mysqli_query'之前,您應該檢查該變量是否已設置 – putvande