我试图通过php构建一些html输入元素,以填充postgres表中的行。
我想将一些属性“required”添加到某些html输入元素(那些与具有NOT NULL约束的列对应的元素)。
我如何知道哪些列具有该约束?
答案 0 :(得分:0)
使用PDO(以及建议here),您应该可以按如下方式将其拉出来:
$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.
}
}
编辑:如果您使用PostgreSQL PHP扩展程序已经死定,那就相同:
$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.
}
}
答案 1 :(得分:0)
使用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 | |
+----+---------------+--------+-----------------------------------------------+---------+---------+