Я пытаюсь обновить значение status
таблицы, когда я делаю выбор из выпадающего списка.
Проблема в том, что у меня есть синтаксическая ошибка в моем запросе обновления. Я читал материал о синтаксической ошибке, и я не могу это понять. Думаю, мне понадобится более конкретная помощь. Вот что я сделал:
<?php
$hostname = "localhost";
$username = "root";
$password = "";
$databasename = "companydb";
try
{
$conn = new PDO("mysql:host=$hostname;dbname=$databasename",$username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if(isset($_POST["status"]))
{
$query = "UPDATE tickets SET status = '$status' WHERE id = $id";
$statement = $conn->prepare($query);
$statement->execute(array('status' => $_POST["status"]));
$count = $statement->rowCount();
if($count > 0)
{
echo "Data Inserted Successfully..!";
}
else
{
echo "Data Insertion Failed";
}
}
else
{
echo "unknown index: 'status'";
}
}
catch(PDOException $error)
{
echo $error->getMessage();
}
?>
И вот моя схема таблицы:
Вы не выполняете подготовленные заявления должным образом. Вам нужно добавить заполнитель в запрос, а не переменные. Переменные должны быть добавлены в строку execute()
.
$query = "UPDATE tickets SET 'status' = :status WHERE 'id' = :id";
$statement = $conn->prepare($query);
$statement->execute(array(':status' => $_POST["status"],':id' => $id));
Также FYI, $id
не определено.
Попробуйте изменить это:
$query = "UPDATE tickets SET status = $status WHERE id = $id";
Syntax error or access violation: 1064 You have an error in your SQL syntax