concordo con piero.mac, anche io ho avuto questa problematica e nn ho trovato soluzioni differenti e piu' ottimizzate. Mi permetto di postare due righe di codice che, forse, rendono la cosa piu' precisa (scritta cosi' di getto, necessita di un po' di type control):

Codice PHP:

class TableInfo{

private 
$_campi;

public function 
__construct($get){

if(!(
$get instanceof mysqli_result)) return false;
$this->_campi $get->fetch_fields();

}

public function 
getUniqueKeyFieldList(){
           
$uniquekeyfields = array();
               
foreach(
$this->_campi as $field){
 if(
$field->flags MYSQLI_UNIQUE_KEY_FLAGarray_push($uniquekeyfields$field->name);
}
return 
$uniquekeyfields;
}

// End:class 
Puoi usarla ad esempio cosi':
Codice PHP:

$db 
= new mysqli($host$user$password$database);
$res $db->query("SELECT * FROM $table LIMIT 0");

if(
$info = new TableInfo($res)){
 echo 
"Campi obbligatori: " join(", "$info->getUniqueFieldList());

(codice nn testato, un po' di pazienza ^^)

spero ti possa essere utile! ^_^