Форма PHP создает запись Postgresql при открытии веб-страницы. Как это можно предотвратить? - PullRequest
0 голосов
/ 26 марта 2020

У меня есть скрипт php / html для обновления моей базы данных postgresql. Форма работает нормально, то есть она вставляет данные в базу данных. Проблема в том, что каждый раз, когда я открываю веб-страницу для вставки, в базу данных создается пустая запись. Я попытался добавить «SELECT setval (...)» для восстановления последовательности. Это имело эффект избавления от пустых строк, однако не мешало последовательности выходить из строки. Вот что у меня есть софар:

.
.
.
<?php
$db = pg_connect("host=localhost port=5432 dbname=crewdb user=postgres password=XXXXXX");
$query1 = "INSERT INTO access(access_name) VALUES ('$_POST[access_name]')";
$result1 = pg_query($query1);
$query2 = "SELECT setval('access_accessid_seq', (SELECT MAX(accessid) FROM access))";
$result2 = pg_select($query2);
pg_close($db)
?>

Однако проблема все еще не решена. Я получаю такую ​​таблицу:

 accessid |             access_name              
----------+--------------------------------------
        1 | good ride on mower access throughout
        2 | n\a
        3 | no ride on mower acces
        4 | partial ride on mower acces
        5 | fenced off
        7 | Obtacles

Как вы видите, accessid не в порядке. Кто-нибудь знает, как решить эту проблему наиболее эффективным способом? Таблица спецификации:

  Column    |  Type   | Collation | Nullable |           Default            | Storage  | Stats target | Description 
-------------+---------+-----------+----------+------------------------------+----------+--------------+-------------
 accessid    | integer |           | not null | generated always as identity | plain    |              | 
 access_name | text    |           | not null |                              | extended |              | 

Я немного новичок в этом, поэтому спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...