Estoy convirtiendo parte de mi código de la antigua extensión mysql a la extensión mysqli en PHP. Anteriormente, con la extensión MySQL, que había utilizado un código como este para encontrar la clave principal de una tabla:cómo saber si la columna es la clave principal usando mysqli?
while ($i < mysql_num_fields($result)) {
$meta = mysql_fetch_field($result, $i);
if ($meta->primary_key == 1){
$primary_key = $meta->name;
}
$i++;
}
$meta->primary_key == 1
era muy conveniente.
Hasta ahora se han convertido al código para usar mysqli:
while ($i < $result->field_count) {
$meta = $result->fetch_field;
if ($meta->primary_key == 1){
$primary_key = $meta->name;
}
$i++;
}
Por supuesto, al mirar los documentos here podemos ver que $meta->primary_key
no existe en mysqli. Veo que hay un $meta->flags
. Esta es mi mejor suposición, aunque no estoy seguro de qué valor debe tener flags
cuando tengo una clave principal.
¿Alguien sabe cómo digo qué columna es la clave principal para una tabla usando mysqli?
Gracias!
EDITAR Aquí hay un código de trabajo:
//get primary key
$primary_key = '';
while ($meta = $result->fetch_field()) {
if ($meta->flags & MYSQLI_PRI_KEY_FLAG) {
$primary_key = $meta->name;
}
}
ejecutar la consulta "describe' table_name' "? – Waygood
Buen punto, eso requeriría una transacción separada con el DB, que es factible. Prefiero usar la información que ya se obtuvo en el conjunto de resultados. –