Я пытаюсь построить некоторые элементы ввода HTML через php, чтобы заполнить строки в таблице postgres.
Я хочу добавить атрибут «требуется» для некоторых элементов ввода HTML (те, которые соответствуют столбцам, которые имеют ограничение NOT NULL).
Как я могу узнать, какие столбцы имеют это ограничение?
Использование PDO (и предложение Вот), вы должны быть в состоянии выполнить это следующим образом:
$q = $dbh->prepare("\d tablename");
$q->execute();
$table_fields = $q->fetchAll();
foreach ($table_fields as $field) {
if (strpos($field['Modifiers'], 'not null') !== FALSE) {
// this column ($field['Column']) has a "not null" constraint.
}
}
редактировать: то же самое, если у вас не получается использовать PHP-расширение PostgreSQL:
$q = pg_query("\d tablename");
while ($row = pg_fetch_array($result)) {
if (strpos($row['Modifiers'], 'not null') !== FALSE) {
// this column ($row['Column']) has a "not null" constraint.
}
}
использование Pomm и он выполнит эти запросы для проверки вашей базы данных с помощью CLI:
$ php vendor/bin/pomm.php pomm:inspect:relation test pika_chu
Relation public.pika_chu
+----+---------------+--------+-----------------------------------------------+---------+---------+
| pk | name | type | default | notnull | comment |
+----+---------------+--------+-----------------------------------------------+---------+---------+
| * | pika_chu_id | int4 | nextval('pika_chu_pika_chu_id_seq'::regclass) | yes | |
| | some_data | int4 | | yes | |
| | nullable_data | bpchar | | no | |
+----+---------------+--------+-----------------------------------------------+---------+---------+