Обновление базы данных с использованием раскрывающегося списка без использования кнопки отправки

0

Я пытаюсь обновить значение 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();
    }
?>

И вот моя схема таблицы:

Изображение 174551

  • 0
    в чем ошибка была выброшена?
  • 0
    @BitsPlease Syntax error or access violation: 1064 You have an error in your SQL syntax
Теги:
database
phpmyadmin

2 ответа

1
Лучший ответ

Вы не выполняете подготовленные заявления должным образом. Вам нужно добавить заполнитель в запрос, а не переменные. Переменные должны быть добавлены в строку execute().

$query = "UPDATE tickets SET 'status' = :status WHERE 'id' = :id";
$statement = $conn->prepare($query);
$statement->execute(array(':status' => $_POST["status"],':id' => $id));

Также FYI, $id не определено.

  • 0
    Да, я знаю, что сейчас я просто пытался выяснить запрос на обновление. Спасибо!
0

Попробуйте изменить это:

$query = "UPDATE tickets SET status = $status WHERE id = $id";
  • 0
    Я все еще получаю ту же ошибку, спасибо за предложение, хотя.
  • 0
    Можете ли вы попробовать опубликовать и проверить, обновляются ли статические значения? SET status = '1' и проверьте?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню