将多个会话变量从PHP插入到mySQL数据库中,为什么不能正常工作[关闭]
问题描述:
Hi I cannot get the below query to work in order to insert the session data into the database, Could anyone please tell me what is wrong with it or what I can do to fix it? Thanks in advance.
<?php
session_start();
if (isset($_POST['sub'])) {
$host='localhost';
$user='root';
$pass='';
$db='theatre_booking';
$con=mysqli_connect($host,$user,$pass,$db);
$row = $_POST['row'];
$_SESSION["row"]=$row;
$zone = $_POST['zone'];
$_SESSION["zone"]=$zone;
$quantity = $_POST['numberOfTickets'];
$_SESSION["numberOfTickets"]=$quantity;
$sql="INSERT INTO booking(PerfDate, PerfTime, Name, Email, RowNumber)
VALUES
'{$_SESSION['date']}',
'{$_SESSION['time']}',
'{$_SESSION['name']}',
'{$_SESSION['email']}',
'{$_SESSION['row']}')";
if ($con->query($sql) === TRUE) {
echo "Booking successful";
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
}
?>
答
you are missing opening bracket '(' after values in insert statement.
$sql="INSERT INTO booking(PerfDate, PerfTime, Name, Email, RowNumber)
VALUES (
'{$_SESSION['date']}',
'{$_SESSION['time']}',
'{$_SESSION['name']}',
'{$_SESSION['email']}',
'{$_SESSION['row']}')";
if ($con->query($sql) === TRUE) {
echo "Booking successful";
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
答
Missing opening parenthesis after VALUES
and I suggest you explicitly write the variables in the string.
Don't rely on php variable expansion, it's also much easier to read.
$sql='INSERT INTO booking(PerfDate, PerfTime, Name, Email, RowNumber)
VALUES
("' . $_SESSION["date"] . '",
"' . $_SESSION['time'] . '",
"' . $_SESSION['name'] . '",
"' . $_SESSION['email'] . '",
"' . $_SESSION['row'] . '"
)';