Php 如何使用mysqli判断列是否是主键?

Php 如何使用mysqli判断列是否是主键?,php,mysql,mysqli,primary-key,Php,Mysql,Mysqli,Primary Key,我正在将一些代码从旧的mysql扩展转换为PHP中的mysqli扩展。之前,在mysql扩展中,我使用了一些类似这样的代码来查找表中的主键: while ($i < mysql_num_fields($result)) { $meta = mysql_fetch_field($result, $i); if ($meta->primary_key == 1){ $primary_key = $meta->name; } $i+

我正在将一些代码从旧的mysql扩展转换为PHP中的mysqli扩展。之前,在mysql扩展中,我使用了一些类似这样的代码来查找表中的主键:

while ($i < mysql_num_fields($result)) {
    $meta = mysql_fetch_field($result, $i);
    if ($meta->primary_key == 1){ 
        $primary_key = $meta->name; 
    }
    $i++;
}
当然,通过查看文档,我们可以看到mysqli中不存在
$meta->primary_key
。我看到有一个
$meta->flags
。这是我最好的猜测,尽管我不确定当我有主键时,
flags
应该是什么值

有人知道我如何使用mysqli判断表的主键是哪个列吗

谢谢

编辑 以下是一些工作代码:

//get primary key
$primary_key = '';
while ($meta = $result->fetch_field()) {
    if ($meta->flags & MYSQLI_PRI_KEY_FLAG) { 
        $primary_key = $meta->name; 
    }
}

您非常接近,需要
标志
属性

您要查找的标志是,这意味着:

字段是主索引的一部分

您可以使用以下方法测试此标志:

if ($meta->flags & MYSQLI_PRI_KEY_FLAG) { 
  //it is a primary key!
}

您在这里使用的是
&

运行“descripe
table_name
”查询?很好,这需要与数据库进行单独的事务处理,这是可行的。我更喜欢使用结果集中已经获得的信息。
if ($meta->flags & MYSQLI_PRI_KEY_FLAG) { 
  //it is a primary key!
}