Изменение значения базы данных на текущую дату и время после нажатия кнопки

0

Как мне обновить значение status с текущей датой и временем после нажатия кнопки "завершить"?

Пример:

Статус = 05/05/2019 8:54 утра

Пока это то, что я пробовал:

<?php

	 if(isset($_POST['completed']))
    {
        $msg = "Completed";
        $status = $_POST['completed'];
    }

    $reqnumber=$_POST['reqnumber'];
    $con = mysqli_connect('localhost', 'root', '');
    mysqli_select_db($con, 'pcrequest');

    $sql = "UPDATE request SET status = '$status', status = 'date('Y-m-d H:i:s');' WHERE reqnumber = '$reqnumber'";

    if(mysqli_query($con, $sql))
        header("refresh:1; url=messages.php?msg=$msg");
    else
        var_dump(mysqli_error($con));
	
?>
  • 1
    Какова структура таблицы request ? Вы хотите обновить все его строки? UPDATE request SET status = NOW() WHERE ... это лучший способ.
  • 1
    Есть похожий вопрос stackoverflow.com/questions/19246309/… Как правильно указано @danblack, установки status = NOW () будет достаточно.
Показать ещё 1 комментарий
Теги:
database

1 ответ

0

Вы пытаетесь установить "статус" дважды. Эта точка с запятой и вложенные одинарные кавычки могут также вызвать некоторые проблемы, когда у вас есть функция date().

Я бы рекомендовал установить дату вне запроса и вставить ее как переменную, например так:

$now = date('Y-m-d H:i:s');

$sql = "UPDATE 'request' 
    SET 'status' = '$now' 
    WHERE 'reqnumber' = '$reqnumber';";
  • 0
    $reqnumber уязвим для внедрения SQL.

Ещё вопросы

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