У меня была такая же ошибка, но я исправил ее, изменив php.ini и / или отредактировав файл PHP!
blockquote>Есть два разных способа обойти синтаксис синтаксического анализа.
Способ 1 (ваш файл PHP)
Избегайте в вашем файле PHP этого:
} ?>
Убедитесь, что вы так выразились
Ваш код содержит
?>
ПРИМЕЧАНИЕ: Отсутствует
php
после!
Способ 2 (файл php.ini)
Существует также простой способ решить вашу проблему. Найдите значение свойства
short_open_tag
(используйте в текстовом редакторе с помощьюCtrl + F
!) [/ G2] и примените следующее изменение:; short_open_tag = Off
-
short_open_tag = On
Согласно описанию основных директив php.ini ,
short_open_tag
позволяет использовать короткий открытый тег (), хотя это может вызвать проблемы при использовании с xml (
не будет работать, если это включено)!
ПРИМЕЧАНИЕ: Перезагрузите свой сервер (например, Apache) и перезагрузите веб-страницу PHP в своем браузере.
Мне кажется, что вы должны избавиться от переменной flight_d
и блока IF
и переместить логику в сам запрос, например:
CREATE OR REPLACE FUNCTION flightFunc(
flight_identificator INTEGER,
new_timestamp timestamp with time zone)
RETURNS TABLE(
flight_id INTEGER,
flight_no CHARACTER(6),
departure_airport character(3),
scheduled_departure timestamp with time zone,
arrival_airport character(3),
scheduled_arrival timestamp with time zone
)
LANGUAGE plpgsql
AS $
BEGIN
UPDATE flights SET
scheduled_departure = $2,
scheduled_arrival = $2 + flights.scheduled_arrival - flights.scheduled_departure
WHERE flights.flight_id = $1 AND flights.scheduled_departure < $2
RETURNING
flights.flight_id,
flights.flight_no,
flights.departure_airport,
flights.scheduled_departure,
flights.arrival_airport,
flights.scheduled_arrival;
END;
$;
Удалить пункт FROM
! Это делает CROSS JOIN
. И вам нужно SET
. Итак:
UPDATE flights
SET scheduled_departure = $2,
scheduled_arrival = $2 + flight_d
WHERE flights.flight_id = $1
RETURNING
flights.flight_id,
flights.flight_no,
flights.departure_airport,
flights.scheduled_departure,
flights.arrival_airport,
flights.scheduled_arrival;