Попытка вставить переменную в submit с новым сообщением

кто-нибудь знает, что я делаю неправильно с моим кодом ниже? я получил его, чтобы захватить переменную и показать тему, сообщение и дату в порядке, но я пытаюсь сделать это, чтобы добавить тему из переменной (новое пользовательское сообщение из текстового поля) и дату из переменной в базы данных.

<!--?php
require("db.php");

$query_params = array(
 ':id' =--> $_GET['id'],
 ':username' => $_SESSION['user']['username']
);
$query = "SELECT id, subject, message, date FROM tickets
 WHERE username = :username And id= :id";
$stmt = $db->prepare($query);
 $result = $stmt->execute($query_params);
 $result = $stmt->setFetchMode(PDO::FETCH_NUM);
while ($row = $stmt->fetch($result)) {
 echo $row['subject'];
 echo $row['message'];
 echo $row['date'];

 PROBLEMS WITH THE CODE BELOW>>>>

if(!empty($_POST))
{
if(empty($_POST['message']))
{
$error="Please enter a Message.";
}
else
{
$query = "
INSERT INTO supporttickets (
username,
subject,
message,
date
) VALUES (
:username,
:subject,
:message,
date
)
";
$query_params = array(
':username' => $_SESSION['user']['username'],
':subject' => $_POST['subject'],
':date' => $_POST['date'],
':message' => $_POST['message']
);
 $stmt = $db->prepare($query);
 $result = $stmt->execute($query_params);
 }
 }
}
?>
2 ответа

date - это ключевое слово MySQL, и вы также забудете указать :date. Так что это должно быть

$query = "
INSERT INTO supporttickets (
 username,
 subject,
 message,
 'date'
) VALUES (
 :username,
 :subject,
 :message,
 :date
)";


Попробуйте переключить параметры. Он должен соответствовать тому, как вы строите запрос INSERT. Я переключил сообщение и дату.

$query_params = array(
':username' => $_SESSION['user']['username'],
':subject' => $_POST['subject'],
':message' => $_POST['message'],
':date' => $_POST['date']
);

licensed under cc by-sa 3.0 with attribution.